配置鏈路聚合
在Redhat7鏈路聚合有兩種:bond和team
bond 是把多個網卡綁定在一起,邏輯出一個接口,這樣可以提高吞吐量,和冗餘功能
bond 是依賴bonding.ko 這個內核模塊。
查看內核有沒有加載bonding.ko 模塊#modinfo binding
可以查看模塊信息。如果有信息,說明已經加載
如果沒有加載,可以用命令加載。
#modprobe binding
一個主接口master,由多個從接口slave組成。
接口進行控制管理時,使用的是NetworkManager服務進程
bond配置過程要注意一下幾點;
master和slave是關閉和開啓是分別進行。
slave不用做任何配置
master可以是用dhcp和可以使用
master 使用dhcp配置時,從接口必須保證物理連接是正確的
bond 的模式:
round-robin mode 0 輪詢
active-backup mode 1 主備
broadcast mode 3 廣播
實驗環境說明:
一臺Redhat7 虛擬機。虛擬機添加2塊網卡,2塊虛擬機網卡類型都設置爲自動橋接(地址段爲:192.168.9.0/24 網關爲:192.168.9.254)
配置完成後,可以連接到互聯網
配置步驟:
1,先創建一個bond的master
2,創建兩個bond-slave 加入master
3,驗證bond是不是生效
在桌面打開一個終端,su - 到root用戶。查看一下網卡信息。可以看到除lo以外有兩塊網卡,
分別是eno16777736和eno33554992。這兩塊網卡沒有任何配置信息(如果不是新添加的網卡,有信息,需要用nmcli connection delete xx 刪除對應的網卡)
1,配置bond master 模式爲active-backup
#nmcli connection add type bond ifname bond0 con-name bond0 mode active-backup ip4 192.168.9.5/24 gw4 192.168.9.254
現在ip addr show 能夠查看到bond0
2創建兩個bond-slave 加入master
#nmcli connection add type bond-slave ifname eno16777736 master bond0
#nmcli connection add type bond-slave ifname eno33554992 master bond0
3驗證bond創建是否生效。
#cat /proc/net/bonding/bond0
能看到一下內容
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno33554992
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eno16777736
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:58:5e:6e
Slave queue ID: 0
Slave Interface: eno33554992
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:58:5e:78
Slave queue ID: 0
說明bond已經配置成功。現在我們用ssh 連接192.168.9.5 能夠登錄成功。
修改dns配置文件vim /etc/resolv.conf
添加nameserver 8.8.8.8
就可以連接到互聯網了
我們現在來看一下主備的效果。 另外開啓一個ssh
把活動Currently Active Slave: eno33554992 斷開連接。
#nmcli device disconnet eno33554992
我們現在查看一下cat /proc/net/bonding/bond0
Currently Active Slave: eno16777736
換成另外一個接口。
#可能是虛擬機的原因,活動的slave 切換了,但是還是掉線。有可能是虛擬機同步有問題。
team和bond的配置類似。(官方說bond和team不衝突)我就直接寫步驟了
team的模式:注意和bond的寫法區別
roundrobin 輪詢
activebackup 主備
broadcast 廣播
1,創建一個team master
#nmcli connection add type team con-name team0 ifname team0 autoconnect yes
config '{"runner": {"name": "activebackup"}}' ip4 192.168.9.7/24 gw4 192.168.9.254
注意,team 指定模式的格式 '{"runner": {"name": "activebackup"}}'
2創建兩個team-slave 加入master
#nmcli connection add type team-slave ifname eno16777736 autoconnect yes master team0
#nmcli connection add type team-slave ifname eno33554992 autoconnect yes master team0
3檢驗team是否生效
#teamdctl team0 state
能夠查看信息
[root@localhost ~]# teamdctl team0 state
setup:
runner: activebackup
ports:
eno16777736
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
eno33554992
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: eno16777736
查看team有那些port組成# teamnl team0 ports
[root@localhost ~]# teamnl team0 ports
3: eno33554992: up 1000Mbit FD
2: eno16777736: up 1000Mbit FD
驗證方法還是可以上面一樣。還是出現同樣的問題,一切換網卡,就掉線。查看狀態是正常的。
我用的版本是redhat 7.0的版本。vmwarestation 14.1.2的版本。你們有遇到這樣的問題給我反饋。。。。
網橋的創建和bond 和team 類似。
#nmcli connection add type bridge ifname br0 con-name br0 autoconnect yes ip4 192.168.9.8 gw4 192.168.9.254
#nmcli connection add type bridge-slave autoconnect yes ifname eno16777736 master br0
nmcli connection add type bridge-slave autoconnect yes ifname eno33554992 master br0
這樣那兩個接口就可以當交換機的兩個網口用了