linux實現雙網卡綁定

前言:

Teaming 技術:可以把同一臺服務器上的多個物理網卡綁定成一個虛擬的網卡,利用Teaming 技術,可以提高網絡速度、實現不同網卡之間的負載(Load balancing)和網卡冗餘(Fault tolerance);

與bonding的關係

在RHEL5/RHEL6中使用的是Bonding,而RHEL7提供了一項新的實現技術Teaming,用來實現鏈路聚合的功能,但在RHEL7中,不會使用teaming替換bonding,它們是並存的,我們可以選擇Teaming,也可以選擇Bonding。

 

teaming 技術有多種模式(runner)

 

1)、broadcast(廣播):數據通過所有端口傳輸,即複製一份數據向兩塊網卡發出

 

2)、roundrobin(輪詢):輪詢模式,所有鏈路處於負載均衡狀態,這種模式的特點增加了帶寬,同時支持容錯能力(使用時會有自動丟包情況)。

 

3)、activebackup(主備):類似於bonding技術的bond1模式,只有主鏈路在工作,當主鏈路斷開後備鏈路會接替,接替過程會有兩個包的延遲(丟包)

 

4)、loadbalance(負載均衡):具有活動的Tx負載平衡和基於BPF的Tx端口選擇器(使用時會有自動丟包情況)

 

5)、lacp (implements the 802.3ad Link Aggregation Control、Protocol):類似於bonding技術的bond4模式,需要交換機支持802.3ad(LACP)協議

 

下面使用以下兩個網卡進行綁定:

 

1、創建一個名爲team0的網絡端口,模式爲activebackup(主備模式)

[root@localhost ~]# nmcli connection add con-name "team0" type team ifname team0 config '{"runner":{"name":"activebackup"}}'

 

2、修改team0網口的IP地址,網關和DNS

[root@localhost ~]# nmcli connection modify team0 ipv4.addresses "192.168.10.100/24" ipv4.dns "8.8.8.8,114.114.114.114" connection.autoconnect yes ipv4.method manual

[root@localhost ~]# echo "GATEWAY0=192.168.10.1" >> /etc/sysconfig/network-scripts/ifcfg-team0

 //創建team0後會在/etc/sysconfig/network-scripts/目錄下生成ifcfg-team0的文件

 

3、將名爲eno33554968網卡添加到team0,並且改名爲eth1

[root@localhost ~]# nmcli connection add con-name eth1 ifname eno33554968 type team-slave master team0


4、將名爲eno50332192網卡添加到team0,並且改名爲eth2

[root@localhost ~]# nmcli connection add con-name eth2 ifname eno50332192 type team-slave master team0

 

5、啓動team0並且重啓網絡服務

[root@localhost ~]# nmcli connection up team0 ; systemctl restart network


6、查看team0的狀態

[root@localhost ~]# teamdctl team0 state

=========================================================================================

7、在activebackup(主備)模式下如某個網口斷掉會丟兩個包,當接口恢復也會丟兩個包

[root@localhost ~]# nmcli connection down eth1     //關閉網口

[root@localhost ~]# nmcli connection up eth1         //啓用網口

 

8、最後如想恢復按順序將其刪除,然後重新加載即可

[root@localhost ~]# nmcli connection delete eth1

[root@localhost ~]# nmcli connection delete eth2

[root@localhost ~]# nmcli connection delete team0

[root@localhost ~]# nmcli connection reload

 

參考:

https://www.cnblogs.com/eddie1127/p/11385604.html

發佈了42 篇原創文章 · 獲贊 15 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章