team多网卡绑定
多个网卡绑定在一起对外提供服务, 用户来访问的时候, 发数据包。
team组的模式:
broadcast: 广播的意思: 发过来的数据包以广播的形式,发送到每一个网卡
roundrobin: 轮询的模式:发送数据包到网卡,轮换的发送
activebackup: 主备模式: 两块网卡互为主备,当网卡是主设备,另一块不工作作为从设备, 当主设备出现问题,切换到从设备。
loadbalance:负载均衡: 两块网卡绑定为负载均衡模式,他会通过计算,让两块网卡上面收到的数据包均衡
lacp: 需要借助设备,实现高级负载均衡
可以通过nmcli命令来实现team机制的配置。
要素:
多个网卡(>=2)
绑定的操作:将我的多个网卡绑定在一个虚拟网卡,虚拟网卡对外提供服务(提供一个IP)
但实际上数据包还是流经我们实际的物理网卡
绑定的操作:
1.首先得有一个虚拟网卡:对外提供服务,意味着它上面需要配置IP,配置IP是配置在连接上的。
如何去产生一个team的虚拟网卡,对应的上面要配置连接,连接上配置IP 直接去添加一条连接,并指定虚拟网卡:产生连接的同时,产生了一个虚拟网卡 # 和team相关的连接类型: · team · team-slave # team-> 虚拟网卡上的连接 # team-slave: 绑定的物理网卡上的连接 config字段是用来配置team机制的模式 config json字符串 # 本身team_dev这个设备不存在,虚拟的(基于我们的type配置为team后) # config:配置team机制的模式,json格式的 '{"runner": {"name": "activebackup", "hwaddr_policy": "by_active"}}' nmcli c add type team con-name team_conn ifname team_dev config '{"runner": {"name": "activebackup"}}' ipv4.addresses 192.168.88.220/24 ipv4.gateway 192.168.88.2 ipv4.dns 8.8.8.8 ipv4.method manual 配置完成后:会产生两个东西 一个是team_dev这个虚拟设备 一个是team_conn这个连接,连接是依赖于我们的虚拟的网卡team_dev 然后team_conn对外提供的ip为192.168.88.220
-
实际的物理网卡得绑定在我们的虚拟网卡上,这个是不需要配置IP
两块物理网卡:ens160, ens224 nmcli c add type team-slave con-name team_port1 ifname ens160 master team_dev nmcli c add type team-slave con-name team_port2 ifname ens224 master team_dev
-
激活我们的物理网卡,以及我们的虚拟网卡(实际上激活的是连接)
激活的时候,先激活team-slave, 然后再激活team nmcli c up team_port1 nmcli c up team_port2 nmcli c up team_conn
-
查看主备的状态
teamdctl team_dev state [view] [root@wyy ~]# teamdctl team_dev state setup: runner: activebackup ports: ens160 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 ens224 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: ens160
-
切换:自动切换(我们把一块网卡给down掉,一块网卡不能工作了)
down掉主用的网卡ens160 nmcli d disconnect ens160 查询状态:是切换了过来,但是window上ping不通了 出现这个问题的原因是因为配置成功了之后,ens160,ens224,team_dev三个mac地址相同的 执行切换的时候:ens160和ens224的mac相同,切换是切换过来的,但是它不知道使用哪个 需要做的修正是:让它切换的时候,让我们team_dev跟随主用设备的mac地址 [root@wyy ~]# teamdctl team_dev state setup: runner: activebackup ports: ens224 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: ens224
出现问题之后去做修改:
nmcli c modify team_conn config '{"runner": {"name": "activebackup", "hwaddr_policy": "by_active"}}'
重新启动:
nmcli c up team_port1 nmcli c up team_port2 nmcli c up team_conn
重新验证:
在windows上ping服务器的地址: ping 192.168.233.158 -t down掉主用的网卡ens160 nmcli d disconnect ens160 看一下ping 查看一下状态: [root@wyy ~]# teamdctl team_dev state setup: runner: activebackup ports: ens224 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: ens224
linux上的抓包tcpdump
yum install tcpdump -y