Hi,
We have a Dell server with 4 Ethernet interface. I would to aggregate them in a bond. Everything work but the default gateway doesn’t work on the « bond0 » interface and I have no links.
My configuration:
- CentOS 7:
:/etc/sysconfig/network-scripts# uname -a
Linux nas-mtd2 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
- NetworkManager disabled:
:/etc/sysconfig/network-scripts# systemctl list-unit-files | grep NetworkManager
NetworkManager-dispatcher.service disabled
NetworkManager-wait-online.service disabled
NetworkManager.service disabled
- ifcfg-em1 to em4 (they are identical):
:/etc/sysconfig/network-scripts# cat ifcfg-em2
NAME=bond0-slave[1 to 4]
DEVICE=em[1 to 4]
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=no
- the bond0 declaration:
:/etc/sysconfig/network-scripts# cat ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
# IP
IPADDR=172.16.1.128
PREFIX=16
GATEWAY=172.16.0.254
# Bonding
BONDING_OPTS="mode=802.3ad ad_select=stable use_carrier=1 miimon=100 arp_ip_target=172.16.1.128 updelay=100 lacp_rate=fast"
USERCTL=no
After a « systemctl restart network »:
:/etc/sysconfig/network-scripts# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:0e brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
4: em3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
5: em4: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.128/16 brd 172.16.255.255 scope global bond0
valid_lft forever preferred_lft forever
And the route command:
:/etc/sysconfig/network-scripts# ip r
default via 172.16.0.254 dev bond0
169.254.0.0/16 dev bond0 scope link metric 1006
169.254.0.0/16 dev bond0.10 scope link metric 1008
172.16.0.0/16 dev bond0 proto kernel scope link src 172.16.1.128
but their is no network connection on « bond0 »!
The only way I found to have a network active connection is keeping my first interface outside the bond and having the default route on this one!
In this case I have a specific IP to it and a bond one on bound.
As I must have also a VLAN connection on the bound, I have create a « ifcfg-bond0.10 » file:
:/etc/sysconfig/network-scripts# cat ifcfg-bond0.10
NAME=bond0.10
DEVICE=bond0.10
#TYPE="Ethernet"
VLAN=yes
NM_CONTROLLED=no
ONPARENT=yes
DEFROUTE="no"
# IP
IPADDR=XXX.XXX.XXX.142
NETMASK=255.255.255.0
NETWORK=XXX.XXX.XXX.0
BROADCAST=XXX.XXX.XXX.255
PREFIX=24
GATEWAY=1XXX.XXX.XXX.126
With that and the first Ethernet interface on a specific address I have:
:/etc/sysconfig/network-scripts# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether d0:94:66:65:32:0e brd ff:ff:ff:ff:ff:ff
inet 172.16.1.86/16 brd 172.16.255.255 scope global em1
valid_lft forever preferred_lft forever
3: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
4: em3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
5: em4: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.128/16 brd 172.16.255.255 scope global bond0
valid_lft forever preferred_lft forever
8: bond0.10@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d0:94:66:65:32:10 brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.XXX.142/24 brd XXX.XXX.XXX.255 scope global bond0.10
valid_lft forever preferred_lft forever
:/etc/sysconfig/network-scripts# ip r
default via 172.16.0.254 dev em1
169.254.0.0/16 dev em1 scope link metric 1002
169.254.0.0/16 dev bond0 scope link metric 1006
169.254.0.0/16 dev bond0.10 scope link metric 1008
172.16.0.0/16 dev em1 proto kernel scope link src 172.16.1.86
172.16.0.0/16 dev bond0 proto kernel scope link src 172.16.1.128
XXX.XXX.XXX.0/24 dev bond0.10 proto kernel scope link src XXX.XXX.XXX.142
And everything is working.
But… I am not satisfy. Is it normal?
Is it a way to have all the Ethernet link on a bond?
Your help is needed :-)
Best wishes
--
Pierre Malard
« Si l'on veut croire en l'humanité,
il faut voir et comprendre l'inhumanité »
|\ _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. ,\ ( `'-'
'---''(_/--' `-'\_) πr
perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. ,\ ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'\_): 24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--