RH358配置链路聚合–管理网络组
本章节开始,介绍如何配置和管理链路聚合配置。此方面技术在实际工作中必备,特别在现各种高并发场景这么大量的时代,没HA咋行?
专栏地址:https://blog.csdn.net/qq_41765918/category_11532281.html
1. 网络组配置文件
NetworkManager在/etc/sysconfig/network-scripts目录中为网络组创建配置文件,这与它为其他接口创建配置文件的方式相同。它为每个接口创建配置文件;用于组接口和每个端口。
下面的配置文件定义了一个组接口。
-
DEVICETYPE变量的值决定了定义的接口类型,在本例中为网络团队定义了Team。
-
组接口的配置文件定义接口的IP设置。
-
TEAM_CONFIG变量使用JSON语法定义组接口的组配置参数。
[root@host ~]# cat /etc/sysconfig/network-scripts/ifcfg-team0
TEAM_CONFIG="{ \"runner\": { \"name\": \"broadcast\" } }"
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=172.25.5.100
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=f0813ead-3d0e-491e-89d6-2ec0fe616b68
DEVICE=team0
ONBOOT=yes
DEVICETYPE=Team
下面的配置文件定义了一个端口接口。
DEVICETYPE变量通知初始化脚本这是一个端口接口。
TEAM_MASTER变量定义了该端口作为组接口的从属端口。
[root@host ~]# cat /etc/sysconfig/network-scripts/ifcfg-team0-ens4
NAME=team0-ens4
UUID=2f8a7ab3-e0ce-42d7-8357-20d90700f96f
DEVICE=ens4
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
2. 设置和调整组配置
2. 设置和调整组配置
在创建组接口时设置初始网络组配置。默认运行程序是roundrobin,但是如果您指定了一个team.runner值,那么该运行程序将被分配。如果没有指定运行器参数,则使用它们的默认值。
nmcli con mod命令分配不同的运行器参数。使用team.config选项,可以是一个JSON字符串(在简单更改的情况下),也可以是一个具有更复杂JSON配置的文件的名称。nmcli命令更改组接口的初始化脚本文件中TEAM_CONFIG变量的值。
nmcli con mod CONN_NAME team.config JSON-configuration-file-or-string
考虑下面的/tmp/team.conf文件,它为activebackup组端口的接口分配了不同的优先级:
你可以使用下面的命令来应用/tmp/team.conf文件中的设置:
[root@host ~]# nmcli con mod team0 team.config /tmp/team.conf
link_watch设置决定了如何监控端口接口的链路状态。默认值如下所示,使用类似于ethtool命令的功能来确定各接口的链路状态:
"link_watch": {
"name": "ethtool"
}
ARP ping报文还可以判断远程连接的链路状态。在这种情况下,必须指定本地和远端IP地址和超时时间。使用ARP ping报文确认链路可用性,示例如下:
"link_watch":{
"name": "arp_ping",
"interval": 100,
"missed_max": 30,
"source_host": "192.168.23.2",
"target_host": "192.168.23.1"
},
注意:如果没有在JSON文件中指定,选项将恢复为默认值。
teamd.conf (5)手册页提供了每个组配置选项的定义。它还提供了一些更复杂配置的JSON示例。
当与以组开头的选项一起使用时,nmcli con mod命令还会修改组team. prefix选项。可以在命令行上使用选项卡补全来显示可用选项的列表。
3. 网络组故障排除
3. 网络组故障排除
使用teamnl和teamdctl命令排除网络组的故障。这些命令只在启动的组接口上工作。下面的示例展示了这些命令的一些典型用法。
# 显示team0组界面的端口界面:
[root@host ~]# teamnl team0 ports
4: eth2: up 4294967295Mbit FD
3: eth1: up 4294967295Mbit FD
# 显示当前激活的端口team0:
[root@host ~]# teamnl team0 getoption activeport
4
# 更改team0的激活端口:
[root@host ~]# teamdctl team0 state item set runner.active_port eth1
# 显示team0的当前状态:
[root@host ~]# teamdctl team0 state
# 显示team0的当前JSON配置:
[root@host ~]# teamdctl team0 config dump
{
"device": "team0",
"mcast_rejoin": {
"count": 1
},
"notify_peers": {
"count": 1
},
"ports": {
"eth1": {
"link_watch": {
"name": "ethtool"
}
},
"eth2": {
"link_watch": {
"name": "ethtool"
}
}
},
"runner": {
"name": "activebackup"
}
}
4. 课本练习
4. 课本练习
[student@workstation ~]$ lab netlink-teammgmt start
1. 查看网络组状态。
1. 查看网络组状态。
[root@servera ~]# teamdctl team0 state setup: runner: activebackup ports: eth1 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 eth2 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: eth1
2. 按要求更改运行器。
2. 按要求更改运行器。
[root@servera ~]# nmcli con mod team0 team.runner roundrobin
3. 重新启动team0连接。
3. 重新启动team0连接。
[root@servera ~]# nmcli con down team0
[root@servera ~]# nmcli con up team0
4. 测试。
4. 测试。
通过使用ping生成流量并使用tcpdump监视端口接口来测试roundrobin运行器。
[root@servera ~]# ping 192.168.0.254
[root@servera ~]# tcpdump -i eth1 icmp and src 192.168.0.254
[root@servera ~]# tcpdump -i eth2 icmp and src 192.168.0.254
完成实验。
完成实验。
[student@workstation ~]$ lab netlink-teammgmt finish
总结
总结
介绍网络组Team配置文件。介绍了如何调整和设置配置。常用命令辅助排错。若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。