• Linux Bond 以及Mode 1讲解


    概述

    今天主要想聊一聊VXLAN环境中终端设备(Linux系统)的接入方式,在VXLAN组网中,终端一般会双上联到两台Leaf以增强组网的健壮性,
    这时一般就会有两个方案:

    1. 两台Leaf通过堆叠、M-Lag、ESI-Lag等技术,使两台Leaf交换机能在逻辑上视为一台,这样的话两台Leaf就可以跨设备聚合和Linux终端做802.3ad对接,也就是Linux的Bond Mode 4;
    2. 两台Leaf仍然保持独立,Linux终端配置Bond Mode1主备模式或是5、6负载均衡模式,对接到两台不同交换机。

    我们先看Mode 1,下面是从官方网站对Mode 1的解释和fail_over_mac 这个参数的意思,会在配置时用到。
    官网链接

    active-backup or 1
    Active-backup policy: Only one slave in the bond is
    active. A different slave becomes active if, and only
    if, the active slave fails. The bond’s MAC address is
    externally visible on only one port (network adapter)
    to avoid confusing the switch.

    In bonding version 2.6.2 or later, when a failover
    occurs in active-backup mode, bonding will issue one
    or more gratuitous ARPs on the newly active slave.
    One gratuitous ARP is issued for the bonding master
    interface and each VLAN interfaces configured above
    it, provided that the interface has at least one IP
    address configured. Gratuitous ARPs issued for VLAN
    interfaces are tagged with the appropriate VLAN id.

    This mode provides fault tolerance. The primary
    option, documented below, affects the behavior of this
    mode.

    fail_over_mac = 1
    The “active” fail_over_mac policy indicates that the
    MAC address of the bond should always be the MAC
    address of the currently active slave. The MAC
    address of the slaves is not changed; instead, the MAC
    address of the bond changes during a failover.

    Mode 1之所以不需要对端交换机配合,是因为Bond的成员口其实只有一个处于活跃状态,并且对外发布这个活跃接口的MAC地址,如果当前的活跃接口故障,那么另一个接口接替工作,同时Bond的MAC地址也发生了变化。
    因此对交换机根本感知不到终端是配置了Bond,Bond的切换过程就像是重新断开又接入了新的终端;而远端设备的ARP缓存记录也会被刷新。
    另外还有一点我们需要明白,一张VXLAN Fabric完全可以当作一台大交换机,所以终端能通过Mode1,5,6可以接到两台没配置类堆叠的Leaf交换机。理解这个我们就可以搭建一个简单的实验拓扑。

    拓扑图

    我的模拟拓扑图,两台Centos7虚机,和一台交换机(既可以是一台物理交换机,也可以是一个VXLAN Fabric)。
    H1两个接口en0s8和enp0s9连到SW,依次配置Mode1,5,6,SW无需做bond相关的配置;
    H2上起了两个namespace,ns1和ns2,接口en0s9放到了ns1和enp0s8放到了ns2;
    H1的IP:10.0.0.11,H2-ns1的IP:10.0.0.112,H2-ns2的IP:10.0.0.12;
    如果对Namespace操作不熟悉,可以参考这边文章。Namespace文章
    在这里插入图片描述

    Mode1配置

    配置不是很复杂,可以参照redhat官网。官方链接
    加载Bond并查看
    modprobe --first-time bonding
    modinfo bonding
    新建一个Bond文件命名为Bond0,配置文件
    cat /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    TYPE=Bond
    BONDING_MASTER=yes
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME=“bond0”
    IPADDR=10.0.0.11
    PREFIX=24
    ONBOOT=yes
    BONDING_OPTS=“miimon=100 mode=1 fail_over_mac=1”
    NM_CONTROLLED=“no”
    两个物理口配置文件类似
    cat /etc/sysconfig/network-scripts/ifcfg-enp0s8
    NAME=bond0-slave
    UUID=b6416eae-4958-46ff-bb03-399d752f3c2b
    DEVICE=enp0s8
    TYPE=Ethernet
    BOOTPROTO=none
    IPV4_FAILURE_FATAL=no
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    NM_CONTROLLED=“no”
    配置完重启网络
    systemctl restart network

    实验记录

    Mode状态

    当前active接口是enp0s8,bond0的MAC 地址是enp0s8的MAC a001
    在这里插入图片描述
    查看当前接口的MAC,bond0的MAC就是enp0s8的MAC a001
    在这里插入图片描述
    在这里插入图片描述
    H2-ns1和H2-ns2的ARP记录,只有a001这个MAC
    在这里插入图片描述
    在这里插入图片描述
    H2-ns1和H2-ns2同时ping H1,通过nload观察流量负载情况,
    只有enp0s8承载流量。
    在这里插入图片描述
    把enp0s8 down掉,enp0s9变成active,

    在这里插入图片描述
    bond0继承enp0s9的MAC a002
    在这里插入图片描述
    在这里插入图片描述

    此时,H2-ns1和H2-ns2上的arp记录,MAC地址变成了a002
    在这里插入图片描述
    在这里插入图片描述

    nload观察流量已经切到了enp0s9
    在这里插入图片描述
    Mode 1 实验完毕,实验结果和官网上的解释一致。
    Mode1 只有一个活跃的接口,和对外发布一个MAC地址,当前活跃接口故障后,会切到另一接口,MAC也发生变化并通过免费ARP通告。
    后续在补充Mode 5,6 …

  • 相关阅读:
    面试题:Java中为什么只有值传递?
    虚拟机Ubuntu 无法打开表格
    详解深拷贝,浅拷贝
    二.go语言条件与循环
    xgo: golang基于-toolexec实现猴子补丁
    微信小程序组件传值
    PI3K α/β 靶向抑制剂协同 BCL-2 阻断过程可用于治疗 DLBCL
    定时器方案之红黑树与最小堆、时间轮详解
    三.STM32F030C8T6 MCU开发之UART配置例程
    java基于ssm+vue+elementui楼盘房屋销售系统 前后端分离
  • 原文地址:https://blog.csdn.net/qq_33681684/article/details/126235073