> In vlan ifupdown pre-up script, instead of calling ip link up for raw device before creating vlan interface, do a full ifup for raw device.
Doing so introduces another kind of problem. Consider the following setup:
auto eno1 iface eno1 inet dhcp
auto eno1.101 iface eno1.101 inet manual vlan-raw-device eno1
In this case, ifup is calling dhclient that then exits, leaving eno1 interface in a state when DHCP lease never gets renewed:
/bin/sh /lib/udev/vlan-network-interface \_ /bin/sh /etc/network/if-pre-up.d/vlan \_ ifup eno1 \_ /bin/sh -c /sbin/dhclient -1 -v -pf /run/dhclient.eno1.pid -lf /var/lib/dhcp/dhclient.eno1.leases -I -df /var/lib/dhcp/dhclient6.eno1.leases eno1 . \_ /sbin/dhclient -1 -v -pf /run/dhclient.eno1.pid -lf /var/lib/dhcp/dhclient.eno1.leases -I -df /var/lib/dhcp/dhclient6.eno1.leases eno1
> In vlan ifupdown pre-up script, instead of calling ip link up for raw device before creating vlan interface, do a full ifup for raw device.
Doing so introduces another kind of problem. Consider the following setup:
auto eno1
iface eno1 inet dhcp
auto eno1.101
iface eno1.101 inet manual
vlan-raw-device eno1
In this case, ifup is calling dhclient that then exits, leaving eno1 interface in a state when DHCP lease never gets renewed:
/bin/sh /lib/udev/ vlan-network- interface if-pre- up.d/vlan eno1.pid -lf /var/lib/ dhcp/dhclient. eno1.leases -I -df /var/lib/ dhcp/dhclient6. eno1.leases eno1 . eno1.pid -lf /var/lib/ dhcp/dhclient. eno1.leases -I -df /var/lib/ dhcp/dhclient6. eno1.leases eno1
\_ /bin/sh /etc/network/
\_ ifup eno1
\_ /bin/sh -c /sbin/dhclient -1 -v -pf /run/dhclient.
\_ /sbin/dhclient -1 -v -pf /run/dhclient.