RH134小结(七)nmcli配置链路聚合

本篇本属于rh254的内容,不过刚好提到了nmcli ,这里也把链路聚合也放在一起记录下。centos6/rhel6 默认的链路聚合使用的是bond ---可以参看我之前的博文linux bonding配置 。在centos7/redhat7中虽然依旧保留的有bonding内核模块(bond功能对应的模块是bonding),同样也可以使用bond模块配置链路聚合,不过默认情况下NetworkManager程序中集成了teamd功能就来配置链路聚合。

一、实验目的

我主机上有两块网卡eth1和eth2,将这两块链路聚合配置为active-backup主备模式,IP地址为172.16.1.100/255.255.255.0 。

二、teamed的配置

1、nmcli-examples

由于nmcli 下的命令都比较长,所以我们不用死记,新版里的帮助和命令参数的tab补全特别好用,可以帮助我们搞定记不住的东西。首先man nmcli-examples查看

# man nmcli-examples
Example 6. Adding a bonding master and two slave connection profiles
    $ nmcli con add type bond ifname mybond0 mode active-backup
    $ nmcli con add type bond-slave ifname eth1 master mybond0
    $ nmcli con add type bond-slave ifname eth2 master mybond0
Example 7. Adding a team master and two slave connection profiles
    $ nmcli con add type team con-name Team1 ifname Team1 config team1-master-json.conf
    $ nmcli con add type team-slave con-name Team1-slave1 ifname em1 master Team1
    $ nmcli con add type team-slave con-name Team1-slave2 ifname em2 master Team1

我这里只选取了example 6和example 7两个样例的内容,其中例6是bond的配置、例7是team 的配置方法。本篇我们讲到的是teamd ,所以这里看例7 。

2、teamd.conf

查看teamd.conf的man手册时注意:由于有man teamd ,也有man teamd.conf 。其中一个是命令的帮助,一个是配置文件的帮助。不要搞混了,我们查看的是配置文件的。

# man teamd.conf
EXAMPLES
       {
         "device": "team0",
         "runner": {"name": "roundrobin"},
         "ports": {"eth1": {}, "eth2": {}}
       }
       Very basic configuration.
       {
         "device": "team0",
         "runner": {"name": "activebackup"},
         "link_watch": {"name": "ethtool"},
         "ports": {
           "eth1": {
             "prio": -10,
             "sticky": true
           },
           "eth2": {
             "prio": 100
           }
         }
       }

在examples 项我们可以找到上面的部分,我们只取runner 的值,其他部分我们不需要。

3、teamed的配置

# nmcli con add type team con-name team1 ifname team1 config '{"runner": {"name":"activebackup"}}'
# nmcli con add type team-slave con-name Team1-slave1 ifname eth1 master Team1
# nmcli con add type team-slave con-name Team1-slave2 ifname eth2 master Team1

为Team1接口配置IP地址

# nmcli connection modify team0 ipv4.addresses "172.16.1.100/24"  ipv4.method manual
需要配置网关和DNS时,可以修改为下面的配置
# nmcli connection modify team0 ipv4.addresses "172.16.1.100/24 172.16.1.1"  ipv4.dns "114.114.114.114 8.8.8.8"  ipv4.method manual 

4、启用Team1节口

# nmcli connection up

5、查看验证

# teamdctl team1 state
setup:
  runner: activebackup
ports:
  eth1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
  eth2
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
runner:
  active port: eth1   

teamnl查看验证

# teamnl team1 ports
 4: eth1: up 1000Mbit FD
 3: eth2: up 1000Mbit FD
# teamnl team1 options
 queue_id (port:eth2) 0
 priority (port:eth2) 0
 user_linkup_enabled (port:eth2) false
 user_linkup (port:eth2) true
 enabled (port:eth2) true
 queue_id (port:eth1) 0
 priority (port:eth1) 0
 user_linkup_enabled (port:eth1) false
 user_linkup (port:eth1) true
 enabled (port:eth1) true
 mcast_rejoin_interval 0
 mcast_rejoin_count 0
 notify_peers_interval 0
 notify_peers_count 0
 mode activebackup

禁用一块网卡:

# nmcli device disconnect eth2

显示当前活动的网口

# teamnl team1 getoption activeport

注意,查看活动的网口时,返回的是数字。该数字和teamnl team1 ports前查到的数字对应。

不过感觉命令操作麻烦的,也可以通过nmtui 或 nm-connection-editor 工具进行图形配置,如下:

nmtui teamed




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: Linux/unix/mac 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.