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

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

[复制链接]

尚未签到

发表于 2018-4-24 08:11:02 | 显示全部楼层 |阅读模式
NIC  Teaming on CentOS 7 with nmtui

      在Linux,可以将多个网络链路聚合成一个逻辑链路,可以增加网络吞吐量或冗余。例如,我们可以将IP地址分配给由两个网络接口组成的组,使我们的吞吐量加倍,或者为备份预留一个接口,如果第一个失败,第二个网卡继续工作。链路聚合在过去做了bond,但在RHEL7中,team将是首选方法。因为team可以聚合更高效,比bonding更具优势。下图为team与bond差异列表。
  
DSC0000.jpg

DSC0001.jpg

  这里我们将介绍如何创建和配置具有两个不同网络接口的team。
  1、Teaming Daemon安装
  为了使用teaming功能,首先必须安装teamd包,系统通常不会安装。使用如下命令进行安装。
  #yum install teamd -y

  2、nmtui配置teaming
  首先查看系统当前connection及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]# nmcli connection show

  NAME  UUID  TYPE  DEVICE
[root@MiWiFi-R3-srv Desktop]#

  两块网卡上均没有connection.执行nmtui配置teaming。
DSC0002.jpg

  选择"edit a connection"移动光标至ok,回车进入下一步。
DSC0003.jpg

  选择add,回车。
DSC0004.jpg

  选择设备类型team,crate.
DSC0005.jpg

  profile name根据需求设置,此处设置为myteam0,device也可以根据需求设定,此处设定为team0。设置完成后移动光标add处,添加slave设备。
DSC0006.jpg

  选择Ethernet类型创建
DSC0007.jpg

  profile name根据需求设置,此处设置为myteam0-port1,device设置为服务器网卡设备名称。
DSC0008.jpg

  同上添加第二块网卡并设置profile name与device.设置完成后如下图结果。
DSC0009.jpg

  json配置,移动光标至Edit处,回车将临时打开一个vim窗口,在vim窗口中输入{ "runner": {"name": "loadbalance"}},
DSC00010.jpg

  保存退出后,显示如下。
DSC00011.jpg

  配置ipv4,设置为manual,设置ip,网关,dns如下
DSC00012.jpg

  完成后保存退出,teaming配置完成自动创建相关配置文件,如下:
DSC00013.jpg

[root@MiWiFi-R3-srv network-scripts]# cat ifcfg-myteam0

  DEVICE=team0
  TEAM_CONFIG="{\"runner\": {\"name\": \"loadbalance\"}}"
  DEVICETYPE=Team
  BOOTPROTO=none
  DNS1=192.168.31.1
  DEFROUTE=yes
  IPV4_FAILURE_FATAL=no
  IPV6INIT=yes
  IPV6_AUTOCONF=yes
  IPV6_DEFROUTE=yes
  IPV6_FAILURE_FATAL=no
  NAME=myteam0
  UUID=1f4ed5e2-46a1-4dbf-a870-5b088957a434
  ONBOOT=yes
  IPADDR=192.168.31.108
  PREFIX=24
  GATEWAY=192.168.31.1
  IPV6_PEERDNS=yes
  IPV6_PEERROUTES=yes
[root@MiWiFi-R3-srv network-scripts]# cat ifcfg-myteam0-port1

  NAME=myteam0-port1
  UUID=2b975876-780f-4181-971e-a79cf6a07a40
  DEVICE=eno16777736
  ONBOOT=yes
  TEAM_MASTER=1f4ed5e2-46a1-4dbf-a870-5b088957a434
  DEVICETYPE=TeamPort
[root@MiWiFi-R3-srv network-scripts]# cat ifcfg-myteam0-port2

  NAME=myteam0-port2
  UUID=24e3ef82-fb93-4d11-9a6e-4c27227f7f66
  DEVICE=eno33554992
  ONBOOT=yes
  TEAM_MASTER=1f4ed5e2-46a1-4dbf-a870-5b088957a434
  DEVICETYPE=TeamPort
