基础环境
os:FreeBSD 12.3-RELEASE
网卡:Mellanox Technologies ConnectX-4 Lx
交换机:华为ce6820-48S6CQ-B
需求
FreeBSD 通过ConnectX-4 两个端口连接到交换机。 配置端口聚合(bonding、aggregate,port-chanel,portgroup 好多种说法),实现2个端口负载均衡。
配置
FreeBSD侧配置:
kldload if_lagg ### 加载bonding,即freebsd里的lagg内核模块
ifconfig lagg0 create ### 创建lagg接口
ifconfig mce0 up ### 启动mce1 网卡
ifconfig mce1 up ### 启动mce1 网卡
ifconfig lagg0 up laggproto lacp laggport mce0 laggport mce1 ### 启动聚合接口,聚合协议为lacp,同时还有loadbalance/fce/failover/roundrobin和none模式可选
交换机侧配置:
int eth 111
mode lacp-dynamic
持久化配置到服务器上,编辑/etc/rc.conf 配置文件
ifconfig_mce0="up"
ifconfig_mce1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="up laggproto lacp laggport mce0 laggport mce1"
ipv4_addrs_lagg0="x.x.x.x/x"
defaultrouter="x.x.x.x"
FreeBSD Lagg协议的分类
协议 | 说明 |
---|---|
failover | 主备模式,第一个端口为主端口,后续端口为备用端口。流量默认走主端口,主端口故障中断后切换到备用端口 |
LACP | 支持 IEEE 802.3ad 链路聚合控制协议 (LACP) 和标记协议。 LACP 将与一个或多个链路聚合组中的对等方协商一组可聚合链路。 每个 LAG 由相同速度的端口组成,设置为全双工操作。 流量将在总速度最大的 LAG 中的端口之间进行平衡,在大多数情况下,只有一个 LAG 包含所有端口。如果物理连接发生变化,链路聚合将快速收敛到新配置。根据协议标头hash信息平衡活动端口之间的传出流量,并接受来自任何活动端口的传入流量。hash包括以太网源地址和目标地址,以及 VLAN 标记(如果可用)以及 IPv4/IPv6 源地址和目标地址。一般和华为交换机对接时使用 |
FEC | 支持思科 EtherChannel。 这是一种静态设置,不会与对等方协商聚合或交换帧来监控链路,如果交换机支持 LACP,则应改为使用它。根据标头信息hash平衡活动端口之间的传出流量,并接受来自任何活动端口的传入流量。 hash包括以太网源地址和目标地址,以及 VLAN 标记(如果可用)以及 IPv4/IPv6 源地址和目标地址。 |
loadbalance | FEC的别名 |
roundrobin | 使用轮询分发流量,通过所有活动端口分配传出流量,并接受来自任何活动端口的传入流量。 此模式将违反以太网帧顺序,应谨慎使用。大概率负载不均。 |
none | 这个协议什么都不做:它在不禁用 lagg 接口本身的情况下禁用任何流量。 |