[opensuse-autoinstall] Installing with a Bonded Network broken when HW Clock is in the Future
Hello Since about a year we always have to set the hardware clock on our physical servers to the correct time in GMT or else the AutoYaST install process would fail. Env: SLES 11 SP3 HW: HP ProLiant LAN: PXE boot on eth0 with dhcp, AutoYaST config with bond0 on eth0+eth1 As the root cause I believe it is ifprobe that thinks a change is only necessary if /etc/sysconfig/network/ifcfg-eth0 is newer than /dev/.sysconfig/network/ifup-eth0 Combined with this change it wreaks havoc to the bonded network at install time: rpm -qf /sbin/ifup --changelog [...] * Thu Apr 04 2013 mt@suse.de - Fixed to stop dhcp clients and remove IP addresses on not yet enslaved bridge ports and bonding slaves. The bridge or bond interface has the IP addresses assigned itself instead. The port/slave may still have IP addresses, when the IP config of an active (ethernet) interface has been moved into a bridge or bond config, e.g. while "virsh iface-bridge eth0 br0". There is no full ifdown for the port interface to not break the vlans (and their bridges) which may refer to the port too (bnc#813148). [0001-Flush-IPs-on-bridge-bond-children-ifup-bnc-813148.patch] [...] Now how does it come this far? Let me explain what I think happens: With the *old* ifup and a HW clock in the future: 1. eth0 with dhcp up 2. Yast configures eth0, eth1 and bond0 3. ifprobe compares it's runtime config of eth0 [0] with the ifcfg-eth0 in /etc/sysconfig (comparison with 'test -nt') and (wrongly) thinks nothing has changed 4. Yast does not take eth0 down because the ifprobe returncode indicates no action necessary 5. Yast ifups the bond0 and all slaves get deconfigured automaticall, including eth0 6. everything continues swimmingly With the *new* ifup and a HW clock in the future: 1. eth0 with dhcp up 2. Yast configures eth0, eth1 and bond0 3. ifprobe compares it's runtime config of eth0 [0] with the ifcfg-eth0 in /etc/sysconfig (comparison with 'test -nt') and (wrongly) thinks nothing has changed 4. Yast does not take eth0 down because the ifprobe returncode indicates no action necessary 5. Yast ifups the bond0 but all slaves get left as-is, including eth0 with it's DHCP IP and route 6. Network does not work, repo does not get found, installation aborts With the *new* ifup and a HW clock set correctly or in the past: 1. eth0 with dhcp up 2. Yast configures eth0, eth1 and bond0 3. ifprobe compares it's runtime config of eth0 [0] with the ifcfg-eth0 in /etc/sysconfig (comparison with 'test -nt') and notices the config has changed 4. Yast sees the returncode of ifprobe and takes eth0 down 5. Yast ifups the bond0 but all slaves get left as-is, including eth0 which is now in the correct state 6. everything continues swimmingly I've come to this conclusion by reading /var/log/messages and looking at the two files ifprobe compares. This is how it looks when the server time is slightly in the future: / # ls -al /dev/.sysconfig/network/ifup-eth0 /etc/sysconfig/network/ifcfg-eth0 -rw-r--r-- 1 root root 7 Mar 11 20:56 /dev/.sysconfig/network/ifup-eth0 -rw-r--r-- 1 root root 73 Mar 11 20:55 /etc/sysconfig/network/ifcfg-eth0 Note the runtime config is one minute in the future, this leads to ifprobe thinking there is no change necessary. What do you think? Is this a reasonable explanation? I'll open a case for SLES but maybe this also affects OpenSUSE. Regards, Michael Leu [0] /dev/.sysconfig/network/ifup-eth0 -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-autoinstall+owner@opensuse.org
participants (1)
-
michael.leu@mgb.ch