[root@MiWiFi-R3-srv network-scripts]#

  再次查看当前connection状态。
[root@MiWiFi-R3-srv Desktop]# nmcli connection show

  NAME           UUID                                  TYPE            DEVICE
  myteam0        1f4ed5e2-46a1-4dbf-a870-5b088957a434  team            team0
  myteam0-port2  24e3ef82-fb93-4d11-9a6e-4c27227f7f66  802-3-ethernet  eno33554992
  myteam0-port1  2b975876-780f-4181-971e-a79cf6a07a40  802-3-ethernet  eno16777736
  查看服务器当前设备的状态。
[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  --
  查看ip地址信息。
[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
  5: 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
  查看myteam0的详细信息及状态如下
[root@MiWiFi-R3-srv Desktop]# 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、测试

  在客户及ping 192.168.31.108,然后在服务器端断开某块网卡链接,ping命令不终端。
[root@MiWiFi-R3-srv Desktop]# nmcli device disconnect eno16777736

  Device 'eno16777736' successfully disconnected.
[root@MiWiFi-R3-srv Desktop]#

[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  --
  myteam0        e2976c8e-da7d-4901-88c6-db8a9913947c  team            team0
[root@MiWiFi-R3-srv Desktop]# nmcli device status

  DEVICE       TYPE      STATE         CONNECTION
  eno33554992  ethernet  connected     myteam0-port2
  team0        team      connected     myteam0
  eno16777736  ethernet  disconnected  --
  lo           loopback  unmanaged     --
[root@MiWiFi-R3-srv Desktop]#

[root@MiWiFi-R3-srv Desktop]# teamdctl team0 state

  setup:
  runner: loadbalance
  ports:
  eno33554992
  link watches:
  link summary: up
  instance[link_watch_0]:
  name: ethtool
  link: up
  down count: 0
[root@MiWiFi-R3-srv Desktop]#

  断开链接后,查看客户端ping未终端。
   DSC00014.jpg
  4、修改team配置
  对于team的配置可以通过nmtui或者nmcli进行修改,nmtui打开图形,在json配置界面,选择edit修改vim窗口的内容保存退出即可。
DSC00015.jpg

[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]#

  备注:
  (1)、team配置文件的可以看考/usr/share/doc/teamd-1.25/目录中文档的写法,也可以参考
  man teamd.conf帮助内容
  
[root@MiWiFi-R3-srv ~]# cd /usr/share/doc/teamd-1.25/

[root@MiWiFi-R3-srv teamd-1.25]# ls

  COPYING  example_configs  example_ifcfgs
[root@MiWiFi-R3-srv teamd-1.25]# cd example_configs/

[root@MiWiFi-R3-srv example_configs]# ls

  activebackup_arp_ping_1.conf  activebackup_ethtool_3.conf    broadcast.conf      loadbalance_3.conf
  activebackup_arp_ping_2.conf  activebackup_multi_lw_1.conf   lacp_1.conf         random.conf
  activebackup_ethtool_1.conf   activebackup_nsna_ping_1.conf  loadbalance_1.conf  roundrobin_2.conf
  activebackup_ethtool_2.conf   activebackup_tipc.conf         loadbalance_2.conf  roundrobin.conf
[root@MiWiFi-R3-srv example_configs]#

  (2)、runners available are listed below(配置时'-'去除输入)
  broadcast (data is transmitted over all ports)
  round-robin (data is transmitted over all ports in turn)
  active-backup (one port or link is used while others are kept as a backup)
  loadbalance (with active Tx load balancing and BPF-based Tx port selectors)
  lacp (implements the 802.3ad Link Aggregation Control Protocol)

运维网声明 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-451126-1-1.html 上篇帖子: CentOS7 yum搭建lamp 下篇帖子: centos 6.8 开机启动配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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