kern/98831: ipfw has UDP hickups

Harald Schmalzbauer kaeptn at schmalzbauer.de
Sun Jun 11 16:30:17 UTC 2006


>Number:         98831
>Category:       kern
>Synopsis:       ipfw has UDP hickups
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 11 16:30:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Harald Schmalzbauer
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
>Environment:
System: FreeBSD gune.flintsbach.schmalzbauer.de 6.1-STABLE FreeBSD 6.1-STABLE #1: Wed Jun 7 17:07:04 CEST 2006 compilator at cale.flintsbach.schmalzbauer.de:/usr/obj/FlashBSD/i686/usr/src/sys/i686.intern-gune i386

Relevant kernel options:
options         IPFIREWALL              #firewall
options         IPFIREWALL_VERBOSE      #enable logging to syslogd(8)
options         IPFIREWALL_VERBOSE_LIMIT=20    #limit verbosity
options         IPFIREWALL_DEFAULT_TO_ACCEPT    #allow everything by default
options         IPFIREWALL_FORWARD      #packet destination changes
options         IPFIREWALL_FORWARD_EXTENDED     #all packet dest changes	

NICs: em and re tested, all with GbE link

Intention: route jails on the same box through router of the two subnets.
Rule:
00100 fwd 10.0.0.1 ip4 from 10.2.0.0/16 to not 10.0.0.0/8 out
00200 fwd 172.21.0.1 ip4 from 172.21.2.2 to 10.0.0.0/8 out
65535 allow ip from any to anyo

>Description:
	When nfs mounting a remote file system and transferring some data after a short while the transfer hangs and on the machine with ipfw enabled I see the following lines on the console:
ipfw: pullup failed
ipfw: pullup failed
ipfw: pullup failed

nfsmounting with option -T (for TCP instead of UDP) is a workaround. I can't see the problem on TCP connections

>How-To-Repeat:
	Compile a kernel with the show IPFIREWALL options.
	mount_nfs somebox:/somefs anywhere
It doesn't matter if the machine with IPFW is nfs server or nfs client! With the default UDP mount the error occurs in both scenarios!
e.g 	make installworld DESTDIR=/anywhere (the NFS mountpoint)
After a short while (1 minute) you'll see the installworld hanging.
Simply setting sysctl net.inet.ip.fw.enable=0 on another console makes installworld (nfs) happy again and it's continueing.

>Fix:

	No idea 


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list