首頁 > 軟體

在 Linux 中用 nmcli 命令系結多塊網絡卡

2020-06-16 18:00:50

今天,我們來學習一下在 CentOS 7.x 中如何用 nmcli(Network Manager Command Line Interface:網路管理命令列介面)進行網絡卡系結。

網絡卡(介面)係結是將多塊 網絡卡 邏輯地連線到一起從而允許故障轉移或者提高吞吐率的方法。提高伺服器網路可用性的一個方式是使用多個網絡卡。Linux 係結驅動程式提供了一種將多個網絡卡聚合到一個邏輯的系結介面的方法。這是個新的實現系結的方法,並不影響 linux 核心中舊系結驅動。

網絡卡系結為我們提供了兩個主要的好處:

  1. 高頻寬
  2. 冗餘/彈性

現在讓我們在 CentOS 7 上設定網絡卡系結吧。我們需要決定選取哪些介面設定成一個組介面(Team interface)。

執行 ip link 命令檢視系統中可用的介面。

  1. $ ip link

這裡我們使用 eno16777736eno33554960 網絡卡在 “主動備份” 模式下建立一個組介面。(譯者注:關於不同模式可以參考:多網絡卡的7種bond模式原理)

按照下面的語法,用 nmcli 命令為網路組介面建立一個連線。

  1. # nmcli con add type team con-name CNAME ifname INAME [config JSON]

CNAME 指代連線的名稱,INAME 是介面名稱,JSON (JavaScript Object Notation) 指定所使用的處理器(runner)。JSON 語法格式如下:

  1. '{"runner":{"name":"METHOD"}}'

METHOD 是以下的其中一個:broadcast、activebackup、roundrobin、loadbalance 或者 lacp

 

1. 建立組介面

現在讓我們來建立組介面。這是我們建立組介面所使用的命令。

  1. # nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

執行 # nmcli con show 命令驗證組介面設定。

  1. # nmcli con show

 

2. 新增從裝置

現在讓我們新增從裝置到主裝置 team0。這是新增從裝置的語法:

  1. # nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

在這裡我們新增 eno16777736eno33554960 作為 team0 介面的從裝置。

  1. # nmcli con add type team-slave con-name team0-port1 ifname eno16777736 master team0
  2. # nmcli con add type team-slave con-name team0-port2 ifname eno33554960 master team0

再次用命令 #nmcli con show 驗證連線設定。現在我們可以看到從裝置設定資訊。

  1. #nmcli con show

 

3. 分配 IP 地址

上面的命令會在 /etc/sysconfig/network-scripts/ 目錄下建立需要的組態檔。

現在讓我們為 team0 介面分配一個 IP 地址並啟用這個連線。這是進行 IP 分配的命令。

  1. # nmcli con mod team0 ipv4.addresses "192.168.1.24/24 192.168.1.1"
  2. # nmcli con mod team0 ipv4.method manual
  3. # nmcli con up team0

 

4. 驗證系結

#ip add show team0 命令驗證 IP 地址資訊。

  1. #ip add show team0

現在用 teamdctl 命令檢查 主動備份 設定功能。

  1. # teamdctl team0 state

現在讓我們把啟用的埠斷開連線並再次檢查狀態來確認主動備份設定是否像希望的那樣工作。

  1. # nmcli dev dis eno33554960

斷開啟用埠後再次用命令 #teamdctl team0 state 檢查狀態。

  1. # teamdctl team0 state

是的,它執行良好!!我們會使用下面的命令連線回到 team0 的斷開的連線。

  1. #nmcli dev con eno33554960

我們還有一個 teamnl 命令可以顯示 teamnl 命令的一些選項。

用下面的命令檢查在 team0 執行的埠。

  1. # teamnl team0 ports

顯示 team0 當前活動的埠。

  1. # teamnl team0 getoption activeport

好了,我們已經成功地設定了網絡卡系結 :-) ,如果有任何反饋,請告訴我們。

Ubuntu實現單網絡卡雙IP的方法  http://www.linuxidc.com/Linux/2015-04/115785.htm

在CentOS 7上給一個網絡卡分配多個IP地址  http://www.linuxidc.com/Linux/2015-03/115490.htm

Linux 雙網絡卡系結實踐  http://www.linuxidc.com/Linux/2015-02/113896.htm

CentOS/Linux 雙網絡卡系結單一IP,網絡卡熱備  http://www.linuxidc.com/Linux/2015-02/112963.htm

Linux系統雙網絡卡系結單個IP地址[CentOS]  http://www.linuxidc.com/Linux/2013-03/81493.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-05/117051.htm


IT145.com E-mail:sddin#qq.com