【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接

目錄:
(一)瞭解什麼是聚合鏈路
(二)配置聚合網絡的幾種方式
(三)配置橋接網絡


(一)瞭解什麼是聚合鏈路
(1.1)在我們系統中有一個客戶端client,還有一臺服務器server,在服務器和客戶端之間使用交換機進行連接,交換機和服務器的帶寬爲無限大,沒有任何的限制,而客戶端和交換機之間是百兆的帶寬。此時我們假設服務器上有100G的內容需要傳輸到客戶端上,假設我們常規情況下需要1個小時可以將文件全部下載下來。此時我們感覺1個小時下載文件是非常費時的,而此時我們client客戶端上有兩張網卡,如果直接將第二張網卡插上一根網線連接到交換機上,希望時間能夠因此降低到0.5小時,這其實是無法實現的。因爲在每個交換機裏存在着mac地址表,例如f0/0和client eth0關聯,f0/1和client eth2關聯,f0/2和server eth0關聯,在局域網內部通信的時候有一個很重要的因素是mac地址,客戶端和服務器通信的時候,client客戶端從eth0網卡出來經過了交換機找到了server服務器端的eth0地址。此時client的源地址是“s:client:eth0”,而此時server的目的地址是“d:client:eth0”,而當通信的信息從server端返回到交換機的時候,此時交換機會去ARP表中解析client端的eth0對應的mac地址是什麼並將其關聯起來,所以當使用client端的eth0和server端進行通信,即使我們重新插入另外一根網線將client端的eth1接入進來,也仍然無法爲client端的eth0網卡分擔100G數據從server端下載過來的流量。
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(1.2)如果我們希望client端的多張網卡可以同時工作,分擔單個網卡下載流量的壓力時,我們可以將eth0的mac地址和eth1的mac地址使用軟件合併成一個mac地址,此時當有數據包從server端返回到交換機的時候,交換機發現在ARP表中f0/0與f0/1對應的是同一個mac地址,因此此時數據包從eth0網卡傳輸和eth1網卡傳輸都是可以的。此時數據包是如何分配的呢?我們可以有兩種分配模式,第一種是activebackup高可用備份,數據先從一條鏈路的網卡eth0進行傳輸,當出現當前傳輸的鏈路斷開時,備用的eth1便會立刻頂上去繼續提供傳輸服務;第二種是roundrobin輪詢,即傳輸文件時,一部分流量可以從eth0傳輸,接着一部分流量從eth1傳輸,這樣循環往復進行數據傳輸,當然類似的方式還有LoadBlanace負載均衡。當然第二種方式除了在主機上進行配置,同時還是需要在交換機上配置channel。
(1.3)當我們將client客戶端eth0和eth1的mac地址修改爲一樣後,我們應該在哪個網卡上配置IP地址呢?我們的解決方案是創建一個虛擬的網卡team0關聯eth0和eth1,然後在team0網卡上配置IP地址,由於eth0、eth1、team0解析出來的mac地址都是一樣的,同時記錄在交換機的f0/0和f0/1上,此時當server主機上傳送過來的數據包到達交換機後,發現IP地址對應的mac地址既出現在f0/0上,也出現在了f0/1上了,所以此時數據包便可以選擇從eth0傳輸,也可以選擇從eth1傳輸。一般我們需要實現改變網卡mac地址的需求可以通過兩種方式來實現,第一種方式是配置網卡的binding綁定網絡,第二種方式是配置網卡的team聚合網絡,此處我們使用第二種方式實現。
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(1.4)應用場景:當服務器提供比較重要的服務時,只准備一張網卡是遠遠不夠的,因爲一旦網卡出現故障,客戶就無法訪問,這就會造成客戶流失,體驗感差,這個時候就可以運用鏈路聚合的方案來解決,將多張網卡綁定在一起創建一張虛擬網卡,從而實現網卡熱備份、流量輪詢式負載均衡,以此來保障服務器能夠正常提供服務,給用戶以良好的體驗。


(二)配置聚合網絡的幾種方式
(2.1)配置聚合網絡,我們一般可以使用三種方式實現,第一種是圖形化界面配置,第二種是命令行的方式配置,第三種是通過修改配置文件的方式操作。我們首先使用第一種圖形化界面的配置方式在vms002主機上進行配置,我們在vms002主機上添加兩張新的網卡,然後發現此時系統中已經存在三張網卡了(圖2-3)。
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.2)接着我們將NetworkManager服務啓動起來,並打開圖形化界面。我們選擇添加一個“組隊”網絡,然後將連接名稱和接口名稱設置爲team0(圖2-6),在IPv4的設置處設置IP地址和子網掩碼(圖2-7),接着添加一個網卡,並命名爲team0-slave1,添加第二張網卡,並命名爲team0-slave2,同時還要添加JSON文件“{"runner":{"name":"activebackup"}}”(圖2-9),此時我們保存文件並關閉圖形化界面,最後重啓網絡即可(圖2-10)。
# systemctl start NetworkManager
# nm-connection-editor &
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.3)此時我們在vms002主機上使用ifconfig命令查看網卡eno33554968、eno50332192、team0時,發現網卡的mac地址已經變成一樣的了(圖2-11)。此時我們在vms001主機上進行ping操作,發現是可以ping通vms002主機的(圖2-12)。
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.4)我們使用teamdctl命令可以查詢出當前系統使用的是activebackup備份高可用,當前工作的網卡是eno33554968,然後我們將該網卡斷開(圖2-13),此時我們發現系統仍然是備份高可用狀態,並且已經自動連接到了第二張網卡eno50332192(圖2-14),而且此時vms001主機ping向vms002主機的連接一直沒有斷開(圖2-15)。
# teamdctl team0 state---查詢當前系統的網絡狀態
# nmcli device disconnect eno33554968---將網卡eno33554968連接斷開
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.5)接着我們在vms002主機上先將eno33554968網卡連接上,然後將eno50332192網卡的連接斷開,可以發現所以此時vms002主機的備份高可用的需求仍然是實現了的。
# nmcli device connect eno33554968---我們將eno33554968網卡重新連接上
# nmcli device disconnect eno50332192---我們將eno50332192網卡連接斷開
# teamdctl team0 state---查詢當前網卡的連接狀態
# tcpdump -i eno33554968---在vms002主機進行抓包
注意:如果我們發現當vms001主機無法ping通vms002主機的時候,可以在vms002主機上使用tcpdump命令抓一下包,此時系統之間的連接便會正常。
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.6)接着我們通過第二種命令行的方式進行配置,我們首先在vms002主機上將之前用圖形化設置的組隊信息刪除,然後重新使用命令行進行設置,我們添加一個team網卡設置連接名爲team0,設置網卡名爲team0,並添加備份高可用的JSON信息,然後在將系統中的兩張網卡eno33554968和eno50332192設置爲從屬於team0的team-slave類型。
# nmcli connection delete team0
# nmcli connection delete team0-slave1
# nmcli connection delete team0-slave2
# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}---添加一個team網卡設置連接名爲team0,設置網卡名爲team0,並添加備份高可用的JSON信息
# nmcli connection modify team0 ipv4.addresses 192.168.26.200/24 ipv4.gateway 192.168.26.2 ipv4.dns 192.168.26.2 ipv4.method manual---設置team0網卡的IP地址、網關、DNS,並設置team0網卡爲手動
# nmcli connection add type team-slave con-name team0-slave1 ifname eno33554968 master team0---在team0網卡中添加一個team-slave,設置連接名爲team0-slave1,網卡名爲eno33554968,且從屬於team0網卡
# nmcli connection modify team0-slave1 connection.autoconnect yes---設置開機的時候網卡可以自動連接
# nmcli connection add type team-slave con-name team0-slave2 ifname eno50332192 master team0---在team0網卡中添加一個team-slave,設置連接名爲team0-slave2,網卡名爲eno50332192,且從屬於team0網卡
# nmcli connection modify team0-slave2 connection.autoconnect yes---設置開機的時候網卡可以自動連接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.7)我們將網絡重啓後發現此時vms002主機設置組隊的三張網卡的mac地址已經完全一致了,此時我們發現vms001主機已經可以正常的ping同vms002主機的組隊網絡team0了。
# systemctl restart network---將網路重啓一下
# tcpdump -i eno33554968---對網卡eno33554968抓包
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.8)然後我們使用第三種修改配置文件的方式進行配置,我們首先進入到/usr/share/doc/teamd-1.15/example_ifcfgs/1目錄中,將三個模板文件拷貝到/etc/sysconfig/network-scripts/目錄中(圖2-22),我們將ifcfg-eth1重命名爲ifcfg-eno33554968,將ifcfg-eth2重命名爲ifcfg-eno50332192,並在ifcfg-eno33554968配置文件和ifcfg-eno50332192配置文件中配置對應的信息(圖2-22至圖2-25)。
# nmcli connection delete team0
# nmcli connection delete team0-slave1
# nmcli connection delete team0-slave2
# cd /usr/share/doc/teamd-1.15/example_ifcfgs/1
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(2.9)最後我們還要編輯ifcfg-team_test0配置文件,並填寫相關的配置信息,最後我們將網絡重啓一下,此時可以發現系統的組隊網絡team0已經生效了,並且三張網卡的mac地址已經完全一致了(圖2-28)。此時我們在vms001主機上ping向vms002主機的聚合網絡時,是能夠ping通的(圖2-29)。
# systemctl restart network
# teamdctl team_test0 state---查詢team_test0組隊網路的狀態
# nmcli device disconnect eno33554968---斷開eno33554968網卡的連接
# nmcli device connect eno33554968---重新連接eno33554968網卡
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接


(三)配置橋接網絡
(3.1)一般橋接網絡是應用在虛擬化的環境中,我們可以通過三種方式配置橋接網絡,第一種是圖形化界面的配置方式,第二種是命令行的配置方式,第三種是通過修改配置文件的方式。首先我們使用圖形化界面的方式進行配置,我們在vms002主機上設置兩張網卡,然後我們打開圖形化界面,選擇橋接模式(圖3-3),然後依次配置橋接和IPv4設置(圖3-4至圖3-6),然後點擊保存並關閉。此時我們便創建了一個橋接網絡br0了,且實現了將eno33554968網卡橋接到了bro網卡上(圖3-7),最後我們將網路重啓即可。此時我們從物理機上嘗試ping向192.168.26.200的IP地址是可以ping通的(圖3-8)。
# nm-connection-editor &
# systemctl restart network
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(3.2)然後我們使用第二種命令行的方式來進行配置,我們首先將之前配置的信息清理一下(圖3-9),然後配置一個br0網橋,並將網卡eno33554968和br0網橋進行關聯(圖3-10)。此時我們從物理機上ping向vns002主機的橋接網絡時,仍然是可以ping通的(圖3-11)。
# brctl show---查詢橋接的網絡信息
# nmcli connection---查詢網卡連接狀態
# nmcli connection delete br0---刪除br0網卡
# nmcli connection delete br0-slave1---刪除br0-slave1網卡
# nmcli connection add type bridge con-name br0 ifname br0---創建一個橋接的網橋,命名爲br0,同時設置連接名爲br0
# nmcli connection modify br0 ipv4.addresses 192.168.26.200/24 ipv4.gateway 192.168.26.2 ipv4.dns 192.168.26.2 ipv4.method manual connection.autoconnect yes---設置br0網橋的IP地址、網關、DNS的信息,並設置ipv4爲手動啓動,同時開機自動連接
# nmcli connection add type bridge-slave con-name br0-slave1 ifname eno33554968 master br0---設置從節點連接名爲br0-slave1,連接的網卡是eno33554968
# nmcli connection modify br0-slave1 connection.autoconnect yes---設置從節點開機自動連接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(3.3)接着我們使用第三種修改配置文件的方式進行配置,我們進入到/etc/sysconfig/network-scripts/目錄中,然後創建一個ifcfg-br0文件,並做如下的配置(圖3-12和圖3-13),接着創建一個ifcfg-br0-slave1文件,並做如下的配置(圖3-14圖3-15)。
# vim ifcfg-br0
# vim ifcfg-br0-slave1
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
ONBOOT=yes表示開機是否自動啓動;BOOTPROTO=none表示開機通過什麼協議獲取IP地址
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
(3.4)最後我們將vms002主機的網絡服務重啓一下,此時發現br0和網卡eno33554968的mac地址一致,我們使用物理機也是可以正常的ping通vms002主機的橋接網絡的。
# brctl show---查詢橋接網絡信息
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接
【講清楚,說明白!】Linux高級網絡配置--聚合網絡和橋接

—————— 本文至此結束,感謝閱讀 ——————

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