我在 FreeBSD 8.1 上设置了一个 NFS 服务器,它将为一个 Linux 客户端提供服务。每个盒子都有一个双端口 1gig 光纤卡,每个盒子都通过此链路直接连接到另一个盒子。不涉及开关。
我想我的问题是,既然 FreeBSD 和 Linux 都支持 802.3ad,那么在不使用交换机时,以下配置是正确的方法吗?或者,还有更好的方法?这还支持吗?
通过此设置,我可以在主机之间 ping、通过 NFS 传输文件等。
FreeBSD em2 <-> eth2 Linux em3 <-> eth3
我已经为 802.3ad (lacp) 配置了 em2 和 em3:
lagg0: 标志=8843 公制 0 mtu 1500 选项=9b 以太 00:04:23:c2:c2:e0 inet 192.168.0.1 网络掩码 0xffffffffc 广播 192.168.0.3 媒体:以太网自动选择 状态:活跃 拉格原语 lacp laggport:em3 标志=1c laggport:em2 标志=1c
if_lagg_load =“是” ifconfig_em2="向上" ifconfig_em3="向上" #ifconfig_lagg0="创建" 克隆接口=“lagg0” ifconfig_lagg0="laggproto lacp laggport em2 laggport em3 192.168.0.1 网络掩码 255.255.255.252"
以及用于 802.3ad 绑定的 eth2 和 eth3:
[root@xbox ~]# ifconfig bond0 bond0 链路 encap:以太网 HWaddr 00:04:23:C2:C4:DA inet 地址:192.168.0.2 广播:192.168.0.3 掩码:255.255.255.252 inet6 地址:fe80::204:23ff:fec2:c4da/64 范围:链接 上行广播运行主组播 MTU:1500 指标:1 RX 数据包:140000208 错误:0 丢弃:0 溢出:0 帧:0 TX 数据包:101560577 错误:0 丢弃:0 溢出:0 运营商:0 碰撞:0 txqueuelen:0 RX 字节:3281219872 (3.0 GiB) TX 字节:3609990240 (3.3 GiB)
[root@xbox 网络脚本]# cat ifcfg-bond0 设备=bond0 IPADDR=192.168.0.2 网络=192.168.0.0 网络掩码=255.255.255.252 用户控制=否 BOOTPROTO=无 启动=是 [root@xbox 网络脚本]# cat ifcfg-eth2 设备=eth2 用户控制=否 启动=是 主=债券0 从=是 BOOTPROTO=无 [root@xbox 网络脚本]# cat ifcfg-eth3 设备=eth3 用户控制=否 启动=是 主=债券0 从=是 BOOTPROTO=无 [root@xbox 网络脚本]# tail -n2 /etc/modprobde.conf 别名 bond0 绑定 选项 bond0 模式=802.3ad miimon=100
编辑:我发现,在 FreeBSD 机器上,em2 和 em3 的 MAC 地址是相同的,而在 Linux 机器上,eth2 和 eth3 的 MAC 地址是不同的。
答案1
你可以这样做,但它不会达到你想要的效果。由于 802.11ad 标准的一个深奥要求,即要求通过中继发送到同一主机的数据包按照发送的顺序到达,内核无法通过多个链路将数据包负载平衡到同一主机 - 它可以仅通过一条链路将数据包发送到某些主机,并通过另一条链路将数据包发送到其他一些主机。由于您只有一台主机(在每一端),因此所有数据包最终都会通过一个链路。
答案2
支持您的设置。如果使用链路聚合的主机之间有交换机,则交换机需要支持 LACP,但如果没有交换机,则没有问题。