Good news! I fixed my setup and found a solution without patching ifenslave scripts.
This was a local configuration issue, automation applied an old configuration ( from stable release). According to ifenslave git history, team refactored code since 2.9, removed ifenslave binary and switched to iproute2 for low level work. In my case, fix is - remove all configuration entries for slave devices and mention them only in the "slaves" config option. Without it, network-scripts try to configure interfaces with ifup and never hit the point to add interfaces to the bond device. For more info I added debug output. нд, 22 лист. 2020 о 11:02 Vova Samodid <samo...@gmail.com> пише: > Unfortunately, patch does not work for me. > I have to install ifenslave 2.9 from stable release. > > -- > > Rgds., > > Vova Samodid > -- Rgds., Vova Samodid
# dpkg -l | grep ifens ii ifenslave 2.11 all configure network interfaces for parallel routing (bonding) # ifup -v bond0 ifup: parsing file /etc/network/interfaces.d/bond0 ifup: parsing file /etc/network/interfaces.d/eno3 ifup: parsing file /etc/network/interfaces.d/eno4 ifup: configuring interface bond0=bond0 (inet) /bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/bridge run-parts: executing /etc/network/if-pre-up.d/ethtool run-parts: executing /etc/network/if-pre-up.d/ifenslave + [ inet = meta ] + IF_BOND_SLAVES=eno3 eno4 + [ -n ] + [ -n eno3 eno4 ] + BOND_MASTER=bond0 + BOND_SLAVES=eno3 eno4 + setup_master_device bond0 + add_master + [ -f /sys/class/net/bond0/bonding/slaves ] + ip link add dev bond0 type bond + early_setup_master + sysfs fail_over_mac + [ -n ] + return 0 + setup_master + sysfs use_carrier + [ -n ] + return 0 + sysfs num_grat_arp + [ -n ] + return 0 + sysfs num_unsol_na + [ -n ] + return 0 + sysfs_add arp_ip_target + sysfs arp_interval + [ -n ] + return 0 + sysfs miimon 100 + [ -n 100 ] + echo 100 + return 0 + sysfs downdelay 200 + [ -n 200 ] + echo 200 + return 0 + sysfs updelay 200 + [ -n 200 ] + echo 200 + return 0 + sysfs_change_down ad_select + [ -n ] + sysfs_change_down mode 802.3ad + [ -n 802.3ad ] + grep -sq \<802.3ad\> /sys/class/net/bond0/bonding/mode + ip link show bond0 + grep -sq [<,]UP[,>] + sysfs mode 802.3ad + [ -n 802.3ad ] + echo 802.3ad + return 0 + sysfs_change_down xmit_hash_policy layer3+4 + [ -n layer3+4 ] + grep -sq \<layer3+4\> /sys/class/net/bond0/bonding/xmit_hash_policy + ip link show bond0 + grep -sq [<,]UP[,>] + sysfs xmit_hash_policy layer3+4 + [ -n layer3+4 ] + echo layer3+4 + return 0 + sysfs_change_down tlb_dynamic_lb + [ -n ] + sysfs packets_per_slave + [ -n ] + return 0 + sysfs arp_validate + [ -n ] + return 0 + sysfs_change_down lacp_rate + [ -n ] + [ -n ] + enslave_slaves + [ 1 = 1 ] + v=-v + export IFENSLAVE_ENV_NAME=IFUPDOWN_eno3 + printenv IFUPDOWN_eno3 + IFUPDOWN_IFACE= + unset IFENSLAVE_ENV_NAME + ifquery --state eno3 + [ -n ] + ifquery -l eno3 eno3 + ifup -v eno3 ifup: parsing file /etc/network/interfaces.d/bond0 ifup: parsing file /etc/network/interfaces.d/eno3 ifup: parsing file /etc/network/interfaces.d/eno4 ifup: configuring interface eno3=eno3 (inet) /bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/bridge run-parts: executing /etc/network/if-pre-up.d/ethtool run-parts: executing /etc/network/if-pre-up.d/ifenslave + [ inet = meta ] + IF_BOND_SLAVES= + [ -n ] + [ -n ] + [ -n ] + exit 0 run-parts: executing /etc/network/if-pre-up.d/vlan /sbin/ip link set dev eno3 up 2>/dev/null || true /bin/run-parts --exit-on-error --verbose /etc/network/if-up.d run-parts: executing /etc/network/if-up.d/ethtool run-parts: executing /etc/network/if-up.d/ifenslave + [ inet = meta ] + [ ] run-parts: executing /etc/network/if-up.d/ip + export IFENSLAVE_ENV_NAME=IFUPDOWN_eno4 + printenv IFUPDOWN_eno4 + IFUPDOWN_IFACE= + unset IFENSLAVE_ENV_NAME + ifquery --state eno4 + [ -n ] + ifquery -l eno4 eno4 + ifup -v eno4 ifup: parsing file /etc/network/interfaces.d/bond0 ifup: parsing file /etc/network/interfaces.d/eno3 ifup: parsing file /etc/network/interfaces.d/eno4 ifup: configuring interface eno4=eno4 (inet) /bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/bridge run-parts: executing /etc/network/if-pre-up.d/ethtool run-parts: executing /etc/network/if-pre-up.d/ifenslave + [ inet = meta ] + IF_BOND_SLAVES= + [ -n ] + [ -n ] + [ -n ] + exit 0 run-parts: executing /etc/network/if-pre-up.d/vlan /sbin/ip link set dev eno4 up 2>/dev/null || true /bin/run-parts --exit-on-error --verbose /etc/network/if-up.d run-parts: executing /etc/network/if-up.d/ethtool run-parts: executing /etc/network/if-up.d/ifenslave + [ inet = meta ] + [ ] run-parts: executing /etc/network/if-up.d/ip + setup_primary + sysfs primary_reselect + [ -n ] + return 0 + exit 0 run-parts: executing /etc/network/if-pre-up.d/vlan /sbin/ip link set dev bond0 up 2>/dev/null || true /bin/run-parts --exit-on-error --verbose /etc/network/if-up.d run-parts: executing /etc/network/if-up.d/ethtool run-parts: executing /etc/network/if-up.d/ifenslave + [ inet = meta ] + [ ] run-parts: executing /etc/network/if-up.d/ip # ip li sh 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 4: eno3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 3c:ec:ef:46:44:1e brd ff:ff:ff:ff:ff:ff altname enp3s0f0 5: eno4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 3c:ec:ef:46:44:1f brd ff:ff:ff:ff:ff:ff altname enp3s0f1 17: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 link/ether 9a:e9:32:52:9e:ab brd ff:ff:ff:ff:ff:ff # ifdown eno3 # ifdown eno4 # ifdown bond0 # rm /etc/network/interfaces.d/eno3 # rm /etc/network/interfaces.d/eno4 # ifup -v bond0 ifup: parsing file /etc/network/interfaces.d/bond0 ifup: configuring interface bond0=bond0 (inet) /bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/bridge run-parts: executing /etc/network/if-pre-up.d/ethtool run-parts: executing /etc/network/if-pre-up.d/ifenslave + [ inet = meta ] + IF_BOND_SLAVES=eno3 eno4 + [ -n ] + [ -n eno3 eno4 ] + BOND_MASTER=bond0 + BOND_SLAVES=eno3 eno4 + setup_master_device bond0 + add_master + [ -f /sys/class/net/bond0/bonding/slaves ] + return + early_setup_master + sysfs fail_over_mac + [ -n ] + return 0 + setup_master + sysfs use_carrier + [ -n ] + return 0 + sysfs num_grat_arp + [ -n ] + return 0 + sysfs num_unsol_na + [ -n ] + return 0 + sysfs_add arp_ip_target + sysfs arp_interval + [ -n ] + return 0 + sysfs miimon 100 + [ -n 100 ] + echo 100 + return 0 + sysfs downdelay 200 + [ -n 200 ] + echo 200 + return 0 + sysfs updelay 200 + [ -n 200 ] + echo 200 + return 0 + sysfs_change_down ad_select + [ -n ] + sysfs_change_down mode 802.3ad + [ -n 802.3ad ] + grep -sq \<802.3ad\> /sys/class/net/bond0/bonding/mode + sysfs mode 802.3ad + [ -n 802.3ad ] + echo 802.3ad + return 0 + sysfs_change_down xmit_hash_policy layer3+4 + [ -n layer3+4 ] + grep -sq \<layer3+4\> /sys/class/net/bond0/bonding/xmit_hash_policy + sysfs xmit_hash_policy layer3+4 + [ -n layer3+4 ] + echo layer3+4 + return 0 + sysfs_change_down tlb_dynamic_lb + [ -n ] + sysfs packets_per_slave + [ -n ] + return 0 + sysfs arp_validate + [ -n ] + return 0 + sysfs_change_down lacp_rate + [ -n ] + [ -n ] + enslave_slaves + [ 1 = 1 ] + v=-v + export IFENSLAVE_ENV_NAME=IFUPDOWN_eno3 + printenv IFUPDOWN_eno3 + IFUPDOWN_IFACE= + unset IFENSLAVE_ENV_NAME + ifquery --state eno3 + [ -n ] + ifquery -l eno3 + ip link set eno3 down + sysfs_add slaves eno3 + export IFENSLAVE_ENV_NAME=IFUPDOWN_eno4 + printenv IFUPDOWN_eno4 + IFUPDOWN_IFACE= + unset IFENSLAVE_ENV_NAME + ifquery --state eno4 + [ -n ] + ifquery -l eno4 + ip link set eno4 down + sysfs_add slaves eno4 + setup_primary + sysfs primary_reselect + [ -n ] + return 0 + exit 0 run-parts: executing /etc/network/if-pre-up.d/vlan /sbin/ip link set dev bond0 up 2>/dev/null || true /bin/run-parts --exit-on-error --verbose /etc/network/if-up.d run-parts: executing /etc/network/if-up.d/ethtool run-parts: executing /etc/network/if-up.d/ifenslave + [ inet = meta ] + [ ] run-parts: executing /etc/network/if-up.d/ip # ip li sh 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 4: eno3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000 link/ether 9a:e9:32:52:9e:ab brd ff:ff:ff:ff:ff:ff permaddr 3c:ec:ef:46:44:1e altname enp3s0f0 5: eno4: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000 link/ether 9a:e9:32:52:9e:ab brd ff:ff:ff:ff:ff:ff permaddr 3c:ec:ef:46:44:1f altname enp3s0f1 17: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 9a:e9:32:52:9e:ab brd ff:ff:ff:ff:ff:ff