设为首页 收藏本站
查看: 555|回复: 0

[经验分享] NIC Teaming on CentOS 7 with nmcli

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-4-24 08:15:00 | 显示全部楼层 |阅读模式
NIC  Teaming on CentOS 7 with nmcli
1、Teaming Daemon安装
为了使用teaming功能,首先必须安装teamd包,系统通常不会安装。使用如下命令进行安装。
#yum install teamd -y

2、nmcli配置teaming
首先查看系统当前connection及device配置
  [root@MiWiFi-R3-srv Desktop]# nmcli connection  show
  NAME  UUID  TYPE  DEVICE
  [root@MiWiFi-R3-srv Desktop]# nmcli device status
  DEVICE       TYPE      STATE         CONNECTION
  eno16777736  ethernet  disconnected  --         
  eno33554992  ethernet  disconnected  --         
  lo           loopback  unmanaged     --         
  [root@MiWiFi-R3-srv Desktop]#
创建teaming接口

#nmcli con add type team con-name myteam0 ifname team0 config '{ "runner": {"name": "loadbalance"}}'
配置team静态ip
#nmcli con mod myteam0 ipv4.addresses 192.168.31.108/24
#nmcli con mod myteam0 ipv4.gateway 192.168.31.1
#nmcli con mod myteam0 ipv4.method manual
添加eno16777736、eno33554992至myteam0中。
#nmcli con add type team-slave con-name myteam0-port1 ifname eno16777736 master myteam0
#nmcli con add type team-slave con-name myteam0-port2 ifname eno33554992 master myteam0
激活taaming接口
#nmcli con up myteam0
检查配置
[root@MiWiFi-R3-srv Desktop]# nmcli connection  show
NAME           UUID                                  TYPE            DEVICE      
myteam0-port2  1a0f2bfd-cea1-4c7b-b2de-d34199b8561e  802-3-ethernet  eno33554992
myteam0-port1  8e0c325c-d069-4014-bb75-1fa1f4674618  802-3-ethernet  eno16777736
myteam0        e2976c8e-da7d-4901-88c6-db8a9913947c  team            team0      
[root@MiWiFi-R3-srv Desktop]# nmcli device status
DEVICE       TYPE      STATE      CONNECTION   
eno16777736  ethernet  connected  myteam0-port1
eno33554992  ethernet  connected  myteam0-port2
team0        team      connected  myteam0      
lo           loopback  unmanaged  --            
[root@MiWiFi-R3-srv Desktop]# ip a s
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 forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000
    link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
3: eno33554992: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000
    link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
4: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.108/24 brd 192.168.31.255 scope global team0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe51:e875/64 scope link tentative dadfailed
       valid_lft forever preferred_lft forever
[root@MiWiFi-R3-srv ~]# teamdctl team0 state
setup:
  runner: loadbalance
ports:
  eno16777736
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  eno33554992
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0

通过teamnl查看slave网卡状态
[root@MiWiFi-R3-srv ~]# teamnl team0 ports
3: eno33554992: up 1000Mbit FD
2: eno16777736: up 1000Mbit FD
[root@MiWiFi-R3-srv ~]#

  3、nmcli修改teaming runner配置
[root@MiWiFi-R3-srv Desktop]#nmcli connection modify myteam0 team.config '{ "runner": {"name": "roundrobin"}}'
需要重启下team0方可生效[root@MiWiFi-R3-srv Desktop]# nmcli connection down myteam0
Connection 'myteam0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
[root@MiWiFi-R3-srv Desktop]# nmcli connection show
NAME           UUID                                  TYPE            DEVICE
myteam0-port1  2b975876-780f-4181-971e-a79cf6a07a40  802-3-ethernet  --     
myteam0-port2  24e3ef82-fb93-4d11-9a6e-4c27227f7f66  802-3-ethernet  --     
myteam0        1f4ed5e2-46a1-4dbf-a870-5b088957a434  team            --     
[root@MiWiFi-R3-srv Desktop]# nmcli device status
DEVICE       TYPE      STATE         CONNECTION
eno16777736  ethernet  disconnected  --         
eno33554992  ethernet  disconnected  --               
lo           loopback  unmanaged     --         
[root@MiWiFi-R3-srv Desktop]# nmcli connection up myteam0-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/12)
[root@MiWiFi-R3-srv Desktop]# nmcli connection up myteam0-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
[root@MiWiFi-R3-srv Desktop]# nmcli connection up myteam0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)
[root@MiWiFi-R3-srv Desktop]# nmcli device status
DEVICE       TYPE      STATE      CONNECTION   
eno16777736  ethernet  connected  myteam0-port1
eno33554992  ethernet  connected  myteam0-port2
team0        team      connected  myteam0      
bond0        bond      unmanaged  --            
lo           loopback  unmanaged  --            
[root@MiWiFi-R3-srv Desktop]# nmcli connection show
NAME           UUID                                  TYPE            DEVICE      
myteam0-port1  2b975876-780f-4181-971e-a79cf6a07a40  802-3-ethernet  eno16777736
myteam0-port2  24e3ef82-fb93-4d11-9a6e-4c27227f7f66  802-3-ethernet  eno33554992
myteam0        1f4ed5e2-46a1-4dbf-a870-5b088957a434  team            team0      
[root@MiWiFi-R3-srv Desktop]# teamdctl team0 state
setup:
  runner: roundrobin
ports:
  eno16777736
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  eno33554992
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
[root@MiWiFi-R3-srv Desktop]#

  4、nmcli添加网卡到team
  查看当前设备及网络连接
  [root@MiWiFi-R3-srv ~]# ip link show
  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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
      link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
  3: eno33554992: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
      link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
  4: eno50332216: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
      link/ether 00:0c:29:51:e8:89 brd ff:ff:ff:ff:ff:ff
  5: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT
      link/ether 8a:3d:66:0a:92:91 brd ff:ff:ff:ff:ff:ff
  9: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
      link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
  [root@MiWiFi-R3-srv Desktop]# nmcli  device status
  DEVICE       TYPE      STATE         CONNECTION   
  eno16777736  ethernet  connected     myteam0-port1
  eno33554992  ethernet  connected     myteam0-port2
  team0        team      connected     myteam0      
  eno50332216  ethernet  disconnected  --            
  bond0        bond      unmanaged     --            
  lo           loopback  unmanaged     --            
  [root@MiWiFi-R3-srv Desktop]# nmcli networking off
  断开网络之后,设备变为非管理状态
  [root@MiWiFi-R3-srv Desktop]# nmcli  device status
  DEVICE       TYPE      STATE      CONNECTION
  team0        team      connected  myteam0   
  bond0        bond      unmanaged  --         
  eno16777736  ethernet  unmanaged  --         
  eno33554992  ethernet  unmanaged  --         
  eno50332216  ethernet  unmanaged  --         
  lo           loopback  unmanaged  --         
  [root@MiWiFi-R3-srv Desktop]# teamdctl team0 port add eno50332216
  [root@MiWiFi-R3-srv Desktop]# nmcli networking on
  [root@MiWiFi-R3-srv Desktop]# nmcli  device status
  DEVICE       TYPE      STATE      CONNECTION   
  eno16777736  ethernet  connected  myteam0-port1
  eno33554992  ethernet  connected  myteam0-port2
  eno50332216  ethernet  connected  eno50332216   
  team0        team      connected  myteam0      
  bond0        bond      unmanaged  --            
  lo           loopback  unmanaged  --            
  [root@MiWiFi-R3-srv Desktop]#
  修改新加网卡的连接名
  [root@MiWiFi-R3-srv Desktop]# nmcli connection modify eno50332216 con-name myteam0-port3
  [root@MiWiFi-R3-srv Desktop]# nmcli connection show
  NAME           UUID                                  TYPE            DEVICE      
  myteam0        385eda15-a3fb-4e7e-a6d4-8fc816843b73  team            team0      
  myteam0-port1  32cd5220-4746-4fc4-afc1-03158d9d0378  802-3-ethernet  eno16777736
  myteam0-port2  f58e3a15-b239-496e-a971-535857395d59  802-3-ethernet  eno33554992
  myteam0-port3  cf2576ff-9709-44c8-a0a5-df606a3c5697  802-3-ethernet  eno50332216
  [root@MiWiFi-R3-srv Desktop]#teamnl team0 ports
   4: eno50332216: up 1000Mbit FD
   3: eno33554992: up 1000Mbit FD
   2: eno16777736: up 1000Mbit FD
  [root@MiWiFi-R3-srv Desktop]#
  备注
  添加网卡至team0中,网卡必须处于非活动状态才可以添加成功。否则报错如下:
  [root@MiWiFi-R3-srv Desktop]# teamdctl team0 port add eno50332216
  libteamdctl: cli_usock_process_msg: usock: Error message received: "PortAddFail"
  libteamdctl: cli_usock_process_msg: usock: Error message content: "Failed to add port."
  command call failed (Invalid argument)
  [root@MiWiFi-R3-srv Desktop]#
  messages中日志如下
  Dec 26 18:12:47 MiWiFi-R3-srv NetworkManager[938]: <info>  [1482747167.9905] device (eno33554992): state change: config -> ip-config (reason 'none') [50 70 0]
  Dec 26 18:12:48 MiWiFi-R3-srv systemd: Unit iscsi.service cannot be reloaded because it is inactive.
  5、nmcli从team中删除网卡
  查看当前设备及连接
  [root@MiWiFi-R3-srv ~]# nmcli connection show
  NAME           UUID                                  TYPE            DEVICE      
  myteam0        385eda15-a3fb-4e7e-a6d4-8fc816843b73  team            team0      
  myteam0-port1  32cd5220-4746-4fc4-afc1-03158d9d0378  802-3-ethernet  eno16777736
  myteam0-port2  f58e3a15-b239-496e-a971-535857395d59  802-3-ethernet  eno33554992
  myteam0-port3  cf2576ff-9709-44c8-a0a5-df606a3c5697  802-3-ethernet  eno50332216
  [root@MiWiFi-R3-srv ~]# teamdctl team0 port remove eno50332216
  [root@MiWiFi-R3-srv ~]# nmcli connection show
  NAME           UUID                                  TYPE            DEVICE      
  myteam0        385eda15-a3fb-4e7e-a6d4-8fc816843b73  team            team0      
  myteam0-port1  32cd5220-4746-4fc4-afc1-03158d9d0378  802-3-ethernet  eno16777736
  myteam0-port2  f58e3a15-b239-496e-a971-535857395d59  802-3-ethernet  eno33554992
  myteam0-port3  cf2576ff-9709-44c8-a0a5-df606a3c5697  802-3-ethernet  eno50332216
  [root@MiWiFi-R3-srv ~]# nmcli device status
  DEVICE       TYPE      STATE      CONNECTION   
  eno16777736  ethernet  connected  myteam0-port1
  eno33554992  ethernet  connected  myteam0-port2
  eno50332216  ethernet  connected  myteam0-port3
  team0        team      connected  myteam0      
  bond0        bond      unmanaged  --            
  lo           loopback  unmanaged  --   
  删除之后查连接与设备仍然存在,重启网卡服务后再次查看 eno50332216网卡已从team0中删除,仅留连接名myteam0-port3,该连接名若不在使用可以删除      
  [root@MiWiFi-R3-srv ~]# systemctl restart network
  [root@MiWiFi-R3-srv ~]# nmcli connection show
  NAME           UUID                                  TYPE            DEVICE      
  myteam0        385eda15-a3fb-4e7e-a6d4-8fc816843b73  team            team0      
  myteam0-port1  32cd5220-4746-4fc4-afc1-03158d9d0378  802-3-ethernet  eno16777736
  myteam0-port2  f58e3a15-b239-496e-a971-535857395d59  802-3-ethernet  eno33554992
  myteam0-port3  cf2576ff-9709-44c8-a0a5-df606a3c5697  802-3-ethernet  --         
  [root@MiWiFi-R3-srv ~]# nmcli device status
  DEVICE       TYPE      STATE         CONNECTION   
  eno16777736  ethernet  connected     myteam0-port1
  eno33554992  ethernet  connected     myteam0-port2
  team0        team      connected     myteam0      
  eno50332216  ethernet  disconnected  --            
  bond0        bond      unmanaged     --            
  lo           loopback  unmanaged     --            
  [root@MiWiFi-R3-srv ~]# teamnl team0 ports
   3: eno33554992: up 1000Mbit FD
   2: eno16777736: up 1000Mbit FD
  [root@MiWiFi-R3-srv ~]#
  6、ip工具配置team
  [root@MiWiFi-R3-srv ~]# 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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
      link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
  3: eno33554992: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
      link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
  4: eno50332216: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
      link/ether 00:0c:29:51:e8:89 brd ff:ff:ff:ff:ff:ff
  5: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT
      link/ether 8a:3d:66:0a:92:91 brd ff:ff:ff:ff:ff:ff
  9: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
      link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
  [root@MiWiFi-R3-srv ~]# ip link set dev eno50332216 down
  down掉后,设备变为不可用。
  [root@MiWiFi-R3-srv ~]# nmcli device status
  DEVICE       TYPE      STATE        CONNECTION   
  eno16777736  ethernet  connected    myteam0-port1
  eno33554992  ethernet  connected    myteam0-port2
  team0        team      connected    myteam0      
  eno50332216  ethernet  unavailable --            
  bond0        bond      unmanaged    --            
  lo           loopback  unmanaged    --            
  [root@MiWiFi-R3-srv ~]# ip link set dev eno50332216 master myteam0
  Error: argument "myteam0" is wrong: Device does not exist
  [root@MiWiFi-R3-srv ~]# ip link set dev eno50332216 master team0 ##这里指定设备名非连接名
  [root@MiWiFi-R3-srv ~]# nmcli device status
  DEVICE       TYPE      STATE      CONNECTION   
  eno16777736  ethernet  connected  myteam0-port1
  eno33554992  ethernet  connected  myteam0-port2
  eno50332216  ethernet  connected  eno50332216   
  team0        team      connected  myteam0      
  bond0        bond      unmanaged  --            
  lo           loopback  unmanaged  --            
  [root@MiWiFi-R3-srv ~]# nmcli connection show
  NAME           UUID                                  TYPE            DEVICE      
  eno50332216    e89195e9-5572-4951-9af5-15e8fbbaae8a  802-3-ethernet  eno50332216
  myteam0        385eda15-a3fb-4e7e-a6d4-8fc816843b73  team            team0      
  myteam0-port1  32cd5220-4746-4fc4-afc1-03158d9d0378  802-3-ethernet  eno16777736
  myteam0-port2  f58e3a15-b239-496e-a971-535857395d59  802-3-ethernet  eno33554992
  [root@MiWiFi-R3-srv ~]# nmcli connection modify eno50332216 connection.id myteam0-port3
  [root@MiWiFi-R3-srv ~]# nmcli connection show
  NAME           UUID                                  TYPE            DEVICE      
  myteam0        385eda15-a3fb-4e7e-a6d4-8fc816843b73  team            team0      
  myteam0-port1  32cd5220-4746-4fc4-afc1-03158d9d0378  802-3-ethernet  eno16777736
  myteam0-port2  f58e3a15-b239-496e-a971-535857395d59  802-3-ethernet  eno33554992
  myteam0-port3  e89195e9-5572-4951-9af5-15e8fbbaae8a  802-3-ethernet  eno50332216
  [root@MiWiFi-R3-srv ~]# teamnl team0 ports
   4: eno50332216: up 1000Mbit FD
   3: eno33554992: up 1000Mbit FD
   2: eno16777736: up 1000Mbit FD
  [root@MiWiFi-R3-srv ~]#
  7、team相关命令
  teamnl命令
  teamnl [options] teamdevname command [command args]
          -h --help                Show this help
  Commands:
          ports
          options
          getoption OPT_NAME
          setoption OPT_NAME OPT_VALUE
          monitor OPT_STYLE
  例如获取端口信息及mode模式。
  # teamnl team0 ports
   4: eno50332216: up 1000Mbit FD
   3: eno33554992: up 1000Mbit FD
   2: eno16777736: up 1000Mbit FD
  # teamnl team0 getoption mode
  loadbalance
  #
  teamdctl命令
  teamdctl [options] teamdevname command [command args]

      -h --help                Show this help
      -v --verbose             Increase output verbosity
      -o --oneline             Force output to one line if possible
      -D --force-dbus          Force to use D-Bus interface
      -Z --force-zmq=ADDRESS   Force to use ZeroMQ interface [-Z[Address]]
      -U --force-usock         Force to use UNIX domain socket interface
  Commands:
      config dump
      config dump noports
      config dump actual
      state
      state dump
      state view
      state item get ITEMPATH
      state item set ITEMPATH VALUE
      port add PORTDEV
      port remove PORTDEV
      port present PORTDEV
      port config update PORTDEV PORTCONFIG
      port config dump PORTDEV
  例如1:查看team0配置信息
  #teamdctl team0 state
  setup:
    runner: loadbalance
  ports:
    eno16777736
      link watches:
        link summary: up
        instance[link_watch_0]:
          name: ethtool
          link: up
          down count: 0
    eno33554992
      link watches:
        link summary: up
        instance[link_watch_0]:
          name: ethtool
          link: up
          down count: 0
    eno50332216
      link watches:
        link summary: up
        instance[link_watch_0]:
          name: ethtool
          link: up
          down count: 0
  例如2:查看team0配置不包含端口信息。
  # teamdctl team0 config dump noports
  {
      "device": "team0",
      "runner": {
          "name": "loadbalance",
          "tx_hash": [
              "eth",
              "ipv4",
              "ipv6"
          ]
      }
  }
  #

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-451130-1-1.html 上篇帖子: Centos Tomcat 调优 下篇帖子: centos7网卡错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表