on
it
road
.com
2. 使用 ifcfg 文件配置 Network Team (永久配置)
- 进入/etc/sysconfig/network-scripts目录,创建“ifcfg-team0”文件,如下图:
# cat /etc/sysconfig/network-scripts/ifcfg-team0 DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no #IPADDR=192.168.11.1 PREFIX=24 TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'
注意:分组接口 team0 也可以有 BOOTPROTO=none 的静态 ip
- 编辑相应接口的文件(这里我添加了两个接口enp0s8 & enp0s9):
# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8 DEVICE=enp0s8 #HWADDR=D4:85:64:01:46:9E DEVICETYPE=TeamPort ONBOOT=yes NM_CONTROLLED=no TEAM_MASTER=team0 TEAM_PORT_CONFIG='{"prio": 100}'
# cat /etc/sysconfig/network-scripts/ifcfg-enp0s9 DEVICE=enp0s9 #HWADDR=D4:85:64:01:46:9E DEVICETYPE=TeamPort ONBOOT=yes TEAM_MASTER=team0 NM_CONTROLLED=no TEAM_PORT_CONFIG='{"prio": 100}'
- 确保两个接口都关闭:
# ip link set enp0s8 down # ip link set enp0s9 down
注意:活动接口不能添加到组中。
- 现在你可以拉起接口
# ifup team0
- 使用“ip addr”、“nmcli device status”和“teamdctl”命令验证绑定配置。
# ip addr team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 08:00:27:2e:4c:65 brd ff:ff:ff:ff:ff:ff inet 192.168.57.101/24 brd 192.168.57.255 scope global dynamic team0 valid_lft 1178sec preferred_lft 1178sec inet6 fe80::a00:27ff:fe2e:4c65/64 scope link tentative dadfailed valid_lft forever preferred_lft forever
# nmcli device status DEVICE TYPE STATE CONNECTION enp0s8 ethernet unmanaged - enp0s9 ethernet unmanaged - team0 team unmanaged -
# teamdctl team0 state setup: runner: activebackup ports: enp0s8 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp0s9 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp0s8
移除Network Team
要终止team守护进程的实例,请使用以下命令:
# teamd -t team0 -k
在网络服务器上,确保网络接口始终可用是一项重要的要求。
在 Red Hat Enterprise Linux 7 上,我们可以创建聚合网络接口。
使用网络组合或者网络绑定来实现此目标。
在早期版本的 RHEL 中,网络绑定是创建聚合网络接口的默认方法。
在 RHEL 7 中,添加了网络组合作为解决方案。
这两者之间的主要区别在于网络绑定完全发生在用户空间,而在网络绑定中,添加了 teamd 守护程序以允许在用户空间进行交互。
即使这两种方法仍然有效,网络组合也是首选方法。
在 Red Hat Enterprise Linux 的早期版本中,网络绑定用于实现相同的目标。
网络组队是 Red Hat Enterprise Linux 7 中的新功能。
该解决方案由一个小型内核驱动程序和一个可在用户空间中使用的守护进程 teamd 组成。
# rpm -qa | grep teamd teamd-1.27-4.el7.x86_64
内核负责处理网络数据包,而 teamd 驱动程序处理逻辑和接口处理。
为了确定这究竟是如何发生的,使用了不同的运行步者。
组队中的Runner相当于绑定(bonding)的模式。
它们用于定义配置中涉及的接口之间的流量处理逻辑。
下表总结了可用的Runner。
Runner | 说明 |
---|---|
roundrobin | 这是我们使用的默认设置,它只是以循环方式将数据包发送到组中的所有接口,即一次一个,然后是下一个接口。 |
broadcast | 所有流量都通过所有端口发送。 |
activebackup | 一个接口正在使用,而另一个被留出作为备份,链路会被监控变化,如果需要,将使用故障转移链路。 |
loadbalance | 基于 Tx 流量在所有接口上平衡流量,应在可用接口上分担相等的负载。 |
lacp | 实现 802.3ad LACP 协议。 |
1. 使用 JSON 格式定义配置 Network Team (临时配置)
- 为团队及其组件端口创建一个 JSON 格式的定义文件,在本例中为 /root/team_config/team0.conf 。
# cat /root/team_config/team0.conf #team0.conf { "device": "team0", "runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}, "ports": { "enp0s8": { "prio": -10, "sticky": true }, "enp0s9": { "prio": 100 } } }
- 使用 ip 命令关闭组件端口:
# ip link set enp0s8 down # ip link set enp0s9 down
注意:活动接口不能添加到组中。
- 启动 teamd 守护进程的一个实例,并通过读取配置文件(在本例中为 /root/team_config/team0.conf)让它创建分组接口:
# teamd -g -f /root/team_config/team0.conf -d Using team device "team0". Using PID file "/var/run/teamd/team0.pid" Using config file "/root/team_config/team0.conf"
注意: -g 选项显示调试消息,可以省略。
- 使用ip命令设置绑定接口的IPaddr和网络掩码前缀长度:
# ip addr add 192.168.22.10/24 dev team0
- 使用“ip addr”和“teamdctl”命令验证配置。
# ip addr team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 08:00:27:5a:d8:50 brd ff:ff:ff:ff:ff:ff inet 192.168.22.10/24 scope global team0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe5a:d850/64 scope link valid_lft forever preferred_lft forever
# teamdctl team0 state setup: runner: activebackup ports: enp0s8 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp0s9 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp0s9
日期:2020-09-17 00:13:21 来源:oir作者:oir