天天看點

Linux(CentOS7)雙網卡綁定及不同VLAN雙IP

作者:monesy小孩

Bond簡介

生産環境必須提供 7×24 小時的網絡傳輸服務。借助于網卡綁定技術,不僅可以提高網絡傳輸速度,更重要的是,還可以確定在其中一塊網卡出現故障時,依然可以正常提供網絡服務。假設我們對兩塊網卡實施了綁定技術,這樣在正常工作中它們會共同傳輸資料,使得網絡傳輸的速度變得更快;而且即使有一塊網卡突然出現了故障,另外一塊網卡便會立即自動頂替上去,保證資料傳輸不會中斷。

Bond核心網卡綁定驅動模式

常用:

mode0(平衡負載模式):平時兩塊網卡均工作,且自動備援,但需要在與伺服器本地網卡相連的交換機裝置上進行端口聚合來支援綁定技術。

mode1(自動備援模式):平時隻有一塊網卡工作,在它故障後自動替換為另外的網卡。

mode6(平衡負載模式):平時兩塊網卡均工作,且自動備援,無須交換機裝置提供輔助支援。

1.  mode=0  round-robin
2.  mode=1  active-backup
3.  mode=2 load balancing (xor)
4.  mode=3  fault-tolerance (broadcast)
5.  mode=4  lacp
6.  mode=5  transmit load balancing
7.  mode=6  adaptive load balancing

分别對應以下七種政策:
(1)輪詢政策(Round-robin policy),模式代号是0。該政策是按照裝置順序依次傳輸資料包,直到最後一個裝置。這種模式提供負載均衡和容錯能力。
(2)活動備份政策(Active-backup policy),模式代号是1。該政策隻有一個裝置處理資料,當它當機的時候就會由備份代替,僅提供容錯能力。
(3)異或政策(XOR policy),模式代号是2。該政策是根據MAC位址異或運算的結果來選擇傳輸裝置,提供負載均衡和容錯能力。
(4)廣播政策(Broadcast policy),模式代号是3。該政策通過全部裝置來傳輸所有資料,提供容錯能力。
(5)IEEE 802.3ad 動态連結聚合(IEEE 802.3ad Dynamic link aggregation),模式代号是4。該政策通過建立聚合組來共享相同的傳輸速度,需要交換機也支援 802.3ad 模式,提供容錯能力。該模式下,網卡帶寬最高可以翻倍(如從1Gbps翻到2Gbps)。
(6)擴充卡傳輸負載均衡(Adaptive transmit load balancing),模式代号是5。該政策是根據目前的負載把發出的資料分給每一個裝置,由目前使用的裝置處理收到的資料,如果目前正用于接收資料的網卡發生故障,則由其它網卡接管,要求所用的網卡及網卡驅動可通過ethtool指令得到speed資訊。本政策的通道聯合不需要專用的交換機支援,提供負載均衡和容錯能力。
(7)擴充卡負載均衡(Adaptive load balancing),模式代号是6。該政策在IPV4情況下包含擴充卡傳輸負載均衡政策,由ARP協商完成接收的負載,通道聯合驅動程式截獲ARP在本地系統發送出的請求,用其中一個裝置的硬體位址覆寫從屬裝置的原位址。即在政策6的基礎之上,在接收資料的同時實作負載均衡,除要求ethtool指令可得到speed資訊外,還要求支援對網卡MAC位址的動态修改功能。

注意:
Mode參數中的0、2、3、4模式要求交換機支援“ports group”功能并能進行相應的設定,例如在cisco中要将所連接配接的端口設為“port-channel”。
如果系統流量不超過單個網卡的帶寬,請不要選擇使用mode1之外的模式,因為負載均衡需要對流量進行計算,這對系統性能會有所損耗。
如果交換機及網卡都确認支援802.3ab,則實作負載均衡時盡量使用模式4以提高系統性能。
由于我們項目上的交換機型号不可控,且可能會更換,是以我們項目中裝置綁定一般都使用mode5。
           

配置bond(單IP雙網卡)

1、配置兩塊網卡配置資訊

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
DEVICE=ens33
MASTER=bond0
SLAVE=yes

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
DEVICE=ens37
MASTER=bond0
SLAVE=yes
           

2、配置bond網卡資訊

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0 
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
DEVICE=bond0
IPV6INIT=no   # 關閉IPv6
PEERDNS=yes   # 運作網卡在啟動時向DHCP伺服器查詢DNS資訊,并自動覆寫/etc/resolv.conf配置檔案
IPADDR=192.168.1.210
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=114.114.114.114
DNS2=223.5.5.5           

3、配置核心網卡驅動模式

[root@CentOS ~]# vim /etc/modprobe.d/bond.conf 
alias bond0 bonding
options bonding mode=6 miimon=200
# miimon參數:指定網卡故障時切換時間間隔時間,以ms為機關
# mode參數:bonding模式           

4、重新開機網絡

[root@CentOS ~]# systemctl restart network
           

配置bond(雙IP雙網卡,不同VLAN)

1、配置兩塊網卡配置資訊

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=no
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=no
DEFROUTE=yes
NAME=ens37
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes
           

2、配置bond網卡資訊

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
BOOTPROTO=none
IPV6INIT=no
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BONDING_OPTS="mode=4 miimon=100"    # 綁定模式選擇           

3、配置bond子網卡資訊

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0.30
DEVICE=bond0.30
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=10.0.0.102
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
VLAN=yes
DNS1=223.5.5.5
DNS2=114.114.114.114

[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0.51
DEVICE=bond0.51
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
IPADDR=157.0.0.202
NETMASK=255.255.255.0
GATEWAY=157.0.0.1
VLAN=yes
DNS1=223.5.5.5
DNS2=114.114.114.114           

4、重新開機網絡

[root@CentOS ~]# systemctl restart network           

繼續閱讀