NIC Teaming on CentOS 7 with nmtui

來源:互聯網
上載者:User

標籤:ntui nmcli teaming

    NIC  Teaming on CentOS 7 with nmtui

    在Linux,可以將多個網路鏈路彙總成一個邏輯鏈路,可以增加網路輸送量或冗餘。例如,我們可以將IP地址分配給由兩個網路介面組成的組,使我們的輸送量加倍,或者為備份預留一個介面,如果第一個失敗,第二個網卡繼續工作。鏈路彙總在過去做了bond,但在RHEL7中,team將是首選方法。因為team可以彙總更高效,比bonding更具優勢。為team與bond差異列表。

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/8B/EC/wKioL1hczcnSs8bOAACd-15Ack8244.jpg-wh_500x0-wm_3-wmp_4-s_937913034.jpg" style="width:500px;height:400px;" title="11.jpg" width="500" height="400" border="0" hspace="0" vspace="0" alt="wKioL1hczcnSs8bOAACd-15Ack8244.jpg-wh_50" />

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8B/F0/wKiom1hczcrRbHp4AACYZ6ahjVU032.jpg-wh_500x0-wm_3-wmp_4-s_1445392253.jpg" style="width:500px;height:394px;" title="12.jpg" width="500" height="394" border="0" hspace="0" vspace="0" alt="wKiom1hczcrRbHp4AACYZ6ahjVU032.jpg-wh_50" />

這裡我們將介紹如何建立和配置具有兩個不同網路介面的team。

1、Teaming Daemon安裝

為了使用teaming功能,首先必須安裝teamd包,系統通常不會安裝。使用如下命令進行安裝。

#yum install teamd -y

2、nmtui配置teaming

首先查看系統當前connection及device配置

[[email protected] Desktop]# nmcli device status

DEVICE       TYPE      STATE         CONNECTION 

eno16777736  ethernet  disconnected  --         

eno33554992  ethernet  disconnected  --         

lo           loopback  unmanaged     --         

[[email protected] Desktop]# nmcli connection show

NAME  UUID  TYPE  DEVICE 

[[email protected] Desktop]# 

兩塊網卡上均沒有connection.執行nmtui配置teaming。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/8B/EC/wKioL1hcz1CyqRQEAAAlgZZ-1CI038.jpg-wh_500x0-wm_3-wmp_4-s_3443515883.jpg" style="width:300px;height:286px;" title="1.jpg" width="300" height="286" border="0" hspace="0" vspace="0" alt="wKioL1hcz1CyqRQEAAAlgZZ-1CI038.jpg-wh_50" />

選擇"edit a connection"移動游標至ok,斷行符號進入下一步。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/8B/F0/wKiom1hcz1CxbYIyAAAU9KMOqf8213.jpg-wh_500x0-wm_3-wmp_4-s_1684476114.jpg" style="width:300px;height:283px;" title="2.jpg" width="300" height="283" border="0" hspace="0" vspace="0" alt="wKiom1hcz1CxbYIyAAAU9KMOqf8213.jpg-wh_50" />

選擇add,斷行符號。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/8B/EC/wKioL1hcz1GTWSOvAAAnPvEGRv0762.jpg-wh_500x0-wm_3-wmp_4-s_4168408613.jpg" style="float:none;" title="3.jpg" alt="wKioL1hcz1GTWSOvAAAnPvEGRv0762.jpg-wh_50" />

選擇裝置類型team,crate.

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8B/F0/wKiom1hcz1OBpLSpAABclEgUn4c573.jpg-wh_500x0-wm_3-wmp_4-s_3610697771.jpg" style="float:none;" title="4.jpg" alt="wKiom1hcz1OBpLSpAABclEgUn4c573.jpg-wh_50" />

profile name根據需求設定,此處設定為myteam0,device也可以根據需求設定,此處設定為team0。設定完成後移動游標add處,添加slave裝置。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/8B/F0/wKiom1hcz1OwB_bsAAAr5Z6EY08568.jpg-wh_500x0-wm_3-wmp_4-s_3284477979.jpg" style="float:none;" title="5.jpg" alt="wKiom1hcz1OwB_bsAAAr5Z6EY08568.jpg-wh_50" />

選擇Ethernet類型建立

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8B/EC/wKioL1hcz1XCQnCBAABGnfWvqng002.jpg-wh_500x0-wm_3-wmp_4-s_1150848826.jpg" style="float:none;" title="6.jpg" alt="wKioL1hcz1XCQnCBAABGnfWvqng002.jpg-wh_50" />

profile name根據需求設定,此處設定為myteam0-port1,device設定為伺服器網卡裝置名稱。

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/8B/EC/wKioL1hcz1bzprREAABGDin8gHg371.jpg-wh_500x0-wm_3-wmp_4-s_3315588652.jpg" style="float:none;" title="7.jpg" alt="wKioL1hcz1bzprREAABGDin8gHg371.jpg-wh_50" />

同上添加第二塊網卡並設定profile name與device.設定完成後如結果。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8B/F0/wKiom1hcz1iCRA0iAABJWNwQG_E026.jpg-wh_500x0-wm_3-wmp_4-s_65197523.jpg" style="float:none;" title="8.jpg" alt="wKiom1hcz1iCRA0iAABJWNwQG_E026.jpg-wh_50" />

json配置,移動游標至Edit處,斷行符號將臨時開啟一個vim視窗,在vim視窗中輸入{ "runner": {"name": "loadbalance"}},

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/8B/F0/wKiom1hc1NfxazRlAAAgTIFpI1c288.jpg-wh_500x0-wm_3-wmp_4-s_3849457303.jpg" title="13.jpg" alt="wKiom1hc1NfxazRlAAAgTIFpI1c288.jpg-wh_50" />

儲存退出後,顯示如下。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8B/EC/wKioL1hcz1nR0tqIAABVlSJzdx4154.jpg-wh_500x0-wm_3-wmp_4-s_3713937211.jpg" style="float:none;" title="9.jpg" alt="wKioL1hcz1nR0tqIAABVlSJzdx4154.jpg-wh_50" />

配置ipv4,設定為manual,設定ip,網關,dns如下

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/8B/F0/wKiom1hcz1yAAzdYAAB9ts1jqGk373.jpg-wh_500x0-wm_3-wmp_4-s_1842941010.jpg" style="float:none;" title="10.jpg" alt="wKiom1hcz1yAAzdYAAB9ts1jqGk373.jpg-wh_50" />

完成後儲存退出,teaming配置完成自動建立相關設定檔,如下:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/8B/F1/wKiom1hc3kDT2kVcAABuWS6azks257.jpg-wh_500x0-wm_3-wmp_4-s_2938784208.jpg" title="14.jpg" alt="wKiom1hc3kDT2kVcAABuWS6azks257.jpg-wh_50" />

[[email protected] network-scripts]# cat ifcfg-myteam0

DEVICE=team0

TEAM_CONFIG="{\"runner\": {\"name\": \"loadbalance\"}}"

DEVICETYPE=Team

BOOTPROTO=none

DNS1=192.168.31.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=myteam0

UUID=1f4ed5e2-46a1-4dbf-a870-5b088957a434

ONBOOT=yes

IPADDR=192.168.31.108

PREFIX=24

GATEWAY=192.168.31.1

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

[[email protected] network-scripts]# cat ifcfg-myteam0-port1 

NAME=myteam0-port1

UUID=2b975876-780f-4181-971e-a79cf6a07a40

DEVICE=eno16777736

ONBOOT=yes

TEAM_MASTER=1f4ed5e2-46a1-4dbf-a870-5b088957a434

DEVICETYPE=TeamPort

[[email protected] network-scripts]# cat ifcfg-myteam0-port2

NAME=myteam0-port2

UUID=24e3ef82-fb93-4d11-9a6e-4c27227f7f66

DEVICE=eno33554992

ONBOOT=yes

TEAM_MASTER=1f4ed5e2-46a1-4dbf-a870-5b088957a434

DEVICETYPE=TeamPort

[[email protected] network-scripts]# 

再次查看當前connection狀態。

[[email protected] Desktop]# nmcli connection show

NAME           UUID                                  TYPE            DEVICE      

myteam0        1f4ed5e2-46a1-4dbf-a870-5b088957a434  team            team0       

myteam0-port2  24e3ef82-fb93-4d11-9a6e-4c27227f7f66  802-3-ethernet  eno33554992 

myteam0-port1  2b975876-780f-4181-971e-a79cf6a07a40  802-3-ethernet  eno16777736 

查看伺服器當前裝置的狀態。

[[email protected] Desktop]# nmcli device status

DEVICE       TYPE      STATE      CONNECTION    

eno16777736  ethernet  connected  myteam0-port1 

eno33554992  ethernet  connected  myteam0-port2 

team0        team      connected  myteam0       

lo           loopback  unmanaged  --       

查看ip地址資訊。     

[[email protected] Desktop]# ip a s

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000

    link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff

3: eno33554992: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000

    link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff

5: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 

    link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff

    inet 192.168.31.108/24 brd 192.168.31.255 scope global team0

       valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:fe51:e875/64 scope link tentative dadfailed 

       valid_lft forever preferred_lft forever

查看myteam0的詳細資料及狀態如下

[[email protected] Desktop]# teamdctl team0 state

setup:

  runner: loadbalance

ports:

  eno16777736

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 0

  eno33554992

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 0

通過teamnl查看slave網卡狀態

[[email protected] ~]# teamnl team0 ports

 3: eno33554992: up 1000Mbit FD 

 2: eno16777736: up 1000Mbit FD 

[[email protected] ~]# 

3、測試

在客戶及ping 192.168.31.108,然後在伺服器端斷開某塊網卡連結,ping命令不終端。

[[email protected] Desktop]# nmcli device disconnect eno16777736 

Device ‘eno16777736‘ successfully disconnected.

[[email protected] Desktop]# 

[[email protected] Desktop]# nmcli connection show

NAME           UUID                                  TYPE            DEVICE      

myteam0-port2  1a0f2bfd-cea1-4c7b-b2de-d34199b8561e  802-3-ethernet  eno33554992 

