udp checksum implementation error in FreeBSD 7.2?
Benoit Panizzon
benoit.panizzon at imp.ch
Tue Jun 28 13:09:06 UTC 2011
Hi
We are running a DHCP Server on a FreeBSD 7.2-RELEASE-p4 box.
This works for most of our customers, except ones with some kind of SonicWall
Firewalls. We have analyzed the problem with the sonicwall tech support:
We found the problem being in the sonicwall setting a UDP checksum of 0x0000
for DHCP Requests.
According to the RFC this is a valid value and tells the receiving UDP stack
not to check the checksum:
http://www.faqs.org/rfcs/rfc768.html
If the value is different from 0x0000 the receiving UDP stack can perform a
checksum check and if this fails, silently drop that packet.
What we observe is:
DHCP Request with UDP checksum set => Packet reaches DHCP Daemon and is being
answered.
DHCP Request with UDP checksum 0x0000 => ICMP Port Unreachable from FreeBSD.
Can someone confirm this non RFC conform behaviour and knows how to fix it?
As I understand, setting net.inet.udp.checksum to zero would not fix the
problem, as this is only for packet generation.
Kind regards
Benoit Panizzon
--
I m p r o W a r e A G -
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 07
CH-4133 Pratteln Fax +41 61 826 93 02
Schweiz Web http://www.imp.ch
______________________________________________________
More information about the freebsd-net
mailing list