1. 程式人生 > >網絡卡bond

網絡卡bond

參考如下連結:https://blog.csdn.net/ogog123/article/details/77991067

所謂bond,就是把多個物理網絡卡繫結成一個邏輯上的網絡卡,使用同一個IP工作,在增加頻寬的同時也可以提高冗餘性,一般使用較多的就是來提高冗餘,分別和不同交換機相連,提高可靠性,但有時伺服器頻寬不夠了也可以用作增加頻寬。

1.網絡卡bond的模式

網絡卡繫結mode共有七種(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6。 常用的有三種:

mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。

mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。

mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。

bond模式:

  1. Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合。
  2. Mode=1(active-backup) 表示主備模式,只有一塊網絡卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機往兩塊網絡卡發包,有一半包是丟棄的。
  3. Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
  4. Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗餘機制...和交換機的聚合強制不協商方式配合。
  5. Mode=4(802.3ad) 表示支援802.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地址欺騙的方式在交換機不設定的情況下不太均衡地進行接收。

如何配置:

[[email protected] network-scripts]# ls ifcfg-*
ifcfg-eth0  ifcfg-lo
[

[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-bond0
[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth2
[[email protected] network-scripts]# vim ifcfg-bond0 
[[email protected] network-scripts]# cat ifcfg-bond0 
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System bond0"
IPADDR=192.168.122.40
NETMASK=255.255.255.0
BONDING_OPTS="mode=0" #負載均衡模式,當BONDING_OPTS="mode=1 primary=eth1"主從模式,eth1為主
[[email protected] network-scripts]# vim ifcfg-eth1
[[email protected] network-scripts]# vim ifcfg-eth2
[[email protected] network-scripts]# cat ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"


MASTER=bond0
SLAVE=yes
[[email protected] network-scripts]# cat ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth2"
MASTER=bond0
SLAVE=yes


[[email protected] network-scripts]# service network-functions restart
[[email protected] network-scripts]# yum -y install iptraf
[[email protected] network-scripts]# iptraf


[[email protected] ~]# ping 192.168.122.40