[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: restarting network



On Tue, 29 Mar 2016 17:38:07 +0100
Tony van der Hoff <tony@vanderhoff.org> wrote:

> On 29/03/16 17:20, Reco wrote:
> > On Tue, 29 Mar 2016 17:08:01 +0100
> > Tony van der Hoff <tony@vanderhoff.org> wrote:
> >
> >> On 29/03/16 16:25, Reco wrote:
> >>> 	Hi.
> >>>
> >>> On Tue, 29 Mar 2016 15:44:16 +0100
> >>> Tony van der Hoff <tony@vanderhoff.org> wrote:
> >>>>> And - you have yet another default gateway for eth1.
> >>>>> No wonder that the kernel refuses to add the same route second time.
> >>>>>
> >>>>> Reco
> >>>>>
> >>>>
> >>>> Thanks, Reco.
> >>>> I've now commented out that line for eth1, but I still get
> >>>>
> >>>> Mar 29 15:37:47 tony-lx networking[24921]: Failed to bring up eth1.
> >>>> Mar 29 15:37:47 tony-lx networking[24921]: done.
> >>>
> >>> Now *that* requires actual investigation.
> >>>
> >>> What does the following sequence yield:
> >>>
> >>> ifdown -v eth1
> >>>
> >> root@tony-lx:~# ifdown -v eth1
> >> ifdown: interface eth1 not configured
> >
> > Ok, let's try it like this then:
> >
> > ifdown --force eth1
> > ip l s dev eth1 down
> > ip a d dev eth1 192.168.2.8/24
> > ip a d dev eth1 2001:8b0:ff60:6a91::8
> > ifup -v eth1
> >
> 
> root@tony-lx:~# ifdown --force eth1
> root@tony-lx:~# ip l s dev eth1 down
> root@tony-lx:~# ip a d dev eth1 192.168.2.8/24
> RTNETLINK answers: Cannot assign requested address
> root@tony-lx:~# ip a d dev eth1 2001:8b0:ff60:6a91::8
> RTNETLINK answers: Cannot assign requested address
> root@tony-lx:~# ifup -v eth1
> Configuring interface eth1=eth1 (inet)
> run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
> run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
> ip addr add 192.168.2.8/255.255.255.0 broadcast 192.168.2.255     dev 
> eth1 label eth1
> ip link set dev eth1   up
> 
> ip addr add dev eth1 2001:8b0:ff60:6a91::8
> ip route add default via fe80::1 dev eth0
> RTNETLINK answers: File exists
> Failed to bring up eth1.

Haha, bullseye! The whole mess is caused by exotic 'ip route' "up" hook.
So, first things first:

ifdown --force eth1
ip l s dev eth1 down
ip a d dev eth1 192.168.2.8/24
ip a d dev eth1 2001:8b0:ff60:6a91::8

And then modify your /etc/network/interfaces like this:

auto eth1
iface eth1 inet static
	address 192.168.2.8
	netmask 255.255.255.0
	network 192.168.2.0
	broadcast 192.168.2.255
	up /sbin/ip addr add dev eth1 2001:8b0:ff60:6a91::8/128
	up /sbin/ip -6 route add default via fe80::1 dev eth1

'ifup -v eth1' should configure the interface cleanly then.
As should conventional 'ifup eth1'.


Next, ifup (and ifdown for that matter) is kind of paranoid.
Every time you tell ifup to do something - it executes each and every
'pre-up' and 'up' in succession and all it takes is one faulty hook to
get (in)famous 'Failed to bring up foo' message.
The interface in question may be in UP state, and even have some IPs
assigned, *but* since something went wrong - the interface must be
absent from /run/network/ifstate.
ifdown should only proceed if the interface is listed in the ifstate
file (unless you supply --force of course).


PS To answer your original query.
'/sbin/service networking restart' is a valid way of changing network
interface configuration *if* the network interface is configured
correctly *before* and *after* the change.

Else it's more-or-less required to do things a hard way - by manual
reconfiguration via iproute (or ifconfig).

Reco


Reply to: