1. 程式人生 > >Linux基礎之 高階網路配置 (鏈路聚合)

Linux基礎之 高階網路配置 (鏈路聚合)

一、鏈路聚合

簡介:

鏈路聚合(Link Aggregation)是一個計算機網路術語,指將多個物理埠匯聚在一起,形成一個邏輯埠,以實現出/入流量吞吐量在各成員埠的負荷分擔,交換機根據使用者配置的埠負荷分擔策略決定網路封包從 哪個成員埠傳送到對端的交換機。當交換機檢測到其中一個成員埠的鏈路發生故障時,就停止在此埠上傳送封包,並根據負荷分擔策略在剩下的鏈路中重新計 算報文的傳送埠,故障埠恢復後再次擔任收發埠。鏈路聚合在增加鏈路頻寬、實現鏈路傳輸彈性和工程冗餘等方面是一項很重要的技術。

作用:

1、增加網路頻寬

2、提高網路連線的可靠性

BOND和TEAM兩種鏈路聚合的區別

team網路支援負載均衡,bond不支援負載均衡
team網路支援ipv6,bond不支援ipv6
team網路支援hash加密,bond不支援hash加密

二、bond鏈路聚合

網絡卡bond是通過把多張網絡卡繫結為一個邏輯網絡卡,實現本地網絡卡的冗餘,頻寬擴容和負載均衡。

1. 命令方式設定網路

編輯nm-connection-editor 刪除之前的所有網路配置

執行ifconfig 檢視


編輯nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.203/24 建立bond0介面

為聚合連線提供配置(連線名 -- bond0,型別 -- bond,執行器 -- active-backup輪詢式,IP地址 -- 172.25.254.203/24)
cat /proc/net/bonding/bond0 檢視bond0狀態


編輯nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0 新增eth0裝置與bond0介面建立連線


編輯nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0 新增eth1裝置與bond0介面建立連線(作為備用)

cat /proc/net/bonding/bond0  檢視bond0介面資訊


監控命令watch -n 1 cat /proc/net/bonding/bond0


在真機ping 172.25.254.203  成功

當網絡卡eth0損壞,那麼eth1頂替eth0為bond0連線工作

當我們修復好eth0網絡卡,為bond0連線工作的還是eth1,而eth0則是備用網絡卡,只有在eth1出現問題eth0才會頂替eth1為bond0工作

當eth0與eth1同時損壞則主機ping 172.25.254.203 不通

2. 文字方式設定網路

nm-connection-editor 刪除之前的所有網路


編輯cd /etc/sysconfig/network-scripts/進入網路配置目錄
編輯vim ifcfg-bond0

寫入內容
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.203
NETMASK=255.255.255.0
TYPE=Bond
BONDING_OPTS=mode=active-backup

編輯vim ifcfg-eth0


寫入內容
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0


編輯vim ifcfg-eth1


寫入內容
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0

編輯systemctl restart network 重新啟動網路

cat /proc/net/bonding/bond0 檢視


在真機裡ping 172.25.254.203 成功

三、TEAM鏈路聚合

在 linux 中, centos7之前都是使用bond機制來實現多網路繫結同一個IP 地址,來對網路提供訪問,並按不同的模式來負載均衡或者輪迴接替管理處理資料。而到了contos7之後,提供了一種強大的工具,nmcli工具命令,使用此工具,將會根據命令引數的配置來重新生成特定的配置檔案來供網路介面使用,方便而又靈活。在linux不再使用bond機制定義,而是使用網路組 team 機制,把 team 組當作一個裝置。

team 網路的設定

1. 命令方式設定網路

 nm-connection-editor 刪除之前的所有網路


用監控命令監控   watch -n 1 teamdctl team0 stat


另外開啟一個shell執行
編輯nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.203/24


真機ping 172.25.254.203 不通 沒有建立連線


編輯nmcli connection add con-name eth0 ifname eth0 type team-slave master team0  新增eth0裝置與team0介面建立連線


編輯nmcli connection add con-name eth1 ifname eth1 type team-slave master team0  新增eth1裝置與team1介面建立連線(作為備用)

teamdctl team0 stat檢視team0 狀態資訊



真機ping 172.25.254.203 成功

2.文字方式設定team網路
刪除之前的所有網路進行配置
nmcli connection delete team0 刪除team0
nmcli connection show
nmcli connection delete eth0  刪除eth0
nmcli connection delete eth1  刪除eth1
nmcli connection show  檢視



編輯vim /etc/sysconfig/network-scripts/ifcfg-team0


寫入內容
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
DEVICETYPE=team
BOOTPROTO=none
IPADDR=172.25.254.203
PREFIX=24
NAME=team0
0NBOOT=yes


systemctl restart network重新啟動網路


真機ping 172.25.254.203 失敗,沒有建立連線

vim /etc/sysconfig/network-scripts/ifcfg-eth0
寫入內容
BOOTPROTO=none
DEVICE=eth0
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort


systemctl restart network重新啟動網路

編輯vim /etc/sysconfig/network-scripts/ifcfg-eth1
寫入內容
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort

systemctl restart network重新啟動網路


真機ping 172.25.254.203 成功

編輯teamdctl team0 stat  檢視