2014-11-03
Fun with network connection managers
I tried NetworkManager again because wicd was showing downsides, such as:I tried NetworkManager again, kicked out ages ago because it fully depended on a Gnome desktop, which I don't run. But now it has nm-connection-editor and nm-cli which should make things less impossible. But after testing I found out NetworkManager is even worse for me than wicd.
- Not dealing correctly when the laptop is resumed with the ethernet cable attached: it doesn't run dhcp on the wired lan which makes services which only have IPv4 addresses unreachable. Took a while to understand that one for obvious reasons.
- Making the wired network interface flap between connected and disconnected state when a network cable is inserted after boot. Solution: restart wicd first.
A hint came when I tried things by hand:
- NetworkManager leaves wireless up when wired is running. The solution to this problem is a script from Disable WLan if Wired/Cable Network is available - Super User.
- I noticed I was using IPv6 addresses with privacy extensions again, so I made a script in the same style as the previous script to disable that setting in case the home IPv6 network was detected and enable it for all other networks. This causes a loop in NetworkManager: it restarts the interface when it detects the change. This still on wireless.
- Stopping NetworkManager left everything in a weird state: I found out it had disabled the support for router advertisments autoconfiguration in Linux. This was fixed easily on the wired network. Back to wicd.
- The next day I booted the laptop with only wireless and network wasn't coming up at all. Even after a complete reboot the wireless wasn't operating, and the wireless disable switch was in the right position.
root@machiavelli:~# ifconfig wlan0 up SIOCSIFFLAGS: Operation not possible due to RF-killI guess the script disabling wireless when wired ethernet is available does some heavier disabling than I thought. The big hint is rfkill which is installed, and listed:root@machiavelli:~# rfkill list 1: phy0: Wireless LAN Soft blocked: yes Hard blocked: no 2: dell-wifi: Wireless LAN Soft blocked: no Hard blocked: no 3: dell-bluetooth: Bluetooth Soft blocked: no Hard blocked: no 4: hci0: Bluetooth Soft blocked: no Hard blocked: noAnd the solution:root@machiavelli:~# rfkill unblock 1 root@machiavelli:~# rfkill list 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no 2: dell-wifi: Wireless LAN Soft blocked: no Hard blocked: no 3: dell-bluetooth: Bluetooth Soft blocked: no Hard blocked: no 4: hci0: Bluetooth Soft blocked: no Hard blocked: noAfter that (and restarting wicd to be sure) things worked normally again. So wicd may have its downsides, but NetworkManager is worse for me.