我们专注服务于当下互联网基础设施建设与云计算、大数据时代的各种需求!

FreeBSD做链路聚合与故障转移

我们将 FreeBSD 的两个网口作为一个负载均衡和故障转移链路聚合组接到交换机上。 在此基础上, 还可以增加更多的网口, 以提高吞吐量和故障容灾能力。 由于以太网链路上两节点间的帧序是强制性的, 因此两个节点之间的连接速度, 会取决于一块网卡的最大速度。 传输算法会尽量采用更多的信息, 以便将不同的网络流量分摊到不同的网络接口上, 并平衡不同网口的负载。在 Cisco 交换机上将 FastEthernet0/1 和 FastEthernet0/2 这两个网口添加到 channel-group 1:

interface FastEthernet0/1

 channel-group 1 mode active

 channel-protocol lacp

!

interface FastEthernet0/2

 channel-group 1 mode active

 channel-protocol lacp

在 FreeBSD 使用 fxp0 和 fxp1 创建 lagg(4) 接口:

# ifconfig lagg0 create 

# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1

用下面的命令查看接口状态:

# ifconfig lagg0

标记为 ACTIVE 的接口是激活据合组的部分, 这表示它们已经完成了与远程交换机的协商, 同时, 流量将通过这些接口来收发。 在 ifconfig(8) 的详细输出中会给出 LAG 的标识。

lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=8<VLAN_MTU>

        ether 00:05:5d:71:8d:b8

        media: Ethernet autoselect

        status: active

        laggproto lacp

        laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

        laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

如果需要查看交换机上的端口状态, 则应使用 show lacp neighbor 命令:

switch# show lacp neighbor 

Flags:  S - Device is requesting Slow LACPDUs 

        F - Device is requesting Fast LACPDUs

        A - Device is in Active mode       P - Device is in Passive mode    


Channel group 1 neighbors


Partner's information:


                  LACP port                        Oper    Port     Port

Port      Flags   Priority  Dev ID         Age     Key     Number   State

Fa0/1     SA      32768     0005.5d71.8db8  29s    0x146   0x3      0x3D  

Fa0/2     SA      32768     0005.5d71.8db8  29s    0x146   0x4      0x3D

如欲查看进一步的详情, 则需要使用 show lacp neighbor detail 命令。

故障转移模式

    故障转移模式中, 当首选链路发生问题时, 会自动切换到备用端口。 下面的命令会创建 lagg0 接口, 并使用 fxp0 作为首选接口, 而 fxp1 作为备用接口:

# ifconfig lagg0 create

# ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1

创建成功之后, 接口状态会是类似下面这样, 主要的区别是 MAC 地址和设备名:

# ifconfig lagg0

lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

        options=8<VLAN_MTU>

        ether 00:05:5d:71:8d:b8

        media: Ethernet autoselect

        status: active

        laggproto failover

        laggport: fxp1 flags=0<>

        laggport: fxp0 flags=5<MASTER,ACTIVE>

系统将在 fxp0 上进行流量的收发。 如果 fxp0 的连接中断, 则 fxp1 会自动成为激活连接。 如果主端口的连接恢复, 则它又会成为激活连接。