rhel7.3下的網卡Teaming

對服務器來說,將多個網卡綁定(鏈路聚合)是一個很常見的需求,Linux在比較早期的版本kernel裏就支持bonding這個功能,通過bonding可以將多個以太網口的網絡連接聚合起來,一方面可以提供更大的網絡帶寬,另一方面還可以提供更好的可靠性和端口冗餘保障。

Bonding的配置有7種模式(從bond0到bond6),分別提供不同的收發包方式和端口冗餘機制,對上聯交換機配置和網卡也有不同的要求,需要根據不同的應用場景來選擇使用。


常用的有三種:

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

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

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


Bonding接口的故障切換機制有兩種,一種稱爲MII monitor,也就是隻監控端口的狀態,另一種是ARP monitor,也就是通過發送arp的方式來測試網絡連接狀態。MII monitor方式比較簡單,但是存在狀態檢測不準確的問題,比如對於光口網卡來說,如果收發的兩條光纖出現其中一條中斷的情況,對於收光正常,發光斷掉的網卡來說,就不能檢測到鏈路狀態的變化了。ARP monitor的方式則採用發送arp query看有沒有收到arp reply的方式來測試IP連通性,還可以配置多個Target來進行測試,相比MII monitor來說檢測結果更準確。


  在rhel6/centos6中使用的是bonding技術雙網卡綁定技術,而在rhel7.3中使用了teaming技術,其實在rhel7.3中雙網卡綁定既能使用teaming也可以使用bonding,這裏推薦使用teaming技術,方便與查看和監控。

Teaming功能主要由kernel裏的team driver、用來作爲通訊接口的libteam lib和userspace的teamd 三部分組成,teaming也支持不同的工作模式,相比bonding 來說少了balance-xor和balance-alb這兩種模式的支持,其中的balance-xor完全可以通過lacp代替,另外一種balance-alb功能據說以後teaming也會支持。

  • broadcast (data is transmitted over all ports)

  • roundrobin (data is transmitted over all ports in turn)

  • activebackup (one port or link is used while others are kept as a backup)

  • loadbalance (with active Tx load balancing and BPF-based Tx port selectors)

  • lacp (implements the 802.3ad Link Aggregation Control Protocol)

實質上teaming的目的就是要把網卡綁定的功能從kernel裏搬出來,把這些功能放到userspace來解決,保持kernel的簡潔,讓它只做kernel應該做的事情。

在本文中介紹rhel7.3兩種最常見的雙網卡綁定模式:

        
        
1 activebackup - 主備模式
            
一個網卡處於活動狀態,另一個處於備份狀態,所有流量都在主鏈路上處理,當活動網卡down掉時,啓用備份網卡。

      (2 roundrobin - 輪詢模式
            
所有鏈路處於負載均衡狀態,這種模式的特點增加了帶寬,同時支持容錯能力。

下面以activebackup - 主備模式爲例來做下示例配置:

1、進入系統,查看服務器網卡配置情況。

wKiom1lRKL7R59rVAAI-XigdqXg680.png-wh_50

如上圖所示,共有ens3ens8兩塊網卡共4個端口。決定爲兩個網段分別配置雙網卡綁定,業務網綁定ens3f0ens8f0兩個端口,私網綁定ens3f1和ens8f1兩個端口。

2、我們可以使用nmcli命令進行網卡綁定,具體命令如下:

配置業務網主接口team0,設置模式爲activebackup

nmcli con add type team con-name team0 ifname team0 config‘{“runner”: {“name”: ”activebackup”}}’

設置IP地址,子網掩碼,網關

nmcli con mod team0 ipv4.addresses 11.11.205.145/28ipv4.gateway 11.11.205.158 ipv4.method manual connectio.autoconnect yes

添加綁定到team0的端口ens3f0

nmcli con add type team-slave con-name team0-port1 ifname ens3f0 master team0

添加綁定到team0的端口ens8f0

nmcli con add type team-slave con-name team0-port2 ifname ens8f0 master team0

重新載入連接配置

nmcli con reload

啓動team0

nmcli con up team0

wKioL1lRKXKzwCL5AAFmoPL6BPo633.png-wh_50

3、查看狀態,使用teamdctl命令進行驗證

wKioL1lRKeaxJRspAAGxq7e95Ms275.png-wh_50

4、檢測發現狀態都正常。

5、如果需要嘗試換成roundrobin模式,則可以進入team0team1的配置文件,修改模式爲roundrobin,其他配置不變


提示:在做網卡綁定的時候,如果發現物理網卡總是無法綁定到team0,請檢查該物理網卡是否處於up狀態。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章