配置Network Teaming

1.什么是Network Teaming

现在的服务器至少都有两块网卡,如何同时充分利用这两张网卡,RHEL7(centos7)上推出了它的新应用Network Teaming。Network Teaming简单来说就是讲多个网卡绑定在一起,在逻辑上就相当于一个网卡,它可以提高网络的吞吐量与容错。在RHEL(centos7)中使用的是Teaming技术,而在REHL6(centos6)使用的是Bonding技术的应用。Network Teaming不同于旧版中Bonding技术,它提供更好的性能和扩展性
,Network Teaming由内核驱动和teamd守护进程实现。配置Teaming有两种方式,第一种是使用nmcli命令,第二种就是直接改配置文件。

2.配置方法及测试

Teaming有以下种模式:

broadcast
roundrobin
activebackup
loadbalance
lacp(implements the 802.3ad Link Aggregation Control Protocol)

常见的模式有activebackup模式、roundrobin模式
activebackup模式:
activebackup是主备模式,不需要交换机的支持,当网卡绑定成这种模式后,运行时一个物理网卡的状态是主的,另一个网卡的状态是备用的,平时是利用主网卡传输数据包,当主网卡损坏或意外失效时,备用的网卡就会接替主网卡,进行工作。
以下操作在centos7下操作,与REHL不同仅是开源免费使用,内核都是一样的。
activebackup模式配置如下:
(1) 首先查看该服务器的网卡:

[root@cnetos7 ~]#ip a 注:ip a 是ip addr的缩写,也可以用ifconfig命令查看
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a2:3e:3c brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.134/24 brd 192.168.18.255 scope global dynamic ens33
       valid_lft 1798sec preferred_lft 1798sec
    inet6 fe80::8e0e:39e3:b318:863f/64 scope link 
       valid_lft forever preferred_lft forever
3: ens34:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a2:3e:46 brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.133/24 brd 192.168.18.255 scope global dynamic ens34
       valid_lft 1798sec preferred_lft 1798sec
    inet6 fe80::c4db:7bad:474f:7c55/64 scope link 
       valid_lft forever preferred_lft forever
从上面可以观察到有两块网卡ens33与ens34.
或用nmcli connection show也可以看出
[root@cnetos7 network-scripts]#nmcli connection show 
名称        UUID                                  类型            设备  
ens33       9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  ens33 
ens34       a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  ens34 

(2) 创建Team接口Team0,和设置teaming模式为activebackup

[root@cnetos7 network-scripts]#nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
成功添加的连接 'team0'(587accc9-9c55-4b5b-830f-22ad8e1eaff2)。
注:add 这里是添加
    type team:类型team
    con-name team0:起一个team的名字team0 
    ifname team0 :起连接的设备名字team0 
    '{"runner":{"name":"activebackup"}}'模式为activebackup的模式
[root@cnetos7 network-scripts]#nmcli connection show  注:已成功添加team0
名称        UUID                                  类型            设备  
ens33       9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  ens33 
ens34       a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  ens34 
team0       587accc9-9c55-4b5b-830f-22ad8e1eaff2  team            team0 

(3)为Team0添加网络

[root@cnetos7 network-scripts]#nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.18.100/24
注:这里注意ipv4.method manual用手动指定,添加了一个ipv4.addresses 192.168.18.100/24的地址。
[root@cnetos7 network-scripts]#nmcli connection up team0  注:激活team0
成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/26)

(4)ping 测试连通性

[root@centos7 ~]#ping 192.168.18.100
PING 192.168.18.100 (192.168.18.100) 56(84) bytes of data.
From 192.168.18.22 icmp_seq=1 Destination Host Unreachable
From 192.168.18.22 icmp_seq=2 Destination Host Unreachable
From 192.168.18.22 icmp_seq=3 Destination Host Unreachable
From 192.168.18.22 icmp_seq=4 Destination Host Unreachable
From 192.168.18.22 icmp_seq=5 Destination Host Unreachable
From 192.168.18.22 icmp_seq=6 Destination Host Unreachable
From 192.168.18.22 icmp_seq=7 Destination Host Unreachable
From 192.168.18.22 icmp_seq=8 Destination Host Unreachable
From 192.168.18.22 icmp_seq=9 Destination Host Unreachable
From 192.168.18.22 icmp_seq=10 Destination Host Unreachable
64 bytes from 192.168.18.100: icmp_seq=11 ttl=64 time=1003 ms
64 bytes from 192.168.18.100: icmp_seq=12 ttl=64 time=2.64 ms
64 bytes from 192.168.18.100: icmp_seq=13 ttl=64 time=0.317 ms
64 bytes from 192.168.18.100: icmp_seq=14 ttl=64 time=0.297 ms
64 bytes from 192.168.18.100: icmp_seq=15 ttl=64 time=0.305 ms
64 bytes from 192.168.18.100: icmp_seq=16 ttl=64 time=0.365 ms
64 bytes from 192.168.18.100: icmp_seq=17 ttl=64 time=0.339 ms
64 bytes from 192.168.18.100: icmp_seq=18 ttl=64 time=0.359 ms
...........
注:刚开始我们没有添加分配ip,这里是ping不通,但一旦分配了ip启用了我们就能ping通。

(5)把物理接口加入到team0

[root@cnetos7 network-scripts]#nmcli connection add type team-slave ifname ens33 master team0
成功添加的连接 'team-slave-ens33'(d17e1033-bdd0-4964-bb91-655160e1a3f7)。
[root@cnetos7 network-scripts]#nmcli connection add type team-slave ifname ens34 master team0 
成功添加的连接 'team-slave-ens34'(863ef795-fda1-4e45-877e-5acda2179f0f)。
[root@cnetos7 network-scripts]#nmcli connection show  注:查看添加连接情况
名称              UUID                                  类型            设备 
ens33             9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  ens33    
ens34             a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  ens34
team0             587accc9-9c55-4b5b-830f-22ad8e1eaff2  team            team0 
team-slave-ens33  d17e1033-bdd0-4964-bb91-655160e1a3f7  802-3-ethernet  --  注:这里我们只是关联成功,还没有启用。
team-slave-ens34  863ef795-fda1-4e45-877e-5acda2179f0f  802-3-ethernet  -- 

(6)激活关联的网卡设备

[root@cnetos7 network-scripts]#nmcli connection up team-slave-ens33
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/27)
[root@cnetos7 network-scripts]#nmcli connection up team-slave-ens34
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/28)
[root@cnetos7 network-scripts]#nmcli connection show 
名称              UUID                                  类型            设备  
team-slave-ens33  d17e1033-bdd0-4964-bb91-655160e1a3f7  802-3-ethernet  ens33 
team-slave-ens34  863ef795-fda1-4e45-877e-5acda2179f0f  802-3-ethernet  ens34 
team0             587accc9-9c55-4b5b-830f-22ad8e1eaff2  team            team0 
ens33             9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  --    
ens34             a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  -- 
注:这里以成功激活连接网。,

(7)用teamdctl team0 state查看team0状态

[root@cnetos7 network-scripts]#teamdctl team0 state
setup:
  runner: activebackup
ports:
  ens33
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens34
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens33
注:从上面看到,teaming的模式为activebackup,同时有两个物理接口
分别是ens33与ens34,都是up状态,此时ens33作为主网卡使用。

到这里我们已经成功组建了teaming
(8)测试,加入我们让ens33网卡模拟失效,观看teaming的状态。

[root@cnetos7 network-scripts]#teamdctl team0 state
setup:
  runner: activebackup
ports:
  ens34
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens34 注:此时ens34自动接替ens33.
[root@cnetos7 network-scripts]#nmcli connection show 
名称              UUID                                  类型            设备  
team-slave-ens34  863ef795-fda1-4e45-877e-5acda2179f0f  802-3-ethernet  ens34 
team0             587accc9-9c55-4b5b-830f-22ad8e1eaff2  team            team0 
ens33             9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  --    
ens34             a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  --    
team-slave-ens33  d17e1033-bdd0-4964-bb91-655160e1a3f7  802-3-ethernet  --   
[root@centos7 ~]#ping 192.168.18.100 
PING 192.168.18.100 (192.168.18.100) 56(84) bytes of data.
64 bytes from 192.168.18.100: icmp_seq=1 ttl=64 time=0.532 ms
64 bytes from 192.168.18.100: icmp_seq=2 ttl=64 time=0.314 ms
64 bytes from 192.168.18.100: icmp_seq=3 ttl=64 time=0.319 ms
64 bytes from 192.168.18.100: icmp_seq=4 ttl=64 time=0.473 ms
64 bytes from 192.168.18.100: icmp_seq=5 ttl=64 time=0.416 ms
64 bytes from 192.168.18.100: icmp_seq=6 ttl=64 time=0.362 ms
64 bytes from 192.168.18.100: icmp_seq=7 ttl=64 time=0.435 ms
64 bytes from 192.168.18.100: icmp_seq=8 ttl=64 time=0.510 ms
64 bytes from 192.168.18.100: icmp_seq=9 ttl=64 time=0.320 ms
64 bytes from 192.168.18.100: icmp_seq=10 ttl=64 time=0.377 ms
64 bytes from 192.168.18.100: icmp_seq=11 ttl=64 time=0.304 ms
64 bytes from 192.168.18.100: icmp_seq=12 ttl=64 time=0.295 ms
64 bytes from 192.168.18.100: icmp_seq=13 ttl=64 time=0.264 ms
64 bytes from 192.168.18.100: icmp_seq=14 ttl=64 time=0.302 ms
64 bytes from 192.168.18.100: icmp_seq=15 ttl=64 time=0.346 ms
64 bytes from 192.168.18.100: icmp_seq=16 ttl=64 time=0.312 ms
64 bytes from 192.168.18.100: icmp_seq=17 ttl=64 time=0.300 ms
64 bytes from 192.168.18.100: icmp_seq=18 ttl=64 time=0.346 ms
64 bytes from 192.168.18.100: icmp_seq=19 ttl=64 time=0.350 ms
64 bytes from 192.168.18.100: icmp_seq=20 ttl=64 time=0.343 ms
64 bytes from 192.168.18.100: icmp_seq=21 ttl=64 time=0.291 ms
64 bytes from 192.168.18.100: icmp_seq=22 ttl=64 time=0.325 ms
注:ping继续能ping通

roundrobin模式
roundrobin模式也称为轮循模式,它是基于每一个包的,当某一台服务器的两个网卡设置为roundrobin模式的Teaming,此时服务器发出的数据包,就会在两个物理网卡上进行轮循,即第一个数据包走第一个网卡,第二个数据包走第二个网卡,依次轮循。
(1)修改team0配置文件。(如果想重新设置按上面的步骤亦可,因做过activebackup模式,故此也可以直接修改配置文件)

[root@cnetos7 network-scripts]#cat ifcfg-team0
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=587accc9-9c55-4b5b-830f-22ad8e1eaff2
ONBOOT=yes
DEVICETYPE=Team
IPADDR=192.168.18.100
PREFIX=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
[root@cnetos7 network-scripts]#cat ifcfg-team0
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"roundrobin\"}}"
注:在这项把上面的activebackup改成roundrobin。
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=587accc9-9c55-4b5b-830f-22ad8e1eaff2
ONBOOT=yes
DEVICETYPE=Team
IPADDR=192.168.18.100
PREFIX=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

(2)让配置文件文件生效,先让team停止。

[root@cnetos7 network-scripts]#nmcli connection down team0
成功取消激活连接 'team0'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/41)
[root@cnetos7 network-scripts]#systemctl restart network 注:这里最好重启下网络服务
[root@cnetos7 network-scripts]#nmcli connection up team0 重新激活team0
成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/47)
注:如果只重新启用team0,team-slave-ens34和team-slave-ens33不会一并重新激活启用,这里要自己手动在激活一次。
[root@cnetos7 network-scripts]#nmcli connection up team-slave-ens34
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/48)
[root@cnetos7 network-scripts]#nmcli connection up team-slave-ens33
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/49)

(3)查看team0状态

[root@cnetos7 network-scripts]#teamdctl team0 state
setup:
  runner: roundrobin  注:这里已经从原来的activebackup模式改为roundrobin模式
ports:
  ens33
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens34
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0

3.删除teaming

(1)删除前我们应该停止team0的工作。

[root@cnetos7 network-scripts]#nmcli connection show 
名称              UUID                                  类型            设备  
team-slave-ens33  d17e1033-bdd0-4964-bb91-655160e1a3f7  802-3-ethernet  ens33 
team-slave-ens34  863ef795-fda1-4e45-877e-5acda2179f0f  802-3-ethernet  ens34 
team0             587accc9-9c55-4b5b-830f-22ad8e1eaff2  team            team0 
ens33             9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  --    
ens34             a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  --    
[root@cnetos7 network-scripts]#nmcli connection down team0
成功取消激活连接 'team0'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/47)
[root@cnetos7 network-scripts]#nmcli connection show 
名称              UUID                                  类型            设备  
ens33             9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  ens33 
ens34             a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  ens34 
team-slave-ens33  d17e1033-bdd0-4964-bb91-655160e1a3f7  802-3-ethernet  --    
team-slave-ens34  863ef795-fda1-4e45-877e-5acda2179f0f  802-3-ethernet  --    
team0             587accc9-9c55-4b5b-830f-22ad8e1eaff2  team            --    
此时原有的ens33与ens34接替工作。

(2)删除team0的配置文件

[root@cnetos7 network-scripts]#ls 用lsl列出网络配置里的文件
ifcfg-ens33             ifdown-ipv6      ifup-bnep    ifup-sit
ifcfg-ens34             ifdown-isdn      ifup-eth     ifup-Team
ifcfg-lo                ifdown-post      ifup-ib      ifup-TeamPort
ifcfg-team0             ifdown-ppp       ifup-ippp    ifup-tunnel
ifcfg-team-slave-ens33  ifdown-routes    ifup-ipv6    ifup-wireless
ifcfg-team-slave-ens34  ifdown-sit       ifup-isdn    init.ipv6-global
ifdown                  ifdown-Team      ifup-plip    network-functions
ifdown-bnep             ifdown-TeamPort  ifup-plusb   network-functions-ipv6
ifdown-eth              ifdown-tunnel    ifup-post
ifdown-ib               ifup             ifup-ppp
ifdown-ippp             ifup-aliases     ifup-routes
[root@cnetos7 network-scripts]#nmcli connection delete team0  删除team0
成功删除连接 'team0'(587accc9-9c55-4b5b-830f-22ad8e1eaff2)。
[root@cnetos7 network-scripts]#nmcli connection delete team-slave-ens33   删除team-slave-ens33
成功删除连接 'team-slave-ens33'(d17e1033-bdd0-4964-bb91-655160e1a3f7)。
[root@cnetos7 network-scripts]#nmcli connection delete team-slave-ens34   删除team-slave-ens34
成功删除连接 'team-slave-ens34'(863ef795-fda1-4e45-877e-5acda2179f0f)。
[root@cnetos7 network-scripts]#ls  注:查看此时删掉了关于team0配置文件
ifcfg-ens33  ifdown-ipv6      ifdown-tunnel  ifup-isdn    ifup-TeamPort
ifcfg-ens34  ifdown-isdn      ifup           ifup-plip    ifup-tunnel
ifcfg-lo     ifdown-post      ifup-aliases   ifup-plusb   ifup-wireless
ifdown       ifdown-ppp       ifup-bnep      ifup-post    init.ipv6-global
ifdown-bnep  ifdown-routes    ifup-eth       ifup-ppp     network-functions
ifdown-eth   ifdown-sit       ifup-ib        ifup-routes  network-functions-ipv6
ifdown-ib    ifdown-Team      ifup-ippp      ifup-sit
ifdown-ippp  ifdown-TeamPort  ifup-ipv6      ifup-Team

(3)查看网路配置是否恢复到最开始没有配置的状态。

[root@cnetos7 network-scripts]#nmcli connection show 
名称        UUID                                  类型            设备  
ens33       9a06e4c2-8a29-4b12-8795-06c2cb84fe24  802-3-ethernet  ens33 
ens34       a87b61c4-a519-490c-bef2-5ce6c01627a7  802-3-ethernet  ens34 
[root@cnetos7 network-scripts]#ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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
3: ens34:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a2:3e:46 brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.133/24 brd 192.168.18.255 scope global dynamic ens34
       valid_lft 1287sec preferred_lft 1287sec
    inet6 fe80::c4db:7bad:474f:7c55/64 scope link 
       valid_lft forever preferred_lft forever
13: ens33:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a2:3e:3c brd ff:ff:ff:ff:ff:ff
    inet 192.168.18.134/24 brd 192.168.18.255 scope global dynamic ens33
       valid_lft 1287sec preferred_lft 1287sec
    inet6 fe80::8e0e:39e3:b318:863f/64 scope link 
       valid_lft forever preferred_lft forever
注:这里已经恢复到原有状态。

RHEL7(centos7)的网卡绑定技术,不仅可以实现沉余还可以提高网络的吞吐量。还有多种模式可以选择,有效的利用了两块网卡。

如有不足请多多指教!

你可能感兴趣的:(配置Network Teaming)