team多网卡绑定

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
  1. 实际的物理网卡得绑定在我们的虚拟网卡上,这个是不需要配置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

  2. 激活我们的物理网卡,以及我们的虚拟网卡(实际上激活的是连接)

    激活的时候,先激活team-slave, 然后再激活team
    nmcli c up team_port1
    nmcli c up team_port2
    nmcli c up team_conn
  3. 查看主备的状态

    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
  4. 切换:自动切换(我们把一块网卡给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
    ​

上一篇:Tabulator 隐藏列示例


下一篇:部署M-M架构的mysql集群(M-M架构)