有没有办法从同一个 IP/MAC 获得多个 TCP 连接以使用 LACP 配置中的所有物理链路?
这是我的设置:
中央交换机 (Meraki MS42P) 具有与一台服务器的 10GbE 链路和与建筑物另一侧的接入交换机 (Cisco 2960-CX) 的 10GbE 链路。第二台服务器在接入交换机的 LACP 配置中使用 4 x 1GbE。
如果我从网络中任何地方的多个 1GbE 客户端分别打开一个连接,我可以使 4 x 1GbE 聚合链路饱和(即最多 4 个客户端同时获得完整的 1Gb)。但是,如果我打开从第一台服务器(通过单个 10GbE 链接到交换机)到第二台服务器的 4 个同时 TCP 连接,它们总是共享一个 1GbE 链接。
这取决于负载平衡算法,该算法决定哪些连接应该始终在同一条线上。
在这方面我对 Meraki 不熟悉,但对于 Cisco 而言,默认设置
source-dest-mac
是来自同一源 MAC 地址和目标 MAC 地址的连接将通过同一条线路。您希望
source-dest-port
从不同端口或到不同端口的每个连接都将通过 LAGG 组的另一条线路。将 LACP 替换为 Roundrobin 绑定模式 (
mode=0
)。将 Cisco 端口通道模式更改为on
。首先从该端口通道组中删除所有接口。为什么我建议你使用 RR(循环)?当交换机之间的距离很长或连接可能损坏时,LACP 经常应用在交换机之间。Linux 可以为 LACP 使用 level3+level4 负载平衡算法,但没有交换机或路由器可以做到这一点。Level4 表示源和目标 IP 端口将用于计算传输哈希。如果您将直接在两台服务器之间使用 LACP,那么您将为每个 IP 连接提供 1Gbit/s。使用 RR,您将获得 4Gbit/s 的全速连接。但如果四个链接之一损坏,您将获得 25℅ 丢包。服务器和交换机在一个房间里的频率如何?这不是在我 15 年的实践中。