Web lists-archives.com

Re: Worked example, was Re: Still unable to restart networking on Debian 9 text mode only




On 2018-11-24 9:05 p.m., David Wright wrote:
On Sat 24 Nov 2018 at 12:25:20 (-0500), Gary Dale wrote:
On 2018-11-23 8:25 a.m., Luciano Andress Martini wrote:
Additional information - Again Debian 9.6 Fresh Install without
graphical interface:

cat /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
      address 10.5.0.2/24
      gateway 10.5.0.1
      # dns-* options are implemented by the resolvconf package, if installed
      dns-nameservers 8.8.8.8
      dns-search neoconsig.local

Just changed 10.5.0.2 to 10.5.0.3

#ifdown enp0s3
#ifup enp0s3
Reco has already explained why this approach is incorrect.
The OP seems to prefer imagining a bug rather than taking much notice
of the replies.

My own two cents on the problem is that Interfaces is meant to define
how the network is brought up, not to change a running network.
Yes, but it also appears that interfaces also defines how the network
is brought down again, which is what the OP doesn't understand.

If you
want to change a running network, use ifconfig or ip to change the
address. e.g. ifconfig enp-s3 10.5.0.3 should work since all you are
changing is the ip address.
I can't see any advantage in this as you have to do all the grunt work
yourself instead of letting ifdown/ifup do it for you. For example:

Here's my normal /e/n/i:

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s14
iface enp0s14 inet dhcp
$

I set up two static alternatives, one using the same address (13) as I
get from the router, and one wacky one (213) in the "intruder" range:

allow-hotplug enp0s14
iface enp0s14 inet static
  address 192.168.1.13
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameservers 192.168.1.1

and

allow-hotplug enp0s14
iface enp0s14 inet static
  address 192.168.1.213
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameservers 192.168.1.1

(the rest of each file is unchanged from the normal one).

Running a script like:

#!/bin/bash
ifdown enp0s14
cp /etc/network/interfaces-static-213 /etc/network/interfaces
ifup enp0s14

releases the lease, downs the avahi-daemon, changes the network
address, restarts the ssh server, reconfigures ntpd, and ups the
avahi-daemon. My ssh session also goes dead (as I was logged in
that way).

Logging in on 192.168.1.213 instead (and avoiding polluting my
known_hosts file) I can now run a similar script to the above,
that has the line
cp /etc/network/interfaces-static-13 /etc/network/interfaces
or
cp /etc/network/interfaces-normal-dhcp /etc/network/interfaces
in it, and my old ssh session comes alive again (the new session
going dead of course). The logs show all the other changes being
reversed back to normal, with a new lease etc.

So you can see the extra work (worth more than two cents) that
the higher level commands do for you automatically, thanks to
/etc/network/if-*.d/*

Cheers,
David.

That, of course, assumes that ifup and ifdown work on your system. They don't work on two of my systems that uses systemd-networkd to control the network. However ifconfig works on one and ip works on the other (although they are both running Stretch, one is a new server-type install while the other has been upgraded over the years from earlier versions).

The lower-level tools tend to be more flexible and are more agnostic regarding how your network is set up.

In the case of the OP, he needs to change his interfaces file no matter how he changes the network. However the order of commands isn't important when he uses ifconfig or ip to update the ip address - he can do it before or after editing interfaces. Moreover, it takes one fewer command. And it's worth learning how to use these tools if you are working with networks.