[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#968368: ifenslave: Option bond-master fails to add interface to bond



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 <samodid@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


Reply to: