WiFi和以太網耦合促進網絡移動性-LinuxTechBlog


一個網絡接口可能還不夠。網絡綁定允許多個網絡連接在單個邏輯接口上工作。我們這樣做是因為我們需要比單個連接處理更多的帶寬。或者,您可能希望在不丟失網絡連接的情況下在有線和無線網絡之間切換。

後者對我有用。在家工作的好處之一是,當天氣晴朗時,在陽光明媚的甲板上而不是在室內工作會很有趣。但是每次我這樣做時,我都會失去互聯網連接。 IRC、SSH、VPN——當至少有一些客戶端重新連接時,一切都消失了。本文介紹如何在您的 Fedora 30 筆記本電腦上設置網絡綁定,以將您的筆記本電腦擴展塢從有線連接無縫傳輸到 WiFi 連接。

在 Linux 上,接口綁定由綁定內核模塊處理。 Fedora 默認不啟用此功能,但它包含在 kernel-core 包中。這意味著啟用接口綁定只是一個命令。

sudo modprobe bonding

請注意,這只會在您重新啟動之前生效。要永久啟用接口綁定,請在 /etc/module-load.d 目錄中創建一個名為 bond.conf 的文件,其中僅包含單詞“bonding”。

現在我們已經啟用了綁定,我們將創建一個綁定接口。首先,您需要獲取要綁定的接口的名稱。要列出可用接口,請執行以下操作:

sudo nmcli device status

您應該會看到類似於以下內容的輸出:

DEVICE          TYPE      STATE         CONNECTION         
enp12s0u1       ethernet  connected     Wired connection 1
tun0            tun       connected     tun0               
virbr0          bridge    connected     virbr0             
wlp2s0          wifi      disconnected  --      
p2p-dev-wlp2s0  wifi-p2p disconnected  --      
enp0s31f6       ethernet  unavailable   --      
lo              loopback  unmanaged     --                 
virbr0-nic      tun       unmanaged     --       

在這種情況下,您可以使用兩個(有線)以太網接口。 您可以看到 enp12s0u1 位於筆記本電腦底座上,並通過 STATE 列連接。另一個 enp0s31f6 是筆記本電腦的內置端口。 還有一個名為 wlp2s0 的 WiFi 連接。 enp12s0u1 和 wlp2s0 是這裡感興趣的兩個接口。 (本練習中您不需要知道網絡設備的名稱,但如果您有興趣可以查看。 systemd.net-naming-scheme 手冊頁.. )

第一步是創建綁定接口。

sudo nmcli connection add type bond ifname bond0 con-name bond0

在本例中,連接接口的名稱是bond0。 “Con-name bond0”將連接名稱設置為bond0。關閉它會產生一個名為 bond-bond0 的連接。您還可以將連接名稱設置為更人性化的名稱,例如“Docking station bond”或“Ben”

下一步是將接口添加到加入接口。

sudo nmcli connection add type ethernet ifname enp12s0u1 master bond0 con-name bond-ethernet
sudo nmcli connection add type wifi ifname wlp2s0 master bond0 ssid Cotton con-name bond-wifi

如上,連接名稱指定為 更具描述性.. 請務必將 enp12s0u1 和 wlp2s0 替換為系統上相應的接口名稱。 為 WiFi 接口使用您自己的網絡名稱 (SSID)。我用“棉花”。 如果您的 WiFi 連接有密碼(當然有!),您需要將其添加到您的配置中。以下假設您正在使用 WPA2-PSK 確認

sudo nmcli connection modify bond-wifi wifi-sec.key-mgmt wpa-psk
sudo nmcli connection edit bond-wif

第二個命令將您帶到一個交互式編輯器,您可以在其中輸入密碼而無需登錄到 shell 歷史記錄。在下面鍵入以將密碼替換為實際密碼

set wifi-sec.psk password
save
quit

現在您已準備好啟動您創建的綁定接口和幫助程序接口。

sudo nmcli connection up bond0
sudo nmcli connection up bond-ethernet
sudo nmcli connection up bond-wifi

您現在可以在不丟失網絡連接的情況下斷開有線或無線連接。

警告:請使用其他 WiFi 網絡

通過指定的 WiFi 網絡旅行時,此配置工作正常,但從該網絡旅行時,綁定使用的 SSID 不可用。理論上,可以為您使用的每個 WiFi 連接添加一個接口到綁定,但這似乎不合理。或者,您可以禁用綁定接口。

sudo nmcli connection down bond0

回到定義的 WiFi 網絡後,只需按上述方式啟動綁定接口。

微調債券

默認情況下,綁定接口使用“循環”模式。這會在接口之間均勻分配負載。但是,如果您同時擁有有線和無線連接,我們建議您使用有線連接。主動備份模式使這成為可能。您可以在創建接口時指定模式和主接口,也可以稍後使用此命令(綁定接口必須關閉)。

sudo nmcli connection modify bond0 +bond.options "mode=active-backup,primary=enp12s0u1"

這個 內核文檔 有更多關於綁定選項的信息。