Hello, We're seeing an interesting dhcp problem with one ISPs (Swisscom) VDSL product, where the dhclient tries to renew the WAN IP address with unicast to udp port 68 but from a random high port instead of the dhcp-client udp port 67 and gets dropped therefore. After 30 minutes dhclient falls back to dhcpdiscovery (broadcast, to port 68, from port 67) which usually works but in rare cases (about one a week) fails and kills connectivity. RFC2131 (http://www.rfc-archive.org/getrfc.php?rfc=2131 page 23 top) unfortunately doesn't definine the udp source port at all, and RFC951 says: "We could not simply allow the client to pick a 'random' port number for the UDP source port field; since the server reply may be broadcast, a randomly chosen port number could confuse other hosts that happened to be listening on that port." (although this is not the case for unicast renewals). In http://svn.freebsd.org/base/release/7.2.0/sbin/dhclient/bpf.c I see the "SENDING DIRECT" codepath (lines 250ff), so the socket opened on line 255 could be bound to source port 67 with bind(). Any objections to me submitting a patch ?
Regards, Aarno -- Aarno Aukia Atrila GmbH Switzerland --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] Commercial support available - https://portal.pfsense.org
