RHEL7/CentOS7雙網卡綁定-Network Teaming

來源:互聯網
上載者:User

標籤:綁定   bonding   teaming   rhel7   centos7   

RHEL7/CentOS7 Configure Network Teaming

Network Teaming可聯合或合并物理網路介面,形成具有較高輸送量或冗餘方式的邏輯網路介面。其作為網卡綁定的備選方式出現,在系統中和傳統的bonding方式並存。

1. 系統內容
[[email protected] ~]# uname -a[[email protected] ~]# uname -aLinux test03 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux[[email protected] ~]# ip addr show 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 forever2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:56:69:4d brd ff:ff:ff:ff:ff:ff    inet 192.168.231.13/24 brd 192.168.231.255 scope global eno16777736       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:fe56:694d/64 scope link        valid_lft forever preferred_lft forever3: eno33554992: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:56:69:57 brd ff:ff:ff:ff:ff:ff4: eno50332216: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:56:69:61 brd ff:ff:ff:ff:ff:ff
2. 雙網卡繫結目標
  • 網卡繫結模式:activebackup - 主備模式

    一個網卡處於活躍狀態,另一個處於備份狀態,所有流量都在主鏈路上處理,當活躍網卡down掉時,啟用備份網卡。

  • 綁定網卡:eno33554992+eno50332216=team0

    • 設定eno33554992為主網卡(優先處於活躍狀態),eno50332216為輔網卡(備份狀態,主網卡鏈路正常時,輔網卡處於備份狀態);-- 此時無需設定輔網卡粘滯位。

    • 設定eno33554992為主網卡,eno50332216為輔網卡,主網卡鏈路故障後,輔網卡切換為活躍狀態,主網卡鏈路恢複後,輔網卡仍保持活躍狀態直至其鏈路故障。 -- 此時需要設定輔網卡粘滯位{"sticky" true}。

3. 雙網卡綁定步驟3.1 查看物理網卡資訊:
[[email protected] network-scripts]# nmcli device DEVICE       TYPE      STATE      CONNECTION  eno16777736  ethernet  connected  eno16777736 eno33554992  ethernet  connected  eno33554992 eno50332216  ethernet  connected  eno50332216 lo           loopback  unmanaged  --   # 共四張網卡,lo為本地迴環網卡,另外三張為物理網卡。
3.2 查看網卡串連資訊
[[email protected] network-scripts]# nmcli connection show NAME         UUID                                  TYPE            DEVICE      eno50332216  36b38556-4bf8-4ce0-8045-4f5465530f67  802-3-ethernet  eno50332216 eno33554992  46831ccf-905b-4361-b5ba-c5448133e288  802-3-ethernet  eno33554992 eno16777736  613db14a-2375-4a89-b55a-d2abd8fc65d5  802-3-ethernet  eno16777736 
3.3 刪除網卡串連資訊

本次Network Teaming配置中,需要將eno33554992eno50332216綁定為team0,並且設定eno33554992為主網卡,首先需要這兩塊網卡現有的配置資訊,否則team0建立完成後,未刪除的網卡配置資訊會影響team0的正常工作。

如果nmcli connection show命令輸出中無將要進行配置的網卡串連資訊,則無需進行刪除操作。

[[email protected] network-scripts]# nmcli connection delete eno33554992 [[email protected] network-scripts]# nmcli connection delete eno50332216 [[email protected] network-scripts]# [[email protected] network-scripts]# nmcli connection show NAME         UUID                                  TYPE            DEVICE      eno16777736  613db14a-2375-4a89-b55a-d2abd8fc65d5  802-3-ethernet  eno16777736 # 網卡串連資訊刪除成功。# 這裡刪除的其實就是/etc/sysconfig/network-scripts目錄下兩塊網卡的設定檔。[[email protected] network-scripts]# pwd/etc/sysconfig/network-scripts[[email protected] network-scripts]# ls ifcfg-*ifcfg-eno16777736  ifcfg-lo
3.4 建立team0
[[email protected] network-scripts]# nmcli connection add type team ifname team0 con-name team0 config ‘{"runner": {"name":"activebackup"}}‘ ip4 192.168.231.100/24Connection ‘team0‘ (dfe2f884-40e0-4686-a7f9-2be4b1a4b5b2) successfully added.

裝置類型:team;裝置名稱和串連名稱:均為team0;繫結模式:activebackup - 主備模式;IP及子網路遮罩:192.168.231.100/24;

當然,也可以後續設定IP地址,樣本:

