Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 175053

Summary: dhcpcd-3.0.16-r1 does not set a default gateway
Product: Gentoo Linux Reporter: Syed Amer Gilani <amg>
Component: Current packagesAssignee: Roy Marples (RETIRED) <uberlord>
Status: VERIFIED INVALID    
Severity: normal CC: amg
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: dhcpcd 2.0.5 Wireshark dump
dhcpcd 3.0.16 Wireshark dump

Description Syed Amer Gilani 2007-04-18 09:43:36 UTC
In my local Network the IP addresses are assigned by net-dns/dnsmasq-2.31 on an amd64 server.

After updating dhcpcd to 3.0.16-r1 i dont get a default gw from the dhcp server, only static routes:

[root:/] dhcpcd -k eth0
[root:/] dhcpcd -d eth0
Info, eth0: dhcpcd 3.0.17 starting
Info, eth0: hardware address = 00:02:3f:15:91:fa
Info, eth0: broadcasting for a lease
Debug, eth0: sending DHCP_DISCOVER with xid 0x4a83a5cd
Debug, eth0: waiting on select for 20 seconds
Debug, eth0: waiting on select for 20 seconds
Debug, eth0: waiting on select for 20 seconds
Debug, eth0: got a packet with xid 0x4a83a5cd
Info, eth0: offered 192.168.1.34 from 192.168.1.253
Debug, eth0: sending DHCP_REQUEST with xid 0x4a83a5cd
Debug, eth0: waiting on select for 18 seconds
Debug, eth0: got a packet with xid 0x4a83a5cd
Info, eth0: leased 192.168.1.34 for 43200 seconds
Debug, eth0: renew in 21600 seconds
Debug, eth0: rebind in 37800 seconds
Info, eth0: adding IP address 192.168.1.34/24
Info, eth0: adding route to 10.8.0.0 (255.255.255.0) via 192.168.1.252 metric 0
Debug, eth0: writing /etc/resolv.conf
Debug, eth0: /etc/ntp.conf already configured, skipping
Debug, eth0: /etc/ntpd.conf already configured, skipping
Debug, eth0: writing /var/lib/dhcpcd/dhcpcd-eth0.info
Debug, eth0: forking to background
[root:/] route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.8.0.0        eriwan.systec   255.255.255.0   UG    0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo

With dhcpcd-2.0.5-r1 i get the default route:
[root:/] dhcpcd -k eth0
[root:/] dhcpcd -d eth0
Info, MAC address = 00:02:3f:15:91:fa
Debug, broadcasting DHCP_REQUEST for 192.168.1.34
Debug, timed out waiting for DHCP_ACK response
Debug, broadcasting DHCP_DISCOVER
Debug, dhcpIPaddrLeaseTime=43200 in DHCP server response.
Debug, DHCP_OFFER received from  (192.168.1.253)
Debug, broadcasting DHCP_REQUEST for 192.168.1.34
Debug, dhcpIPaddrLeaseTime=43200 in DHCP server response.
Debug, DHCP_ACK received from  (192.168.1.253)
Debug, broadcasting ARPOP_REQUEST for 192.168.1.34
Info, verified 192.168.1.34 address is not in use
Info, your IP address = 192.168.1.34
Debug, orig hostname = AmerLap
[root:/] route -n
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0


Reproducible: Always

Steps to Reproduce:
Comment 1 Christian Heim (RETIRED) gentoo-dev 2007-04-18 10:24:27 UTC

*** This bug has been marked as a duplicate of bug 173931 ***
Comment 2 Syed Amer Gilani 2007-04-18 10:30:39 UTC
this is not an duplicate of 173931. there the gateway is unreachable. here it is but dhcpcd is not even trying to set it.
Comment 3 Roy Marples (RETIRED) gentoo-dev 2007-04-18 10:35:27 UTC
If you feel this is not a duplicate, then please attach a whireshark trace of dhcpcd-3.x and dhcpcd-2.x of the dhcp transaction and then re-open this bug.

Thanks
Comment 4 Syed Amer Gilani 2007-04-18 12:51:11 UTC
Created attachment 116632 [details]
dhcpcd 2.0.5 Wireshark dump
Comment 5 Syed Amer Gilani 2007-04-18 12:51:30 UTC
Created attachment 116633 [details]
dhcpcd 3.0.16 Wireshark dump
Comment 6 Syed Amer Gilani 2007-04-18 12:55:45 UTC
It seems that 3.0.16 does not request any special informations in the DHCP Discover, but 2.0.5 does. And the default answer from dnsmasq does not contain the router entry.
Comment 7 Roy Marples (RETIRED) gentoo-dev 2007-04-18 19:56:55 UTC
You've set Classless Static Routes on the DHCP server.
This overrides any static routes *and* routers provided. You need to include your default route in your CSR option.



See RFC3442 - DHCP Client Behaviour

   If the DHCP server returns both a Classless Static Routes option and
   a Router option, the DHCP client MUST ignore the Router option.

   Similarly, if the DHCP server returns both a Classless Static Routes
   option and a Static Routes option, the DHCP client MUST ignore the
   Static Routes option.
Comment 8 Syed Amer Gilani 2007-04-19 08:20:28 UTC
setting the default route as a classless static route solved the problem. 
but this seems to be a DHCP Behaviour that no other DHCP client cares about. We have here many  Windows xp/98/2000, apple and linux workstations which worked normal with the previous DHCP server settings.
but thanks anyway.
Comment 9 Roy Marples (RETIRED) gentoo-dev 2007-04-19 08:32:04 UTC
(In reply to comment #8)
> setting the default route as a classless static route solved the problem. 
> but this seems to be a DHCP Behaviour that no other DHCP client cares about. We
> have here many  Windows xp/98/2000, apple and linux workstations which worked
> normal with the previous DHCP server settings.
> but thanks anyway.

Only clients that understand CSR's would behave correctly. Of that list, only windows 2000 and XP should know about CSR's. dhcpcd-3 is the only linux client that knows about CSR's

dhclient from FreeBSD also knows and behaves in the same manner as dhcpcd-3, so I would assume that the Microsoft clients don't follow the RFC exactly, which should not come as a suprise.