SDN testing: after installation of libpve-network-perl and ifupdown2 interface eno with bond not up after reboot

Szymons

Member
Feb 11, 2021
68
5
13
Poland
Hello,

proxmox 6.3-6 with latest updates
Linux 5.4.106-1-pve #1 SMP PVE 5.4.106-1 (Fri, 19 Mar 2021 11:08:47 +0100) x86_64 GNU/Linux
libpve-network-perl is already the newest version (0.4-6).
ii ifupdown2 3.0.0-1+pve3 all

I found that afer installing libpve-network-perl and for sure this is more ifupdown2 issue , my interface with bond is not up after reboot.
I can reproduce this issue each time I install libpve-network-perl with ifupdown2 it fails on reboot.
I have tested it on virtualbox env and HV lab env.


HV LAB env :
/etc/network/interfaces :

iface eno3 inet manual
mtu 9000

iface eno4 inet manual
mtu 9000

auto bond0
iface bond0 inet manual
slaves eno3 eno4
bond miimon 100
bond_mode 802.3ad
bond_lacp_rate fast
bond_xmit_hash_policy 1
mtu 9000

auto bond0.2075
iface bond0.2075 inet manual
vlan-raw-device bond0

auto vmbr2075
iface vmbr2075 inet manual
bridge_ports bond0.2075
bridge_stp off
bridge_fd 0
mtu 1500

... and so on with bond names for over 190 records*
*I tested that it doesnt matter how many I typed it will occure even on single bond0


Virtualbox env:

auto lo
iface lo inet loopback

iface enp0s3 inet manual
auto vmbr1
iface vmbr1 inet static
address 192.168.11.3/24
gateway 192.168.11.2
bridge-ports enp0s3
bridge-stp off
bridge-fd 0

auto enp0s8
iface enp0s8 inet static
address 10.10.10.11/24

iface enp0s9 inet manual
mtu 1500

iface enp0s10 inet manual
mtu 1500

auto bond0
iface bond0 inet static
slaves enp0s9 enp0s10
bond-miimon 100

auto bond0.2077
iface bond0.2077 inet manual
vlan-raw-device bond0

auto vmbr2075
iface vmbr2075 inet manual
bridge_ports bond0.2075
bridge_stp off
bridge_fd 0
mtu 1500



ifreload -a

error: rawdevice bond0 not present
error: rawdevice bond0 not present
error: vmbr2075: bridge port bond0.2075 does not exist
root@local:~#


ip link :
4: enp0s9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 08:00:27:59:dc:8f brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 08:00:27:ce:30:f3 brd ff:ff:ff:ff:ff:ff


after setting from other topic :
"/etc/network/ifupdown2/ifupdown2.conf
the value of
ifreload_down_changed.
and try to setup it to 1 if it's 0.
ifreload_down_changed=1"

Still same errors and not up after reboot.


