網卡配置bond(綁定)
(1)網卡bond(綁定),也稱作網卡捆綁。就是將兩個或者更多的物理網卡綁定成一個虛擬網卡。網卡是通過把多張網卡綁定為一個邏輯網卡,實現本地網卡的冗余,帶寬擴容和負載均衡,在應用部署中是一種常用的技術。
多網卡綁定實際上需要提供一個額外的軟件的bond驅動程序實現。通過驅動程序可以將多塊網卡屏蔽。對TCP/IP協議層只存在一個Bond網卡,在Bond程序中實現網絡流量的負載均衡,即將一個網絡請求重定位到不同的網卡上,來提高總體網絡的可用性。
(2)網卡綁定的目的:
1.提高網卡的吞吐量。
2.增強網絡的高可用,同時也能實現負載均衡。
(3)網卡配置bond(綁定)bond模式:
1、Mode=0(balance-rr) 表示負載分擔round-robin,平衡輪詢策略,具有負載平衡和容錯功能
bond的網卡MAC為當前活動的網卡的MAC地址,需要交換機設置聚合模式,將多個網卡綁定為一條鏈路。
2、Mode=1(active-backup) 表示主備模式,具有容錯功能,只有一塊網卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機往兩塊網卡發包,有一半包是丟棄的。
3、Mode=2(balance-xor) 表示XOR Hash負載分擔(異或平衡策略),具有負載平衡和容錯功能
每個slave接口傳輸每個數據包和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)。
4、Mode=3(broadcast) 表示所有包從所有interface發出,廣播策略,具有容錯能力,這個不均衡,只有冗余機制...和交換機的聚合強制不協商方式配合。
5、Mode=4(802.3ad) 表示支持802.3ad協議(IEEE802.3ad 動態鏈接聚合) 和交換機的聚合LACP方式配合(需要xmit_hash_policy)。
6、Mode=5(balance-tlb) 適配器傳輸負載均衡,並行發送,無法並行接收,解決了數據發送的瓶頸。 是根據每個slave的負載情況選擇slave進行發送,接收時使用當前輪到的slave。
7、Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。適配器負載均衡模式並行發送,並行接收數據包。
5和6不需要交換機端的設置,網卡能自動聚合。4需要支持802.3ad。0,2和3理論上需要靜態聚合方式,但實測中0可以通過mac地址欺騙的方式在交換機不設置的情況下不太均衡地進行接收。
常用的有三種:
mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。
環境前部署
[root@zxw6 ~]# modprobe 8021q
[root@zxw6 ~]# lsmod | grep 8021q
8021q 33104 0
garp 14384 1 8021q
mrp 18542 1 8021q
添加4個網卡
第一步:配置ens37,38,39,41
[root@zxw6 network-scripts]# vim ifcfg-ens41
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens41
ONBOOT=yes
MASTER=bond0
SLAVE=yes
第二步:綁定所以網卡
[root@zxw6 network-scripts]# modprobe bonding
第三步:創建bond網卡
[root@zxw6 network-scripts]# vim ifcfg-bond0
DEVICE=bond0 驅動
TYPE=Bond 類型
NAME=bond0 名字
BONDING_MASTER=yes 綁定網卡主
BOOTPROTO=static 獲取ip
USERCTL=no 開啟用戶命令管理
ONBOOT=yes 開機自啟
BONDING_OPTS="mode=6 miimon=100" 綁定參數,100檢測
BRIDGE=br1 橋接網卡
第四步:創建br1網橋
[root@zxw6 network-scripts]# brctl addbr br1
第四步:創建配置文件br1
[root@zxw6 network-scripts]# vim ifcfg-br1
NAME=br1
DEVICE=br1
ONBOOT=yes
BOOTPROTO=static
TYPE=Bridge
IPADDR=192.168.10.1
IPADDR1=192.168.20.1
IPADDR2=192.168.30.1
IPADDR3=192.168.40.1
IPADDR4=192.168.50.1
PREFIX3=24
PREFIX4=24
第五步:創建虛擬網卡br1.10 br1.20
[root@zxw6 ~]# yum localinstall vconfig-1.9-16.el7.x86_64.rpm -y
[root@zxw6 network-scripts]# vconfig add br1 10
Added VLAN with VID == 10 to IF -:br1:-
[root@zxw6 network-scripts]# vconfig add br1 20
Added VLAN with VID == 20 to IF -:br1:-
第六步:創建配置文件br1.10 br1.20
[root@zxw6 network-scripts]# vim ifcfg-br1.10
VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=10
NAME=br1.10
ONBOOT=yes
DEVICE=br1.10
BRIDGE=brvlan-10
ZONE=trusted
0[root@zxw6 network-scripts]# cat ifcfg-br1.20
VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=20
NAME=br1.20
ONBOOT=yes
DEVICE=br1.20
BRIDGE=brvlan-20
ZONE=trusted
第七步:創建brvlan-10,brvlan-20網橋
[root@zxw6 network-scripts]# brctl addbr brvlan-10
[root@zxw6 network-scripts]# brctl addbr brvlan-20
[root@zxw6 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c295c6c9e no ens33
br1 8000.000c295c6ca8 no bond0
brvlan-10 8000.000000000000 no
brvlan-20 8000.000000000000 no
第八步:配置文件brvlan10,brvlan20
[root@zxw6 network-scripts]# vim ifcfg-brvlan-10
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes
[root@zxw6 network-scripts]# vim ifcfg-brvlan-20
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-20
DEVICE=brvlan-20
ONBOOT=yes
第九步:鏈接網卡br1.10 br1.20和網橋brvlan-10,brvlan-20
[root@zxw6 network-scripts]# brctl addif brvlan-10 br1.10
[root@zxw6 network-scripts]# brctl addif brvlan-20 br1.20
第十步:重啟服務
[root@zxw6 network-scripts]# systemctl restart network
打開虛擬機檢測
手動配置網卡