Ubuntu focuses on netplan with systemd-networkd or Network Manager, and ifupdown isn't really supported any more except for edge cases not supported by netplan. Since vlan is supported by netplan, I'm therefore marking this Won't Fix for the Ubuntu development release.
Note that ifupdown in Ubuntu barely differs from Debian now, so it seems likely to me that there would be no difference in behaviour from Debian here. ** Changed in: ifupdown (Ubuntu) Status: Confirmed => Won't Fix -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to ifupdown in Ubuntu. https://bugs.launchpad.net/bugs/1628591 Title: ifup & ifdown don't work for vlan devices when raw device name is the new "enp" convention Status in ifupdown package in Ubuntu: Won't Fix Bug description: The regular expressions used in /etc/network/if-post-down.d/vlan and /etc/network/if-pre-up.d/vlan do not match the name of my network card enp4s0f0. This can be fixed by broadening the regular expression. This is only a problem when the device is a vlan device! See below for the fix that worked on my system. if-pre-up: #!/bin/sh # Most of this stuff is to enable vlans case "$IFACE" in # Ignore any alias (#272891) which uses <interface>:<alabel> *:*) exit 0 ;; vlan0*) vconfig set_name_type VLAN_PLUS_VID VLANID=`echo $IFACE|sed "s/vlan0*//"` ;; vlan*) vconfig set_name_type VLAN_PLUS_VID_NO_PAD VLANID=`echo $IFACE|sed "s/vlan0*//"` ;; eth*.0*|bond*.0*|wlan*.0*|em*.0*|p[0-9]*.0*|enp[0-9]*.0*) vconfig set_name_type DEV_PLUS_VID VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*\.0*//g;s/wlan[0-9][0-9]*\.0*//g;s/em[0-9][0-9]*\.0*//g;s/p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\.0*//g;s/enp[0-9]s[0-9]f[0-9]\.0*//g"` IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/;s/\(em[0-9][0-9]*\)\..*/\1/;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*/\1/;s/\(enp[0-9]s[0-9]f[0-9]\)\..*/\1/"` ;; eth*.*|bond*.*|wlan*.*|em*.*|p[0-9]*.*|enp[0-9]*.*) vconfig set_name_type DEV_PLUS_VID_NO_PAD VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*\.0*//g;s/wlan[0-9][0-9]*\.0*//g;s/em[0-9][0-9]*\.0*//g;s/p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\.0*//g;s/enp[0-9]s[0-9]f[0-9]\.//g"` IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/;s/\(em[0-9][0-9]*\)\..*/\1/;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*/\1/;s/\(enp[0-9]s[0-9]f[0-9]\)\..*/\1/"` ;; *.0*) # Silently ignore interfaces which we do not (know how to) support [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0 vconfig set_name_type DEV_PLUS_VID VLANID=`echo $IFACE|sed "s/[^.]*\.0*//g"` ;; *.*) # Silently ignore interfaces which we do not (know how to) support [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0 vconfig set_name_type DEV_PLUS_VID_NO_PAD VLANID=`echo $IFACE|sed "s/[^.]*\.0*//g"` ;; *) exit 0 ;; esac if [ -n "$IF_VLAN_RAW_DEVICE" ] && [ ! -d /sys/class/net/$IFACE ]; then if [ ! -x /sbin/vconfig ]; then exit 0 fi if ! ip link show dev "$IF_VLAN_RAW_DEVICE" > /dev/null; then echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $IFACE" exit 1 fi if [ ! -e "/sys/class/net/$IFACE" ]; then ip link set up dev $IF_VLAN_RAW_DEVICE vconfig add $IF_VLAN_RAW_DEVICE $VLANID fi fi # This is not vlan specific, and should actually go somewhere else. if [ -n "$IF_HW_MAC_ADDRESS" ]; then ip link set $IFACE address $IF_HW_MAC_ADDRESS fi if-post-down: #!/bin/sh # If IFACE is an automagic vlan interface (without the vlan-raw-device # parameter) then let's try to discover the magic here.. Another way would be # to just probe for the right device name in /proc/net/vlan case "$IFACE" in # Ignore any alias (#272891) *:*) exit 0 ;; eth*.0*|bond*.0*|wlan*.0*|em*.0*|p[0-9]*.0*|enp[0-9]*\.0*) IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/;s/\(em[0-9][0-9]*\)\..*/\1/;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*/\1/"` ;; eth*.*|bond*.*|wlan*.*|em*.*|p[0-9]*.*|enp[0-9]*\.*) IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/;s/\(em[0-9][0-9]*\)\..*/\1/;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*/\1/"` ;; # Test for vlan raw device (#196890, #292648) *) [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0 ;; esac if [ ! -x /sbin/vconfig ]; then exit 0 fi vconfig rem $IFACE To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1628591/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp