美文网首页
配置Network Teaming

配置Network Teaming

作者: jie0112 | 来源:发表于2017-07-02 15:58 被阅读0次

    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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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

          本文链接:https://www.haomeiwen.com/subject/qgpgcxtx.html