什么是bond
網卡bond是通過多張網卡綁定為一個邏輯網卡,實現本地網卡的冗余,帶寬擴容和負載均衡,在生產場景中是一種常用的技術。
適用場景
服務器兩張網卡需要做bond,并且bond后網卡需配置不同網段的地址,用于走不同流量,這個時候就可以采用起子接口的方式。
實驗場景
設備
- 服務器:Server_A
- 核心交換機:Switch_A、Switch_B
交換機連接方式:堆疊
服務器網卡:enp176s0f0、enp176s0f1做bond
IP段劃分
- 業務段
VLAN 201:10.10.51.0/24
- 公網
VLAN 401:111.20.200.88/27
要求
服務器Server_A上聯的兩臺核心交換機Switch_A和Switch_B采用堆疊方式,Server_A的enp176s0f0和enp176s0f1光口分別互聯Switch_A和Switch_B;現要求enp176s0f0和enp176s0f1做bond,地址10.10.51.16走業務流量,地址111.20.200.90走公網流量,交換機端口做捆綁eth-trunk并透傳VLAN201和VLAN401。
網卡配置腳本
# 停掉NetworkManager服務
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
# 備份
cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f0{,.bak}
cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f1{,.bak}
# 將網卡協議改為none并設備未開機自啟動,并做雙網卡配置
sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f0
sed -i 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f0
echo "MASTER=bond0" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f0
echo "SLAVE=yes" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f0
sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f1
sed -i 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f1
echo "MASTER=bond0" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f1
echo "SLAVE=yes" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f1
# 配置網卡bond0
echo "DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static" >/etc/sysconfig/network-scripts/ifcfg-bond0
# 寫模塊文件,bond模式為mode 0
echo "alias bond0 bonding
options bond0 miimon=100 mode=0" >/etc/modprobe.d/bond.conf
# 加載模塊
modprobe bonding
# 起子接口bond0.201
echo "DEVICE=bond0.201
TYPE=Vlan
PHYSDEV=bond0
ONBOOT=yes
BOOTPROTO=static
REORDER_HDR=yes
IPADDR=10.10.51.16
GATEWAY=10.10.51.1
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
VLAN=yes
VLAN_ID=201" >/etc/sysconfig/network-scripts/ifcfg-bond0.201
# 起子接口bond0.401
echo "DEVICE=bond0.401
TYPE=Vlan
PHYSDEV=bond0
ONBOOT=yes
BOOTPROTO=static
REORDER_HDR=yes
IPADDR=111.20.200.90
GATEWAY=111.20.200.89
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
VLAN=yes
VLAN_ID=401" >/etc/sysconfig/network-scripts/ifcfg-bond0.401
# 加載模塊并重啟主機
modprobe 8021q
reboot
關鍵點
交換機側如果起eth-trunk,那么服務器側則必須起子接口
交換機側和服務器側要么都起lacp協商,要么都不起,否則將造成端口不同
交換機側eth-trunk口配置示例
[HH2B108-H01-2-HW9006X-SW001-Eth-Trunk12]display this
#
interface Eth-Trunk12
port link-type trunk
port trunk allow-pass vlan 201 401
#
return
服務器側起lacp協議使用bond模式4,示例如下
# more /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=4 lacp_rate=1
子接口配置文件中"DEVICE=bond0.401“中的VLAN號一定要和需要透傳的VLAN號保持一致
配置子接口后一定要重啟服務器才能生效!!!
總結:
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。