Hey all,
I have my interfaces setup as follows:

This allows me to use the two 25GbE interfaces for both iSCSI (tagged on VLAN 254 most of the time, but in this instance it's VLAN1) and br0 for VMs, where the VM NIC will be tagged for the appropriate VLAN.
This setup works perfect in PVE8 and is very stable.
However, in PVE9, it complains about the Linux VLAN and bond using the same interface and will not refresh the interfaces.
When running
I've also attached the output of ifup -d -a to the post in case that's helpful
This is the current interfaces config
Is this an intended change, a bug, or is there a different way I could achieve this setup?
I have my interfaces setup as follows:

This allows me to use the two 25GbE interfaces for both iSCSI (tagged on VLAN 254 most of the time, but in this instance it's VLAN1) and br0 for VMs, where the VM NIC will be tagged for the appropriate VLAN.
This setup works perfect in PVE8 and is very stable.
However, in PVE9, it complains about the Linux VLAN and bond using the same interface and will not refresh the interfaces.
Code:
bond0 : error: bond0: sub interfaces are not allowed on bond slave: eth25p0 (scsi0)
TASK ERROR: command 'ifreload -a' failed: exit code 1
When running
ifup -v -a
Code:
info: requesting link dump
info: requesting address dump
info: requesting netconf dump
info: loading builtin modules from ['/usr/share/ifupdown2/addons']
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: executing /sbin/sysctl net.bridge.bridge-allow-multiple-vlans
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: executing /bin/ip rule show
info: executing /bin/ip -6 rule show
info: address: using default mtu 1500
info: address: max_mtu undefined
info: executing /sbin/sysctl net.ipv6.conf.all.accept_ra
info: executing /sbin/sysctl net.ipv6.conf.all.autoconf
info: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: executing /bin/ip addr help
info: address metric support: OK
info: module ppp not loaded (module init failed: no /usr/bin/pon found)
info: module mstpctl not loaded (module init failed: no /sbin/mstpctl found)
info: module batman_adv not loaded (module init failed: no /usr/sbin/batctl found)
info: module openvswitch_port not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: module openvswitch not loaded (module init failed: no /usr/bin/ovs-vsctl found)
info: looking for user scripts under /etc/network
info: loading scripts under /etc/network/if-pre-up.d ...
info: loading scripts under /etc/network/if-up.d ...
info: loading scripts under /etc/network/if-post-up.d ...
info: loading scripts under /etc/network/if-pre-down.d ...
info: loading scripts under /etc/network/if-down.d ...
info: loading scripts under /etc/network/if-post-down.d ...
info: 'link_master_slave' is set. slave admin state changes will be delayed till the masters admin state change.
info: using mgmt iface default prefix eth
info: processing interfaces file /etc/network/interfaces
info: processing interfaces file /etc/network/interfaces.d/sdn
info: lo: running ops ...
info: executing /sbin/sysctl net.mpls.conf.lo.input=0
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: eth1p0: running ops ...
info: vmbr0: applying bridge port configuration: ['eth1p0']
info: vrf: syncing table map to /etc/iproute2/rt_tables.d/ifupdown2_vrf_map.conf
info: vrf: dumping iproute2_vrf_map
info: {}
info: executing /sbin/sysctl net.mpls.conf.eth1p0.input=0
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: vmbr0: running ops ...
info: vmbr0: bridge already exists
info: vmbr0: applying bridge settings
info: vmbr0: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr0/bridge/stp_state'
info: vmbr0: netlink: ip link set dev vmbr0 type bridge (with attributes)
info: vmbr0: port eth1p0: already processed
info: vmbr0: applying bridge configuration specific to ports
info: vmbr0: processing bridge config for port eth1p0
info: bridge mac is already inherited from eth1p0
info: executing /sbin/sysctl net.mpls.conf.vmbr0.input=0
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr0/arp_accept
info: executing /bin/ip route replace default via 10.40.110.1 proto kernel dev vmbr0 onlink
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: eth25p1: running ops ...
info: executing /sbin/sysctl net.mpls.conf.eth25p1.input=0
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: eth25p0: running ops ...
info: executing /sbin/sysctl net.mpls.conf.eth25p0.input=0
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: bond0: running ops ...
info: bond0: already exists, no change detected
error: bond0: sub interfaces are not allowed on bond slave: eth25p0 (scsi0)
info: br0: applying bridge port configuration: ['bond0']
info: executing /sbin/sysctl net.mpls.conf.bond0.input=0
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: br0: running ops ...
info: br0: bridge already exists
info: br0: applying bridge settings
info: br0: reset bridge-hashel to default: 4
info: reading '/sys/class/net/br0/bridge/stp_state'
info: br0: netlink: ip link set dev br0 type bridge (with attributes)
info: br0: port bond0: already processed
info: br0: applying bridge configuration specific to ports
info: br0: processing bridge config for port bond0
info: bridge mac is already inherited from bond0
info: executing /sbin/sysctl net.mpls.conf.br0.input=0
info: br0: bridge inherits mtu from its ports. There is no need to assign mtu on a bridge
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: scsi1: running ops ...
info: executing ifconfig scsi1 hw ether BA:0A:C1:0E:7A:BD
info: executing /sbin/sysctl net.mpls.conf.scsi1.input=0
info: scsi1: netlink: ip link set dev scsi1 up
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: scsi0: running ops ...
info: executing /sbin/sysctl net.mpls.conf.scsi0.input=0
info: scsi0: netlink: ip link set dev scsi0 up
info: executing /etc/network/if-up.d/postfix
info: executing /etc/network/if-up.d/chrony
info: exit status 1 in 0:00:00.241194
I've also attached the output of ifup -d -a to the post in case that's helpful
This is the current interfaces config
Code:
auto lo
iface lo inet loopback
iface eth1p0 inet manual
iface eth1p1 inet manual
iface eth100p0 inet manual
iface eth100p1 inet manual
auto eth25p0
iface eth25p0 inet manual
mtu 9000
auto eth25p1
iface eth25p1 inet manual
mtu 9000
auto bond0
iface bond0 inet manual
bond-slaves eth25p0 eth25p1
bond-miimon 100
bond-mode balance-xor
bond-xmit-hash-policy layer2
mtu 9000
auto vmbr0
iface vmbr0 inet static
address 10.40.110.81/24
gateway 10.40.110.1
bridge-ports eth1p0
bridge-stp off
bridge-fd 0
auto br0
iface br0 inet manual
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-254
mtu 9000
auto scsi0
iface scsi0 inet static
address 10.40.254.61/24
mtu 9000
vlan-id 1
vlan-raw-device eth25p0
pre-up ifconfig scsi1 hw ether BA:FB:FB:FA:D2:9B
#iSCSI
auto scsi1
iface scsi1 inet static
address 10.40.254.62/24
mtu 9000
vlan-id 1
vlan-raw-device eth25p1
pre-up ifconfig scsi1 hw ether BA:0A:C1:0E:7A:BD
#iSCSI
Is this an intended change, a bug, or is there a different way I could achieve this setup?