Date: Tue, 22 Jan 2002 18:49:07 +0100 (CET) From: Dimitry Andric <dim@xs4all.nl> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/34174: IPv6 doesn't work if IPFILTER_DEFAULT_BLOCK is used Message-ID: <20020122174907.D71EB54CF@tensor.xs4all.nl>
next in thread | raw e-mail | index | archive | help
>Number: 34174 >Category: kern >Synopsis: IPv6 doesn't work if IPFILTER_DEFAULT_BLOCK is used >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Jan 22 09:50:00 PST 2002 >Closed-Date: >Last-Modified: >Originator: Dimitry Andric >Release: FreeBSD 4.5-RC i386 >Organization: n/a >Environment: System: FreeBSD tensor.xs4all.nl 4.5-RC FreeBSD 4.5-RC #0: Mon Jan 21 20:52:33 CET 2002 root@tensor.xs4all.nl:/usr/obj/usr/src/sys/TENSOR i386 ========== kernel configuration: # # TENSOR -- Kernel configuration file for FreeBSD/i386 # machine i386 cpu I586_CPU ident TENSOR maxusers 0 options INET #InterNETworking options INET6 #IPv6 communications protocols options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] options SOFTUPDATES #Enable FFS soft updates support options UFS_DIRHASH #Improve performance on big directories options MFS #Memory Filesystem options NFS #Network Filesystem options MSDOSFS #MSDOS Filesystem options CD9660 #ISO 9660 Filesystem options PROCFS #Process filesystem options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI options UCONSOLE #Allow users to grab the console options KTRACE #ktrace(1) support options SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING options ICMP_BANDLIM #Rate limit bad replies options KBD_INSTALL_CDEV # install a CDEV entry in /dev options IPFILTER #ipfilter support options IPFILTER_LOG #ipfilter logging options IPFILTER_DEFAULT_BLOCK #block all packets by default device isa device pci # Floppy drives device fdc0 at isa? port IO_FD1 irq 6 drq 2 device fd0 at fdc0 drive 0 # ATA and ATAPI devices device ata0 at isa? port IO_WD1 irq 14 device ata1 at isa? port IO_WD2 irq 15 device ata device atadisk # ATA disk drives device atapicd # ATAPI CDROM drives options ATA_STATIC_ID #Static device numbering # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD device atkbd0 at atkbdc? irq 1 flags 0x1 device psm0 at atkbdc? irq 12 device vga0 at isa? # syscons is the default console driver, resembling an SCO console device sc0 at isa? flags 0x100 # Floating point support - do not disable. device npx0 at nexus? port IO_NPX irq 13 # Serial (COM) ports device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? port IO_COM2 irq 3 # Parallel port device ppc0 at isa? irq 7 device ppbus # Parallel port bus (required) device lpt # Printer # PCI Ethernet NICs that use the common MII bus controller code. device miibus # MII bus support device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') # Pseudo devices - the number indicates how many units to allocate. pseudo-device loop # Network loopback pseudo-device ether # Ethernet support pseudo-device tun # Packet tunnel. pseudo-device pty # Pseudo-ttys (telnet etc) pseudo-device md # Memory "disks" pseudo-device gif # IPv6 and IPv4 tunneling pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation) # The `bpf' pseudo-device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! pseudo-device bpf #Berkeley packet filter # EOF ========== ========== dmesg: Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.5-RC #0: Mon Jan 21 20:52:33 CET 2002 root@tensor.xs4all.nl:/usr/obj/usr/src/sys/TENSOR Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 150000567 Hz CPU: Pentium/P54C (150.00-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x52c Stepping = 12 Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8> real memory = 67108864 (65536K bytes) avail memory = 62140416 (60684K bytes) Preloaded elf kernel "kernel" at 0xc0324000. Intel Pentium detected, installing workaround for F00F bug md0: Malloc disk npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 isab0: <Intel 82371SB PCI to ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel PIIX3 ATA controller> port 0xf000-0xf00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0x6100-0x617f mem 0xe4000000-0xe400007f irq 11 at device 15.0 on pci0 xl0: Ethernet address: 00:01:02:08:d3:92 miibus0: <MII bus> on xl0 xlphy0: <3Com internal media interface> on miibus0 xlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto pci0: <S3 ViRGE graphics accelerator> at 16.0 irq 10 xl1: <3Com 3c905B-TX Fast Etherlink XL> port 0x6200-0x627f mem 0xe4001000-0xe400107f irq 9 at device 17.0 on pci0 xl1: Ethernet address: 00:50:04:62:2a:d4 miibus1: <MII bus> on xl1 ukphy0: <Generic IEEE 802.3u media interface> on miibus1 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x100> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A, console sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/16 bytes threshold lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port IP Filter: v3.4.20 initialized. Default = pass all, Logging = enabled ad0: 6149MB <QUANTUM FIREBALL CR6.4A> [13328/15/63] at ata0-master WDMA2 ad2: 4028MB <QUANTUM FIREBALL CR4.2A> [8184/16/63] at ata1-master WDMA2 Mounting root from ufs:/dev/ad0a ========== >Description: When IPv6 support is compiled into the kernel (using options INET6), and at the same time options IPFILTER and IPFILTER_DEFAULT_BLOCK are set, IPv6 fails to work, probably because it is being blocked, even if the filter rules are explicitly set to: pass in from any to any pass out from any to any For example, even ping6 ::1 will time out, as will all other IPv6 operations. At the same time, IPv4 works as expected. If you then remove IPFILTER_DEFAULT_BLOCK, rebuild the kernel, and use exactly the same rules as above, IPv6 will start working again. Also, any IPv6 rules for ipfilter will work fine. For example, I now have the following in /etc/ipf.rules: block in log from any to any block out log from any to any ---snip--- pass in quick on xl1 proto ipv6 from any to any pass out quick on xl1 proto ipv6 from any to any which works as intended. (Note that ipv6 doesn't have any support for keep state at the moment, alas.) >How-To-Repeat: Compile a kernel with: options INET6 #IPv6 communications protocols options IPFILTER #ipfilter support options IPFILTER_DEFAULT_BLOCK #block all packets by default then observe how IPv6 doesn't work (try ping6'ing ::1, which will time out), even if you set ipfilter to pass in/out everything. >Fix: I have never before looked at the ipfilter code, so I'm quite unable to come up with a fix for this. Maybe after a week of digging, but there must be plenty of people with more insight into ipfilter than me... (Darren? :) >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020122174907.D71EB54CF>