next up previous contents
Next: 測試網路聚合 Up: Link Aggregation 網路聚合 Previous: 前言   Contents


建立網路聚合

  1. 多個網路連接埠整合成一個虛疑網路卡可增加原本單埠時的速度,使用 nmcli 語法:
    #nmcli con add type team con-name CNAME ifname INAME [config JSON]
    
  2. JSON (JavaScript Object Notation) 指定使用 runner,語法為:
    '{"runner":{"name":"METHOD"}}'
    
  3. METHOD 在 RHEL7/CentOS7 中支援的 Teaming 模式有 broadcast, activebackup, roundrubin, loadbalance 與 lacp 五種,細節可以參考 teamd.conf 手冊。
    [root@kvm7 ~]# man 5 teamd.conf
    
  4. 產生 team 介面卡之前,先查看目前主機有 ens3 eth0 eth1 三張網卡。
    [root@kvm7 ~]# ip link
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether 52:54:00:f4:2a:f2 brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
        link/ether 52:54:00:df:0f:85 brd ff:ff:ff:ff:ff:ff
    4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether 52:54:00:df:0f:85 brd ff:ff:ff:ff:ff:ff
    
  5. 使用 activebackup 模式產生一個名為 team0 的網路 team 介面。
    [root@kvm7 ~]# nmcli connection add type team con-name team0 ifname team0 \
    > config '{"runner": {"name": "activebackup"}}'
    Connection 'team0' (44e45c25-2927-4c68-be4c-609a0bf68589) successfully added.
    
  6. 查看網路連線,出現名為 team0 的連線,型態 team,裝置 team0。
    [root@kvm7 ~]# nmcli connection show 
    NAME   UUID                                  TYPE            DEVICE 
    eth1   fff87291-17ce-4efc-8f64-1ed67bb0e74f  802-3-ethernet  --     
    eth0   7eb4fe0a-26bf-4ac1-b857-274ea49e35b6  802-3-ethernet  --     
    team0  44e45c25-2927-4c68-be4c-609a0bf68589  team            team0  
    ens3   fd802c64-e692-4eac-af3c-74bfd26d397f  802-3-ethernet  ens3
    
  7. 指定 eth0 及 eth1 為 team0 的網路埠。
    [root@kvm7 ~]# nmcli connection add type team-slave \
    con-name team0-port1 ifname eth0 master team0 
    Connection 'team0-port1' (82157c4a-bc72-4f11-be50-0a137db84b87) \
    successfully added.
    [root@kvm7 ~]# nmcli connection add type team-slave \
    con-name team0-port2 ifname eth1 master team0 
    Connection 'team0-port2' (6133d289-675b-4edc-b768-8336194beeb0) \
    successfully added.
    
  8. 重啟網路。
    [root@kvm7 ~]# systemctl restart network.service
    
  9. 查看 team0 是不是包含 eth0 及 eth1 兩個成員埠。
    [root@kvm7 ~]# teamdctl team0 state
    setup:
      runner: activebackup
    ports:
      eth0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
      eth1
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
    runner:
      active port: eth0
    
  10. 設定 team0 綁定的 ip 192.168.122.17, netmask 255.255.255.0。因為要自行設定 IP, NETMASK 等參數,所以設定 team0 ipv4.method 為 manual,也就是手動,而不是 auto。
    [root@kvm7 ~]# nmcli connection modify team0 ipv4.addresses 192.168.122.17/24
    
  11. 啟動 team0。
    [root@kvm7 ~]# nmcli connection up team0
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
    
  12. 啟動 team0-port1, team0-port2。
    [root@kvm7 ~]# nmcli connection up team0-port1
    [root@kvm7 ~]# nmcli connection up team0-port2
    



2017-11-30