myteam0-port1  8e0c325c-d069-4014-bb75-1fa1f4674618  802-3-ethernet  --          

myteam0        e2976c8e-da7d-4901-88c6-db8a9913947c  team            team0       

[[email protected] Desktop]# nmcli device status

DEVICE       TYPE      STATE         CONNECTION    

eno33554992  ethernet  connected     myteam0-port2 

team0        team      connected     myteam0       

eno16777736  ethernet  disconnected  --            

lo           loopback  unmanaged     --            

[[email protected] Desktop]#

[[email protected] Desktop]# teamdctl team0 state

setup:

  runner: loadbalance

ports:

  eno33554992

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 0

[[email protected] Desktop]# 

取消連結後,查看用戶端ping未終端。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8B/ED/wKioL1hc1wzAGRZPAACXEWTc-u8793.jpg-wh_500x0-wm_3-wmp_4-s_2513332965.jpg" title="QQ20161223143054.jpg" alt="wKioL1hc1wzAGRZPAACXEWTc-u8793.jpg-wh_50" />

4、修改team配置

對於team的配置可以通過nmtui或者nmcli進行修改,nmtui開啟圖形,在json配置介面,選擇edit修改vim視窗的內容儲存退出即可。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/8B/F1/wKiom1hc3w6wjBxfAABXlf_RPfE174.jpg-wh_500x0-wm_3-wmp_4-s_3703600040.jpg" title="15.jpg" alt="wKiom1hc3w6wjBxfAABXlf_RPfE174.jpg-wh_50" />

[[email protected] Desktop]# nmcli connection down myteam0

Connection ‘myteam0‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)

[[email protected] Desktop]# nmcli connection show

NAME           UUID                                  TYPE            DEVICE 

myteam0-port1  2b975876-780f-4181-971e-a79cf6a07a40  802-3-ethernet  --     

myteam0-port2  24e3ef82-fb93-4d11-9a6e-4c27227f7f66  802-3-ethernet  --     

myteam0        1f4ed5e2-46a1-4dbf-a870-5b088957a434  team            --     

[[email protected] Desktop]# nmcli device status

DEVICE       TYPE      STATE         CONNECTION 

eno16777736  ethernet  disconnected  --         

eno33554992  ethernet  disconnected  --                

lo           loopback  unmanaged     --         

[[email protected] Desktop]# nmcli connection up myteam0-port1

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/12)

[[email protected] Desktop]# nmcli connection up myteam0-port2

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)

[[email protected] Desktop]# nmcli connection up myteam0

Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)

[[email protected] Desktop]# nmcli device status

DEVICE       TYPE      STATE      CONNECTION    

eno16777736  ethernet  connected  myteam0-port1 

eno33554992  ethernet  connected  myteam0-port2 

team0        team      connected  myteam0       

bond0        bond      unmanaged  --            

lo           loopback  unmanaged  --            

[[email protected] Desktop]# nmcli connection show

NAME           UUID                                  TYPE            DEVICE      

myteam0-port1  2b975876-780f-4181-971e-a79cf6a07a40  802-3-ethernet  eno16777736 

myteam0-port2  24e3ef82-fb93-4d11-9a6e-4c27227f7f66  802-3-ethernet  eno33554992 

myteam0        1f4ed5e2-46a1-4dbf-a870-5b088957a434  team            team0       

[[email protected] Desktop]# teamdctl team0 state

setup:

  runner: roundrobin

ports:

  eno16777736

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 0

  eno33554992

    link watches:

      link summary: up

      instance[link_watch_0]:

        name: ethtool

        link: up

        down count: 0

[[email protected] Desktop]# 

備忘:

(1)、team設定檔的可以看考/usr/share/doc/teamd-1.25/目錄中文檔的寫法,也可以參考

man teamd.conf協助內容

[[email protected] ~]# cd /usr/share/doc/teamd-1.25/

[[email protected] teamd-1.25]# ls

COPYING  example_configs  example_ifcfgs

[[email protected] teamd-1.25]# cd example_configs/

[[email protected] example_configs]# ls

activebackup_arp_ping_1.conf  activebackup_ethtool_3.conf    broadcast.conf      loadbalance_3.conf

activebackup_arp_ping_2.conf  activebackup_multi_lw_1.conf   lacp_1.conf         random.conf

activebackup_ethtool_1.conf   activebackup_nsna_ping_1.conf  loadbalance_1.conf  roundrobin_2.conf

activebackup_ethtool_2.conf   activebackup_tipc.conf         loadbalance_2.conf  roundrobin.conf

[[email protected] example_configs]#

(2)、runners available are listed below(配置時‘-‘去除輸入)

broadcast (data is transmitted over all ports)

round-robin (data is transmitted over all ports in turn)

active-backup (one port or link is used while others are kept as a backup)

loadbalance (with active Tx load balancing and BPF-based Tx port selectors)

lacp (implements the 802.3ad Link Aggregation Control Protocol)

本文出自 “技術成就夢想!” 部落格,請務必保留此出處http://dreamsanqin.blog.51cto.com/845412/1885538

NIC Teaming on CentOS 7 with nmtui

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.