简介
在 linux 中, Rhel7 之前都是使用 bond 机制来实现多网卡绑定同一个 IP地址,来对网络提供访问,并按不同的模式来负载均衡或者轮回接替管理处理数据。而到Rhel7 之后,提供了一种强大的工具, nmcli工具命令,使用此工具,将会根据命令参数的配置来重新生成特定的配置文件来供网络接口使用,方便而又灵活。在 Rhel7中,不再使用 bond机制定义,而是使用网络组 team 机制,把 team 组当作一个设备Team网络组的模式:
broadcast:每个网卡都传送数据包。
roundrobin:每个网卡轮询方式传送数据。
activebackup:网卡之间有主备,主传送数据包,备的不传送,主网卡down了,备才传送。
loadbalance:监控流量并使用哈希函数,使得每个网卡传送的数据包达到相等 lacp:需要借助交换机,实现高级的负载均衡。
实验操作(以backup模式为例)
第一步
手工在VMware中添置两块网络适配器,并查看是否生效。(添加完记得点确定保存配置)
第二步
1.配置聚合后端口team0(master)添加连接,产生一个虚拟网卡。
注意:在创建team0时,这个此命令"hwaddr_policy": “by_active” 表示当创建的来连接中物理MAC地址的不同,确保切换时不产生冲突,确保顺利切换。
[root@bogon ~]# nmcli connection add type team con-name team0 ifname team0 ipv4.addresses 192.168.58.233/24 ipv4.gateway 192.168.58.2 ipv4.method manual config '{"runner": {"name": "activebackup", "hwaddr_policy": "by_active"}}'
Connection 'team0' (ba436d9a-fa54-46f5-81b3-bb74071eb0f3) successfully added.
[root@bogon ~]# nmcli connection show #查看配置是否生效
NAME UUID TYPE DEVICE
ens160 56c2f0da-3710-4514-a5cd-243d9117b73a ethernet ens160
Wired connection 1 560a54ae-29a5-3143-a4c3-de5733b9da20 ethernet ens256
Wired connection 2 2a9516d4-6a21-346b-a39b-ca3088a09a11 ethernet ens224
team0 ba436d9a-fa54-46f5-81b3-bb74071eb0f3 team team0
virbr0 88eca124-3749-4e4c-a365-7d238d565c8a bridge virbr0
2.将我们的两块物理网卡添加到team0中
`两块网卡:ens160和ens224
添加连接: 放入team0的连接(master team0), type: team-slave, 使用实际网卡名称,team0是对外ip访问的连接,连接实际上是使用实际的物理网卡,因为主备模式,所以最少有两个网卡。
[root@bogon ~]# nmcli connection add type team-slave con-name team-port1 ifname ens224 master team0
Connection 'team-port1' (1dd0d814-c2e4-404a-a6a6-227a412a5d00) successfully added.
[root@bogon ~]# nmcli connection add type team-slave con-name team-port2 ifname ens256 master team0
Connection 'team-port2' (01d76106-8525-413d-8b6a-7dc010a4c741) successfully added.
[root@bogon ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 56c2f0da-3710-4514-a5cd-243d9117b73a ethernet ens160
Wired connection 1 560a54ae-29a5-3143-a4c3-de5733b9da20 ethernet ens256
Wired connection 2 2a9516d4-6a21-346b-a39b-ca3088a09a11 ethernet ens224
team0 ba436d9a-fa54-46f5-81b3-bb74071eb0f3 team team0
virbr0 88eca124-3749-4e4c-a365-7d238d565c8a bridge virbr0
team-port1 1dd0d814-c2e4-404a-a6a6-227a412a5d00 ethernet --
team-port2 01d76106-8525-413d-8b6a-7dc010a4c741 ethernet --
3.激活连接
[root@bogon ~]# nmcli connection up team-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)
[root@bogon ~]# nmcli connection up team-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
[root@bogon ~]# nmcli connection up team0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)
[root@bogon ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 56c2f0da-3710-4514-a5cd-243d9117b73a ethernet ens160
team0 ba436d9a-fa54-46f5-81b3-bb74071eb0f3 team team0
virbr0 88eca124-3749-4e4c-a365-7d238d565c8a bridge virbr0
team-port1 1dd0d814-c2e4-404a-a6a6-227a412a5d00 ethernet ens224
team-port2 01d76106-8525-413d-8b6a-7dc010a4c741 ethernet ens256
Wired connection 1 560a54ae-29a5-3143-a4c3-de5733b9da20 ethernet --
Wired connection 2 2a9516d4-6a21-346b-a39b-ca3088a09a11 ethernet --
[root@bogon ~]# teamdctl team0 state view #查看team0的工作状态
setup:
runner: activebackup
ports:
ens224
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens256
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens22
4.验证
用windows主机ping team0的ip,关闭其中一个port,是否可以切换到另一个连接。
关闭其中一个port1或者port2,从主机上可以看出在两个超时后恢复连接欸,即实验成功。