什么是bond
網(wǎng)卡bond是通過多張網(wǎng)卡綁定為一個(gè)邏輯網(wǎng)卡,實(shí)現(xiàn)本地網(wǎng)卡的冗余,帶寬擴(kuò)容和負(fù)載均衡,在生產(chǎn)場(chǎng)景中是一種常用的技術(shù)。
適用場(chǎng)景
服務(wù)器兩張網(wǎng)卡需要做bond,并且bond后網(wǎng)卡需配置不同網(wǎng)段的地址,用于走不同流量,這個(gè)時(shí)候就可以采用起子接口的方式。
實(shí)驗(yàn)場(chǎng)景
設(shè)備
- 服務(wù)器:Server_A
- 核心交換機(jī):Switch_A、Switch_B
交換機(jī)連接方式:堆疊
服務(wù)器網(wǎng)卡:enp176s0f0、enp176s0f1做bond
IP段劃分
- 業(yè)務(wù)段
VLAN 201:10.10.51.0/24
- 公網(wǎng)
VLAN 401:111.20.200.88/27
要求
服務(wù)器Server_A上聯(lián)的兩臺(tái)核心交換機(jī)Switch_A和Switch_B采用堆疊方式,Server_A的enp176s0f0和enp176s0f1光口分別互聯(lián)Switch_A和Switch_B;現(xiàn)要求enp176s0f0和enp176s0f1做bond,地址10.10.51.16走業(yè)務(wù)流量,地址111.20.200.90走公網(wǎng)流量,交換機(jī)端口做捆綁eth-trunk并透?jìng)鱒LAN201和VLAN401。
網(wǎng)卡配置腳本
# 停掉NetworkManager服務(wù)
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
# 備份
cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f0{,.bak}
cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f1{,.bak}
# 將網(wǎng)卡協(xié)議改為none并設(shè)備未開機(jī)自啟動(dòng),并做雙網(wǎng)卡配置
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
# 配置網(wǎng)卡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
# 加載模塊并重啟主機(jī)
modprobe 8021q
reboot
關(guān)鍵點(diǎn)
交換機(jī)側(cè)如果起eth-trunk,那么服務(wù)器側(cè)則必須起子接口
交換機(jī)側(cè)和服務(wù)器側(cè)要么都起lacp協(xié)商,要么都不起,否則將造成端口不同
交換機(jī)側(cè)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
服務(wù)器側(cè)起lacp協(xié)議使用bond模式4,示例如下
# more /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=4 lacp_rate=1
子接口配置文件中"DEVICE=bond0.401“中的VLAN號(hào)一定要和需要透?jìng)鞯腣LAN號(hào)保持一致
配置子接口后一定要重啟服務(wù)器才能生效!?。?/p>
總結(jié):
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。