Bugzilla – Bug 156625
switched network devices
Last modified: 2007-03-13 14:00:23 UTC
This might actually be a udev problem, or someones elses problem entirely. It might even be a problem of me completely misremembering. Anyway: I updated from 9.2 to 10.1 beta7. This machine has two network devices, only one of them actually connected with a cable. Both of them were configured statically, so I had ifcfg-eth-bus-pci-...{0f,10}.0 files in 9.2. I know that I could access our internal net (10.10.0.0/16) and external net. The eth1 device was the one which was connected and had the default route set. After the update the default route still is on eth1, but I can't access anything beyond the internal net, e.g. a ping www.kde.org doesn't work. I pinged an internal host to see on which interface exactly the packages go out, and saw that the packages were coming from eth0. Which means, that now the cable is connected to the eth0 device, although of course I didn't switch cables. I'm not completely sure what to make out of this, also because I don't remember exactly how the machine worked under 9.2, it was a long time ago since I last switched it on (I just activated it again for this update to 10.1). Right now I can't paste anything from that machine to this bugreport, I'll try doing this tomorrow. But the current (interesting) routes are as configured: 10.10.0.0/16 dev eth0 src 10.10.102.252 10.10.0.0/16 dev eth1 src 10.10.0.40 default via 10.10.0.8 dev eth1 The default route doesn't work as the ping shows, and as eth0 is connected to the cable. But the above were the same routes also under the old 9.2 installation and I'm fairly sure there external network was working. It's also interesting that if I switch cable (so that eth1 in fact is now connected) still nothing works, no external network, _and_ no internal one. I could only guess that the first route is tried no matter what, which goes over eth0, which then is not connected. The strange thing of course being that also the default route (e.g. to www.kde.org) doesn't seem to work, although it explicitely mentions eth1 as device. And now that last interesting thing, which definitely is a bug somewhere. Although both interfaces are configured statically (to 10.10.0.40 and 10.10.0.41) eth0 nevertheless got a dhcp address (see above 10.10.102.252) in addition to the configured address. I mean I could just configure everything again in yast, and it would be fine, but for now I'd like to understand the issue first, i.e. if it's really a bug somewhere, before redoing everything.
Please attach the YaST logs: http://en.opensuse.org/Bug_Reporting_FAQ#YaST
Created attachment 72283 [details] y2logs These are the logfiles from inside the system during installation (i.e. installation is _not_ yet finished). The screen is the network test screen, where I noticed that something was fishy and made this bugreport. I did not yet touch the system. Although I slowly come to the conclusion that maybe I should simply find out why I have two 10.10/16 routes and perhaps simply change the default route to be on eth0.
Forgot to remove the NEEDINFO.
Martin, have you had a chance to look into this? How to proceed from here?
Weird. This is NOT a duplicate of bug 116537. Michael, please attach also /etc/sysconfig/network/ifcfg*
Hmm, I fear I meanwhile have reconfigured the machine, and the old files are not available anymore :-( I still have the old 9.2 partition, so perhaps I can retry an update to the current 10.1 RC.
Even the original ifcfgs from the 9.2 system are a good start. Also look in /var/adm/backup.
Created attachment 81272 [details] info files from 9.2 This tarball contains the current configuration of the 9.2 machine, before any update or anything. eth0 is connected with a cable. I can ping internally and externally, i.e. the 10.10/16 route and the default route work (over eth0). I've included hwinfo output, ip addr and ip route output, and the relevant files from /etc/sysconfig/network/ . As can be seen both interfaces are configured statically. So I verified everything I only darkly remembered in the initial report. I'm now going to update this machine to the current RC of 10.1 and will report back.
I'm now in the update after the intermediate boot in the testing of the networking, i.e. it tries to download the release notes. This fails. The update of the network cards seems to be mostly okay now, except for the default route. As I don't want to change the setup by hand right now (because there's only one chance to look at this intermediate boot) I can't copy over any files. I'll do this once I rebooted into the system for good. But some observations anyway: The network devices are ordered correctly, i.e. eth0 now is the same network card as eth0 in the old system (verified via MAC address). As I installed via SLP (over NFS) I got a dynamic address for eth0, to which my static IP was added afterwards, so that eth0 now has IPs 10.10.100.142 and 10.10.2.41. eth1 also got the correct IP (10.10.2.40). So far everything is okay. The internal routes also are okay, but not the default route. Namely: 10.10.0.0/16 dev eth0 proto kernel scope link src 10.10.100.242 10.10.0.0/16 dev eth1 proto kernel scope link src 10.10.2.40 169.254.0.0/16 dev eth0 scope link 127.0.0.0/8 dev lo scope link default via 10.10.0.8 dev eth1 So the 10.10 routes are fine (going over both interfaces), so I can indeed ping internal hosts in the 10.10 net. Remember that the machine still is connected via eth0. eth1 has no cable connected. Now look at the default route. It goes over eth1. That's why I can't reach any global hosts, and the download of release notes hence fails. I see this in y2log (not pasted but written from screen): 2006-05-02 17:38:09 <3> ries(4178) [YCP] clients/inst_netsetup.ycp:151 Setting up device: /sbin/ifconfig eth0 up 10.10.100.242 netmask 255.255.0.0 2006-05-02 17:38:09 <3> ries(4178) [YCP] clients/inst_netsetup.ycp:158 Setting up route: /sbin/route add default gw 10.10.0.8 Thats the only mention of the word "route" I can find in y2log. From the surrounding output I can see that eth1 did not yet have and address. I can only speculate that this command sets the default route via the last interface (eth1) as no interface is explicitely mentioned, and that this lasts until later in the installation leading to the failed connections. In /var/log/YaST2/internet-test/messages I see that ifstatus-route eth0 actually mentions that the default route is configured for eth0. But in the list of active routes this is missing. I'm now going to finish the installation without the internet test, then reboot into the real system, and then copy over the interesting files.
I've rebooted. The default route still is going over eth1, i.e. the unconnected one. I'll attach the logs and a tarball with output similar to comment #8 momentarily.
Created attachment 81762 [details] info files from 10.1 This is output from ip addr, ip.route, hwinfo and the /etc/sysconfig/network directory of the updated system.
Created attachment 81765 [details] y2logs from 10.1 And this is the tarball from save_y2logs of the updated system.
Reassigning to the new maintainer of yast2-network.
It'a already fixed bug. *** This bug has been marked as a duplicate of bug 74339 ***