![使用 freebsd8 和 cicso 3550 进行链路聚合,我做错了什么?](https://linux22.com/image/514502/%E4%BD%BF%E7%94%A8%20freebsd8%20%E5%92%8C%20cicso%203550%20%E8%BF%9B%E8%A1%8C%E9%93%BE%E8%B7%AF%E8%81%9A%E5%90%88%EF%BC%8C%E6%88%91%E5%81%9A%E9%94%99%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F.png)
嘿,我正在尝试使用 LACP 设置链路聚合(好吧,使用我的设置提供增加带宽和故障转移的任何方法都可以)。我在 3 台机器上运行 FreeBSD 8.0。M1 正在运行 2 个 10/100 以太网卡,使用 lagg 设置链路聚合。供参考:
ifconfig em0 up
ifconfig tx0 up
ifconfig create lagg0
ifconfig lagg0 laggproto lacp laggport tx0 laggport em0 192.168.1.16 netmask 255.255.255.0
我将它们插入 Cicso 3550 的端口 1 和 2。然后运行:
configure terminal
interface range Fa0/1 - 2
switchport mode access
switchport access vlan 1
channel-group 1 mode active
(vlan 1 中的所有内容)现在我能够将其他计算机连接到交换机上的其他端口,并且故障转移工作正常,我可以在传输过程中拔下电缆,流量会重新路由。但是,我没有注意到速度有任何增加。我的测试设置:负载平衡:我尝试了交换机上的 dst 和 src,但似乎都没有提高速度。我正在将 2 个 500 MB 的文件从 lagg 计算机 SCP 到其他计算机(各一个),这些计算机也运行 10/100 全双工卡。我获得向单个主机的传输速度约为 11.2-11.4 Mbps,当同时向两个主机传输时,速度大约是该速度的一半(5.9-6.2)Mbps。据我了解,对于目标负载平衡,路由器应该平衡通过 1 个端口发往 1 台计算机的流量,以及通过不同的(在本例中)另一个端口发往另一台计算机的流量。
使用目标 MAC 地址转发时,当数据包转发到 EtherChannel 时,数据包将根据传入数据包的目标主机 MAC 地址在通道中的端口之间分配。因此,发往同一目标的数据包将通过同一端口转发,而发往不同目标的数据包将通过通道中的不同端口发送。对于 3550 系列交换机,当使用源 MAC 地址转发时,还会为路由 IP 流量启用基于源和目标 IP 地址的负载分配。所有路由 IP 流量都会根据源和目标 IP 地址选择一个端口。两个 IP 主机之间的数据包始终使用通道中的同一端口,而任何其他主机对之间的流量可以使用通道中的不同端口。(关联)
我做错了什么/我需要做什么才能看到速度提升,超越仅使用一张卡所能达到的速度?
编辑:IP/MACS M1:192.168.1.18/00e0291aba80 M2:192.168.1.14/000e0c7739af M3:192.168.1.12/000874a627e5
答案1
http://www.mywushublog.com/2010/04/lagg-freebsd/我按照此设置遇到了类似的情况,现在它可以正常工作了。
答案2
您提到了 SCP,您确定在加密过程中 CPU 没有达到最大值的问题吗?
我将尝试使用 iperf 之类的工具来获取原始数据包速率。
答案3
您的问题似乎很奇怪,从我的角度来看,在交换机上平衡 src-mac 应该可以正常工作。
为了排除故障,我将使用 iperf 并以双向传输(192.168.1.16 -> 192.168.1.1{4,2,8} 和 192.168.1.1{4,2,8} -> 192.168.1.16),看看您是否以其中一种方式获得更好的结果。
在您的测试中,如果您将文件从 192.168.1.16 推送到其他主机,您几乎只会尝试在 FreeBSD 上进行负载平衡,而不是在交换机上进行负载平衡(因为只有来自其他主机的 ACK 数据包才会由交换机进行负载平衡,而且这个数据包非常小)。
如果从 192.168.1.16 到 192.168.1.1{4,2,8} 的传输按预期进行,则意味着交换机配置正常,但 FreeBSD 上的负载平衡未按预期进行。