一個網絡接口可能還不夠。網絡綁定允許多個網絡連接在單個邏輯接口上運行。您可能會這樣做,因為您需要比單個連接處理的更多的帶寬。或者,您可能希望在不丟失網絡連接的情況下在有線和無線網絡之間切換。
後者對我來說很好。在家工作的好處之一是,當天氣晴朗時,您可以在陽光充足的甲板上工作,而不是在室內工作。但是每次我這樣做時,我都會失去互聯網連接。 IRC、SSH、VPN——至少在一些客戶端重新連接時都會消失。本文將向您展示如何在您的 Fedora 30 筆記本電腦上設置網絡綁定,以將您的筆記本電腦擴展塢從有線連接無縫傳輸到 WiFi 連接。
在 Linux 上,接口綁定由綁定內核模塊處理。 Fedora 默認不啟用此功能,但它包含在 kernel-core 包中。這意味著只有一個命令可以啟用接口綁定。
sudo modprobe bonding
請注意,這將一直有效,直到您重新啟動。要永久啟用接口綁定,請在 /etc/modules-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"
這個 內核文檔 有更多關於綁定選項的信息。