On Sat, 15 Jul 2017, Guus Sliepen wrote:

> On Thu, Jun 29, 2017 at 04:02:56PM +0200, Sven-Haegar Koch wrote:
> 
> > With Debian Jessie I had the following sections in /etc/network/interfaces,
> > working fine:
> > 
> > allow-hotplug eth0
> > iface eth0 inet static
> [...]
> > iface eth0 inet6 auto
> [...]
> > 
> > allow-hotplug eth2
> > iface eth2 inet static
> [...]
> > iface eth2 inet6 auto
> [...]
> > 
> > But since the upgrade from Jessie to Stretch eth0/eth2 are not
> > activated anymore.
> 
> I've tried to reproduce this but allow-hotplug seems to work fine on all
> systems I tried, including VMs.
> 
> > The /etc/init.d/networking script contains a section ifup_hotplug()
> > handling this, but the systemd service networking.service is missing it,
> > and nothing else seems to replace it if the interface already exists
> > at boot time.
> 
> It should be handled by udev: /lib/udev/rules.d/80-ifupdown.rules will
> call /lib/udev/ifupdown-hotplug whenever it finds a network device. This
> in turn calls systemctl start ifup@$INTERFACE.service, which calls ifup
> --allow=hotplug $INTERFACE.
> 
> > As this VM image should work without screaming boot errors even if network
> > interfaces are missing I do not want to use "auto ethX" instead - which
> > worked with allow-hotplug exactly as wanted in Jessie.
> 
> Can you provide me with the configuration of your VM, and your full
> /etc/network/interfaces file?

The /etc/network/interfaces is attached. Ignore the custom "multi-*" 
settings in there, they are used by an /etc/network/if-up.d script 
setting up firewalling.

The VM is a VirtualBox (from Debian Unstable) with two virtual e1000 
network interfaces, both connected to different host-only adapters.

Could this related to my "ln -s /dev/null 
/etc/systemd/network/99-default.link" trying to get rid of that ugly 
enFOO interface renaming introduced in Stretch?

Right now I am using the attached networking-hotplug.service / 
networking-hotplug-ifup.sh combo to work around it, practically 
extracted the --allow=hotplug part of the /etc/init.d/networking script.

c'ya
sven-haegar

-- 
Three may keep a secret, if two of them are dead.
- Ben F.
auto lo
allow-hotplug lo
iface lo inet loopback
    multi-usage lan


allow-hotplug eth0
iface eth0 inet static
    address 192.168.151.130
    netmask 255.255.255.0
    gateway 192.168.151.1
    multi-usage wan
    multi-gateway 192.168.151.1

iface eth0 inet6 auto
    accept_ra 2
    dhcp 0
    dad-attempts 0
    request_prefix 0


allow-hotplug eth2
iface eth2 inet static
    address 172.30.2.1
    netmask 255.255.255.0
    multi-usage lan

iface eth2 inet6 auto
    accept_ra 0
    dhcp 0
    dad-attempts 0
    request_prefix 0


allow-hotplug eth1
iface eth1 inet manual
    address 172.30.4.1
    netmask 255.255.255.0
    multi-usage lan
    pre-manual-type static

iface eth1 inet6 manual
    accept_ra 0
    dhcp 0
    dad-attempts 0
    request_prefix 0
    pre-manual-type auto


allow-hotplug eth3
iface eth3 inet static
    address 10.1.1.1
    netmask 255.255.255.0
    multi-usage lan

iface eth3 inet6 auto
    accept_ra 0
    dhcp 0
    dad-attempts 0
    request_prefix 0


allow-hotplug idrac
iface idrac inet static
    label iDRAC 7+ virtual interface
    multi-usage lan
    address 169.254.0.2
    netmask 255.255.255.0

iface idrac inet6 auto
    accept_ra 0
    dhcp 0
    dad-attempts 0
    request_prefix 0


Attachment: networking-hotplug-ifup.sh
Description: Bourne shell script

[Unit]
Description=Raise network interfaces marked as allow-hotplug
DefaultDependencies=no
Wants=network.target
After=local-fs.target network-pre.target apparmor.service 
systemd-sysctl.service systemd-modules-load.service networking.service
Before=network.target shutdown.target network-online.target
Conflicts=shutdown.target

[Install]
WantedBy=multi-user.target
WantedBy=network-online.target

[Service]
Type=oneshot
EnvironmentFile=-/etc/default/networking
ExecStartPre=-/bin/sh -c '[ "$CONFIGURE_INTERFACES" != "no" ] && [ -n 
"$(ifquery --read-environment --list --allow=hotplug --exclude=lo)" ] && 
udevadm settle'
ExecStart=/usr/local/superclick/lib/networking-hotplug-ifup.sh
ExecStop=/bin/true
RemainAfterExit=true
TimeoutStartSec=5min

Reply via email to