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

Reply via email to