#建立team0並設定為主備模式[[email protected] network-scripts]# nmcli connection add type team ifname team0 con-name team0 config ‘{"runner": {"name":"activebackup"}}‘ #設定IP地址及子網路遮罩[[email protected] network-scripts]# nmcli connection modify team0 ipv4.addresses 192.168.231.100/24#設定IP地址擷取方法為手動[[email protected] network-scripts]# nmcli connection modify team0 ipv4.method manual

配置完成後,會在/etc/sysconfig/network-scripts目錄下產生ifcfg-team0的設定檔

[[email protected] network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-team0 DEVICE=team0TEAM_CONFIG="{\"runner\": {\"name\":\"activebackup\"}}"DEVICETYPE=TeamBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noNAME=team0UUID=dfe2f884-40e0-4686-a7f9-2be4b1a4b5b2ONBOOT=yesIPADDR=192.168.231.100PREFIX=24IPV6_PEERDNS=yesIPV6_PEERROUTES=yes
3.5 將兩塊網卡添加進team0
# 添加網卡eno33554992,裝置類型:team-slave;串連名稱:team0-p1;master:team0;優先順序:100[[email protected] network-scripts]# nmcli connection add type team-slave ifname eno33554992 con-name team0-p1 master team0 config ‘{"prio": 100}‘Connection ‘team0-p1‘ (4c8901c7-0246-47ce-8d5a-272f23f88d70) successfully added.# 添加網卡eno50332216,裝置類型:team-slave;串連名稱:team0-p1;master:team0;優先順序:-10; 粘滯位:true(sticky標誌請根據實際需要設定)[[email protected] network-scripts]# nmcli connection add type team-slave ifname eno50332216 con-name team0-p2 master team0 config ‘{"prio": -10,"sticky": true}‘Connection ‘team0-p2‘ (d898f1f5-bb0f-496e-8cdd-7f3898c2a482) successfully added.

本次配置中eno33554992為主網卡,設定其優先順序為100;eno50332216為輔網卡,設定其優先順序為-10,粘滯位為true。

prio:優先順序。

數字越大,網卡優先順序越高,優先為活躍網卡;若不設定優先權,則預設為0,先接入網路的網卡為活躍網卡,另一塊為備份網卡,直至活躍網卡中斷連線,備份網卡自動升級為活躍網卡,兩塊網卡角色互換。

sticky:粘滯位,預設為false;

  • 輔網卡eno50332216中設定了sticky為true,代表如果輔網卡串連狀態變為為活躍狀態後,無論主網卡串連是否正常,其將會一直保持為活躍狀態。

  • 若不設定sticky,在輔網卡為活躍狀態時,若主網卡串連恢複正常,則活躍網卡由主網卡接管,輔網卡會變為備份狀態。

可根據實際需要進行參數設定。

配置完成後,此時會在/etc/sysconfig/network-scripts目錄下產生ifcfg-team0-p1,ifcfg-team0-p2的設定檔:

[[email protected] network-scripts]# cat ifcfg-team0-p1TEAM_PORT_CONFIG="{\"prio\": 100}"NAME=team0-p1UUID=4c8901c7-0246-47ce-8d5a-272f23f88d70DEVICE=eno33554992ONBOOT=yesTEAM_MASTER=team0DEVICETYPE=TeamPort[[email protected] network-scripts]# cat ifcfg-team0-p2TEAM_PORT_CONFIG="{\"prio\": -10,\"sticky\": true}"NAME=team0-p2UUID=d898f1f5-bb0f-496e-8cdd-7f3898c2a482DEVICE=eno50332216ONBOOT=yesTEAM_MASTER=team0DEVICETYPE=TeamPort
4. 啟用team0及其子網卡
# 啟用team0-p1 [[email protected] ~]# nmcli connection up team0-p1 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)# 啟用team0-p2[[email protected] ~]# nmcli connection up team0-p2Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)# 啟用team0[[email protected] ~]# nmcli connection up team0Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
5. team0狀態查看5.1 查看team0工作狀態:
# 查看當前活躍網卡[[email protected] network-scripts]# nmcli connection show --active NAME         UUID                                  TYPE            DEVICE      team0-p1     4c8901c7-0246-47ce-8d5a-272f23f88d70  802-3-ethernet  eno33554992 eno16777736  613db14a-2375-4a89-b55a-d2abd8fc65d5  802-3-ethernet  eno16777736 team0        d6e07840-dff8-49e9-a23c-35eb0cc0ec4b  team            team0       team0-p2     d898f1f5-bb0f-496e-8cdd-7f3898c2a482  802-3-ethernet  eno50332216 #查看team0連接埠狀態[[email protected] network-scripts]# teamnl team0 ports 4: eno50332216: up 1000Mbit FD  3: eno33554992: up 1000Mbit FD   [[email protected] network-scripts]# teamdctl team0 statsetup:  runner: activebackupports:  eno33554992    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: up  eno50332216    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: uprunner:  active port: eno33554992
5.2 查看team0詳細配置
# 查看team0詳細配置[[email protected] network-scripts]# teamdctl team0 config dump{    "device": "team0",    "mcast_rejoin": {        "count": 1    },    "notify_peers": {        "count": 1    },    "ports": {        "eno33554992": {            "link_watch": {                "name": "ethtool"            },            "prio": 100        },        "eno50332216": {            "link_watch": {                "name": "ethtool"            },            "prio": -10,            "sticky": true        }    },    "runner": {        "name": "activebackup"    }}# 單獨查看team0子網卡詳細配置[[email protected] network-scripts]# teamdctl team0 port config dump eno33554992{    "link_watch": {        "name": "ethtool"    },    "prio": 100}[[email protected] network-scripts]# teamdctl team0 port config dump eno50332216{    "link_watch": {        "name": "ethtool"    },    "prio": -10,    "sticky": true}
6. team0切換測試
[[email protected] ~]# teamdctl team0 stat setup:  runner: activebackupports:  eno33554992    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: up  eno50332216    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: uprunner:  active port: eno33554992

當前活躍子網卡為eno33554992,ping team0的IP地址一直可以ping通。現在將該網卡中斷連線:

# 斷開team0-p1的網路連接[[email protected] ~]# nmcli connection down team0-p1 Connection ‘team0-p1‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)# 查看team0串連狀態[[email protected] ~]# teamdctl team0 stat setup:  runner: activebackupports:  eno50332216    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: uprunner:  active port: eno50332216  # 活躍網卡變為eno50332216,ping測試短暫中斷後恢複。來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64來自 192.168.231.100 的回複: 位元組=32 時間=1ms TTL=64來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64請求逾時。請求逾時。來自 192.168.231.100 的回複: 位元組=32 時間=1ms TTL=64來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64

由於本次測試在虛擬機器中進行,ping測試會出現較明顯的中斷,在真實的物理機上測試時,ping測試會一直正常或出現短暫中斷後恢複。

官方文檔推薦使用:nmcli device [disconnect|connect] ifname命令來進行網卡的斷開和串連操作,但在虛擬機器上使用此方法斷開網卡串連後,恢複網卡串連時會報錯,這裡使用命令nmcli connection [down|up] ifname進行操作。

當前活躍網卡為輔網卡eno50332216,現在串連主網卡:

# 恢複team0-p1的網路連接[[email protected] ~]# nmcli connection up team0-p1 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)# 查看team0的串連狀態[[email protected] ~]# teamdctl team0 stat setup:  runner: activebackupports:  eno33554992    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: up  eno50332216    link watches:      link summary: up      instance[link_watch_0]:        name: ethtool        link: uprunner:  active port: eno50332216# ping測試短暫中斷後恢複來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64請求逾時。請求逾時。來自 192.168.231.100 的回複: 位元組=32 時間=1ms TTL=64來自 192.168.231.100 的回複: 位元組=32 時間<1ms TTL=64

由於本次測試在虛擬機器中進行,ping測試會出現較明顯的中斷,在真實的物理機上測試時,ping測試會一直正常或出現短暫中斷後恢複。

在主網卡串連恢複正常後,查看team0發現當前活躍網卡仍為輔網卡eno50332216,沒有將活躍網卡切換為主網卡eno33554992,原因是在輔網卡中設定了粘滯位sticky=true,sticky標誌使輔網卡為活躍狀態後,若其網路連接不發生故障,則會一直保持其為活躍網卡。

如果在輔網卡配置中不設定sticky標誌,主網卡串連恢複正常後,活躍網卡由主網卡接管,輔網卡會變為備份狀態。

7. 雙網卡綁定各模式設定檔樣本

對於各種雙網卡綁定配置模式,請參考系統中的樣本檔案,檔案位置:

/usr/share/doc/teamd-xx/example_configs/



本文出自 “未來人” 部落格,請務必保留此出處http://zaa47.blog.51cto.com/6181689/1925126

RHEL7/CentOS7雙網卡綁定-Network Teaming

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.