On Mon, Jul 09, 2018 at 11:52:36AM +1000, Zenaan Harkness wrote:
So I change between two internet connections from time to time.I use /etc/network/interfaces ("/e/n/i") When I modify /e/n/i , I then run a little "reset" script, like so: dev=eth0 ifdown $dev ifconfig $dev down ifup $dev Here and there I've had problems. Recently I discovered the ip command. Apparently, after reconfiguring as above, two IP addresses end up attached to eth0 - one for each (staticly configured in /e/n/i) ISP network connection. So now I am manually running something like: ifconfig eth0 down ip address del 10.1.1.30/24 dev eth0 ip address del 192.168.1.30/24 dev eth0 ip address del fe80::f2de:f1ff:fef7:ea96/64 dev eth0 ifup eth0 But this (atm) is a very manual process, and it seems to me that I am not taking down eth0 properly, and that I should not have to introduce IP address awareness into my eth reset script, just to properly reset my eth0 static configuration. Any pointers of what I need to read/ what I am missing, would be really appreciated.
ifup and ifdown read the contents of /e/n/i to determine what tasks to perform. So, in particular, ifdown reads that file to determine what addresses to remove from the interface.
That being said, you might find it more suitable to change your script to:
1. ifdown the interface2. Change the network parameters (either by using sed etc to edit the file or to move 'canned' files in/out of /etc/network/interfaces.d)
3. ifup the interfaceWhat I would do, in your situation is to have a set of files in /etc/network/interfaces.d called, for example "!home", "!work", "!travel" or whatever makes sense for your locations. The leading "!" character makes the configuration invalid to ifupdown, so will be ignored. Your script can then rename any files that DON'T have a "!" in front to do so, then rename the requested file to NOT have a "!" in front e.g.
#!/bin/bash ifdown eth0 prename 's/^/!' /etc/network/interfaces.d/[^\!]* mv /etc/network/interfaces.d/\!$1 /etc/network/interfaces.d/$1 ifup eth0 -- For more information, please reread.
signature.asc
Description: PGP signature