root@local:~# ifreload -av
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: module ethtool not loaded (module init failed: /sbin/ethtool: not found)
info: address: using default mtu 1500
info: address: max_mtu undefined
info: executing /usr/sbin/ip vrf id
info: mgmt vrf_context = False
info: dhclient: dhclient_retry_on_failure set to 0
info: executing /bin/ip addr help
info: address metric support: OK
info: module ethtool not loaded (module init failed: /sbin/ethtool: not found)
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: no interfaces to down ..
info: reload: scheduling up on interfaces: ['lo', 'vmbr1', 'enp0s8', 'bond0', 'bond0.2077', 'vmbr2075']
info: lo: running ops ...
info: executing /sbin/sysctl net.mpls.conf.lo.input=0
info: executing /etc/network/if-up.d/postfix
info: enp0s3: running ops ...
info: vmbr1: applying bridge port configuration: ['enp0s3']
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.enp0s3.input=0
info: executing /etc/network/if-up.d/postfix
info: vmbr1: running ops ...
info: vmbr1: bridge already exists
info: vmbr1: applying bridge settings
info: vmbr1: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr1/bridge/stp_state'
info: vmbr1: netlink: ip link set dev vmbr1 type bridge (with attributes)
info: vmbr1: port enp0s3: already processed
info: vmbr1: applying bridge configuration specific to ports
info: vmbr1: processing bridge config for port enp0s3
info: executing /sbin/bridge fdb replace 08:00:27:b9:ee:0d dev vmbr1 self
info: executing /sbin/sysctl net.mpls.conf.vmbr1.input=0
info: writing '0' to file /proc/sys/net/ipv4/conf/vmbr1/arp_accept
info: executing /bin/ip route add default via 192.168.11.2 proto kernel dev vmbr1 onlink
info: executing /etc/network/if-up.d/postfix
info: enp0s8: running ops ...
info: executing /sbin/sysctl net.mpls.conf.enp0s8.input=0
info: executing /etc/network/if-up.d/postfix
info: bond0: running ops ...
info: executing /etc/network/if-up.d/postfix
info: bond0.2077: running ops ...
error: rawdevice bond0 not present

info: executing /etc/network/if-up.d/postfix
info: bond0.2075: running ops ...
error: rawdevice bond0 not present

info: bond0.2075: not enslaved to bridge vmbr2075: ignored for now
info: executing /etc/network/if-up.d/postfix
info: vmbr2075: running ops ...
info: vmbr2075: bridge already exists
info: vmbr2075: applying bridge settings
info: vmbr2075: reset bridge-hashel to default: 4
info: reading '/sys/class/net/vmbr2075/bridge/stp_state'
info: vmbr2075: netlink: ip link set dev vmbr2075 type bridge (with attributes)
error: vmbr2075: bridge port bond0.2075 does not exist
info: executing /sbin/sysctl net.mpls.conf.vmbr2075.input=0
info: vmbr2075: 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: exit status 1
 
Hi, you need to add "auto enpX" for your interfaces in the bond too,


Code:
auto bond0
iface bond0 inet manual
slaves eno3 eno4
bond miimon 100
bond_mode 802.3ad
bond_lacp_rate fast
bond_xmit_hash_policy 1
mtu 9000

and you need to use "bond-slaves ..." not "slaves ...".
This old syntax is deprecated since 7years, and I don't think it's support by ifupdown2.

Code:
auto bond0.2077
iface bond0.2077 inet manual
vlan-raw-device bond0
you don't need to define explicitly this block.

Code:
auto bond0
iface bond0 inet static
slaves enp0s9 enp0s10
bond-miimon 100
- don't use static if you don't have ip address on this interface,
- slaves vs bond-slaves

If you are not sure, always use the proxmox gui to configure network, it'll setup the correct syntax.
 
Last edited:
This is actually pretty simple. Upon installation of ifupdown2, the package ifenslave gets deinstalled.
Don't know why but you can't have both.
Simply install ifenslave again and you should be fine.
 
Don't know if that is all it takes. Because my bonds stopped working after installing ifupdown2 even with the v2 syntax.
 
There must be a working way, just the whole linux interfaces thing is quite confusing.
Because of ifupdown/ifupdown2/netplan/systemd-networkd etc...

in rhel based distros, you have simply only one thing, ifcfg-xxx and that's it. it's well documented and you don't need to bother with 10 things xD

however, i need to check on my side today first what works on proxmox.
 
There must be a working way, just the whole linux interfaces thing is quite confusing.
Because of ifupdown/ifupdown2/netplan/systemd-networkd etc...

in rhel based distros, you have simply only one thing, ifcfg-xxx and that's it. it's well documented and you don't need to bother with 10 things xD

however, i need to check on my side today first what works on proxmox.
That's why you have a nice gui in proxmox to do the correct syntax for you.

and if you want to do it manually, just read the official documentation:
https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysadmin_network_configuration
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!