Description of problem: I have been working on putting together a fedora 20 cloud image for Google Compute Engine (GCE), but ran into an issue with how dhclient-script works - took me quite some time to figure it out. GCE does not allow ICMP ping to their DHCP routers and there is nothing we can do about that. A healthy GCE network configuration looks like this (GCE CentOS6 instance output): ------- [root@foo02 ~]# ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 42:01:0a:f0:88:bd brd ff:ff:ff:ff:ff:ff inet 10.240.136.189/32 brd 10.240.136.189 scope global eth0 inet6 fe80::4001:aff:fef0:88bd/64 scope link valid_lft forever preferred_lft forever [root@foo02 ~]c ------- dhclient-script tries to ping the router and if ping is unsuccessful it removes previously added routes, which means that cloud instance hangs there with broken network. These are the lines: http://pkgs.fedoraproject.org/cgit/dhcp.git/tree/dhclient-script#n276 Version-Release number of selected component (if applicable): dhclient-4.2.5-26.fc20.x86_64 How reproducible: Always Steps to Reproduce: 1. Drop ICMP echo requests to your dhcp-provided gateway address 2. service network restart Actual results: IP routing table is not properly configured: # ip r s 169.254.0.0/16 dev eth0 scope link metric 1002 Expected results: # ip r s 10.240.0.1 dev eth0 scope link 169.254.0.0/16 dev eth0 scope link metric 1002 default via 10.240.0.1 dev eth0 Additional info: DHCP lease file looks like this: lease { interface "eth0"; fixed-address 10.240.200.162; option subnet-mask 255.255.255.255; option routers 10.240.0.1; option dhcp-lease-time 4294967295; option dhcp-message-type 5; option domain-name-servers 169.254.169.254; option dhcp-server-identifier 169.254.169.254; option interface-mtu 1460; option domain-search "c.feisty-vector-355.internal.", "656424467045.google.internal.", "google.internal."; option host-name "f6.c.feisty-vector-355.internal"; option domain-name "c.feisty-vector-355.internal."; renew 5 2082/02/06 14:13:50; rebind 5 2133/02/20 22:39:19; expire 3 2150/02/25 17:27:57; }
Created attachment 852483 [details] Remove ping checking This is a patch against http://pkgs.fedoraproject.org/cgit/dhcp.git/tag/?id=dhcp-4.2.5-29.fc20 I am not sure if this is the best way to solve this problem, but I think that it kind of doesn't make sense to check whether gateway address which is given by DHCP is alive. I understand why this was changed to use ping instead of arping, but IMO neither of them are needed here.
Yes, I agree. The checking has been there since the rewrite of dhclient-script made by previous maintainer and neither I quite understand the use-case. Thanks.
dhcp-4.2.5-30.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/dhcp-4.2.5-30.fc20
Package dhcp-4.2.5-30.fc20: * should fix your issue, * was pushed to the Fedora 20 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing dhcp-4.2.5-30.fc20' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-1252/dhcp-4.2.5-30.fc20 then log in and leave karma (feedback).
dhcp-4.2.5-30.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.