且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

CentOS 7.2 bond实现网卡聚合链路(双网卡绑定)脚本及验证(适合云平台)

更新时间:2021-08-30 14:55:24

使用bond实现网卡聚合链路脚本:


[plain] view plain copy print?

  1. #!/bin/bash  

  2. #创建一个名为bond0的链路接口  

  3. IP=192.168.101.1  

  4. GATE=192.168.101.254  

  5. ETH1=eno1  

  6. ETH2=eno2  

  7. ETH3=eno3  

  8. ETH4=eno4  

  9. modprobe bonding  

  10. cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-bond0  

  11. DEVICE=bond0  

  12. TYPE=Bond  

  13. NAME=bond0  

  14. BONDING_MASTER=yes  

  15. BOOTPROTO=static  

  16. USERCTL=no  

  17. ONBOOT=yes  

  18. IPADDR=$IP  

  19. PREFIX=24  

  20. GATEWAY=$GATE  

  21. BONDING_OPTS="mode=1 miimon=100"  

  22. EOF  

  23. cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-bond1  

  24. DEVICE=bond1  

  25. TYPE=Bond  

  26. NAME=bond1  

  27. BONDING_MASTER=yes  

  28. USERCTL=no  

  29. BOOTPROTO=none  

  30. ONBOOT=yes  

  31. BONDING_OPTS="mode=1 miimon=100"  

  32. EOF  

  33. cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH1  

  34. TYPE=Ethernet  

  35. BOOTPROTO=none  

  36. DEVICE=$ETH1  

  37. ONBOOT=yes  

  38. MASTER=bond0  

  39. SLAVE=yes  

  40. EOF  

  41. cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH2  

  42. TYPE=Ethernet  

  43. BOOTPROTO=none  

  44. DEVICE=$ETH2  

  45. ONBOOT=yes  

  46. MASTER=bond0  

  47. SLAVE=yes  

  48. EOF  

  49. cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH3  

  50. TYPE=Ethernet  

  51. BOOTPROTO=none  

  52. DEVICE=$ETH3  

  53. ONBOOT=yes  

  54. MASTER=bond1  

  55. SLAVE=yes  

  56. EOF  

  57. cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH4  

  58. TYPE=Ethernet  

  59. BOOTPROTO=none  

  60. DEVICE=$ETH4  

  61. ONBOOT=yes  

  62. MASTER=bond1  

  63. SLAVE=yes  

  64. EOF  

  65. systemctl restart network  

  66. ping $GATE -c 1  

  67. reboot  

#!/bin/bash
#创建一个名为bond0的链路接口
IP=192.168.101.1
GATE=192.168.101.254
ETH1=eno1
ETH2=eno2
ETH3=eno3
ETH4=eno4
modprobe bonding
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
IPADDR=$IP
PREFIX=24
GATEWAY=$GATE
BONDING_OPTS="mode=1 miimon=100"
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
TYPE=Bond
NAME=bond1
BONDING_MASTER=yes
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=$ETH1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH2
TYPE=Ethernet
BOOTPROTO=none
DEVICE=$ETH2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH3
TYPE=Ethernet
BOOTPROTO=none
DEVICE=$ETH3
ONBOOT=yes
MASTER=bond1
SLAVE=yes
EOF
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-$ETH4
TYPE=Ethernet
BOOTPROTO=none
DEVICE=$ETH4
ONBOOT=yes
MASTER=bond1
SLAVE=yes
EOF
systemctl restart network
ping $GATE -c 1
reboot



验证:

1.查看bond0状态:

[plain] view plain copy print?

  1. [root@localhost ~]# cat /proc/net/bonding/bond0  

  2. Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)  

  3.   

  4. Bonding Mode: fault-tolerance (active-backup)  

  5. Primary Slave: None  

  6. Currently Active Slave: eno2    #当前主接口  

  7. MII Status: up  

  8. MII Polling Interval (ms): 100  

  9. Up Delay (ms): 0  

  10. Down Delay (ms): 0  

  11.   

  12. Slave Interface: eno2  

  13. MII Status: up  

  14. Speed: 1000 Mbps  

  15. Duplex: full  

  16. Link Failure Count: 0  

  17. Permanent HW addr: 2c:76:8a:51:d2:09  

  18. Slave queue ID: 0  

  19.   

  20. Slave Interface: eno1  

  21. MII Status: up  

  22. Speed: 1000 Mbps  

  23. Duplex: full  

  24. Link Failure Count: 0  

  25. Permanent HW addr: 2c:76:8a:51:d2:08  

  26. Slave queue ID: 0  

[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno2    #当前主接口
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eno2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 2c:76:8a:51:d2:09
Slave queue ID: 0

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 2c:76:8a:51:d2:08
Slave queue ID: 0


2.测试,宕掉当前主接口,看是否切换


[plain] view plain copy print?

  1. [root@localhost ~]# ifdown eno2  

  2. Device 'eno2' successfully disconnected.  

  3. [root@localhost ~]# cat /proc/net/bonding/bond0  

  4. Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)  

  5.   

  6. Bonding Mode: fault-tolerance (active-backup)  

  7. Primary Slave: None  

  8. Currently Active Slave: eno1    #切换成功  

  9. MII Status: up  

  10. MII Polling Interval (ms): 100  

  11. Up Delay (ms): 0  

  12. Down Delay (ms): 0  

  13.   

  14. Slave Interface: eno1  

  15. MII Status: up  

  16. Speed: 1000 Mbps  

  17. Duplex: full  

  18. Link Failure Count: 0  

  19. Permanent HW addr: 2c:76:8a:51:d2:08  

  20. Slave queue ID: 0  

[root@localhost ~]# ifdown eno2
Device 'eno2' successfully disconnected.
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno1    #切换成功
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 2c:76:8a:51:d2:08
Slave queue ID: 0



本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1937418,如需转载请自行联系原作者