高級網絡控制

高級網絡控制

網絡橋接:

網絡橋接用網絡橋實現共享上網主機和客戶機除了利用軟件外,還可以用系統自帶的網絡橋建立連接用雙網卡的機器做主機

1.網絡橋接的配置

在真機中切換到/etc/sysconfig/network-scripts/目錄下,這是主機所有的網絡配置文件



將ifcfg-br0,ifcfg-enp3s0移動到/mnt/



在目錄下重新編寫ifcfg-enp3s0



重啓網絡,並reboot真機,關閉圖形設置網絡





創建網橋:

編輯ifcfg-enp3s0和ifcfg-br0

ifcfg-enp3s0



ifcfg-br0



重啓網絡:





注意:實驗後要將/mnt/下的文件還原


2.網絡橋接的管理命令

brctl show                    ##顯示網絡橋接



brctl addbr br0              ##添加網橋



brctl addif br0 eth0        ##添加網絡橋接



brctl delif br0 eth0         ##刪除網橋連接



brctl delbr br0                 ##刪除網橋

注意:刪除網橋之前需要先將網橋down



ifconfig br0 172.25.254.100 netmask 255.255.255.0

給網橋添加ip



3.bond網絡

選擇Linux以太網綁定模式

模式0(平衡輪循)-- 輪循策略,所有接口都使用採用輪循方式在所有Slave中傳輸封包;任何Slave都可以接收

模式1(主動備份)-- 容錯,一次只能使用一個Slave接口,但是如果該接口出現故障,另一個Slave將接替它

模式3(廣播)-- 容錯,所有封包都通過所有Slave接口廣播

只支持2塊網卡


利用nmcli命令管理bond

需要先開啓圖形管理網絡的服務


nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.243/24

創建bond網絡



查看:



監控命令:

watch -n 1 cat /proc/net/bonding/bond0


將兩塊網卡eth0和eth1投入使用

nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0

將eth0投入到bond網絡中使用



如果一塊網卡不幸壞掉,另一塊網卡會及時補救,從而不會使網絡斷掉

eth0壞掉之後,eth1及時補救,網絡依舊暢通



將eth0恢復,如果eth1也壞掉之後,eth0會及時補救,網絡依舊暢通,此時可以刪除掉壞了的eth1再重新添加一塊網開始進來繼續使用





刪除bond網絡

打開圖形管理網絡界面爲空



4.Team接口

Team和bond0功能類似

Team不需要手動加載相應內核模塊

Team有更強的拓展性

支持8塊網卡


Team的種類

broadcast                ##廣播容錯

roundrobin              ##平衡輪循

activebackup          ##主備

loadbalance            ##負載均衡


通過nmcli命令設定team

nmcli connection add con-name team0 type ifname team0 config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.243/24

創建team網絡


teamdctl team0 state               ##查看命令




將eth0和eth1投入到team中使用

nmcli connection add con-name eth0 ifname eth0 type team-slave master team0



監控命令:

watch -n 1 teamdctl team0 state



如果一塊網卡不幸壞掉,另一塊網卡會及時補救,從而不會使網絡斷掉

eth0壞掉之後,eth1及時補救,網絡依舊暢通



將eth0恢復,如果eth1也壞掉之後,eth0會及時補救


eth1也可以恢復


刪除team接口
與刪除bond網絡的方式相同
nmcli connection delete team0

nmcli connection delete eth0

nmcli connection delete eth1