我已将我的服务器配置为绑定接口以实现 2Gbit 网络速度,但 ubuntu 似乎无法超过 1gbit,并且服务器的传出流量在 2 个接口上不平衡。
该服务器后面的交换机是 Juniper 交换机,所有配置都经过 Juniper JTac 验证,因此交换机端不应该有任何问题。它配置为 LACP 802.3ad。
ubuntu上的配置如下:
auto p255p1
iface p255p1 inet manual
bond-master bond0
auto p255p2
iface p255p2 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address xx.xx.xx.x
netmask 255.255.255.248
gateway xx.xx.xx.xx
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves none
有没有人有这种配置的经验并且知道是否有任何特殊配置可以解决这个问题?
再次:这里的问题是,来自服务器的传出流量不平衡,并且只通过一个接口,传入流量是平衡的,并且来自两个接口,但它完全限制为 1gbit,不能达到 2gbit。
谢谢
答案1
以下配置对我有用。关键部分是 bond-xmit-hash-policy layer3+4,它控制传输数据包的接口哈希策略。 https://www.kernel.org/doc/Documentation/networking/bonding.txt这也大致相当于交换机在数据包负载平衡方面所做的工作。http://kb.juniper.net/InfoCenter/index?page=content&id=KB22943默认使用目标 MAC 地址的简单 XOR,因此当您的目标是同一台服务器时,将产生相同的接口。使用第 3+4 层时,源端口号和目标端口号也会发挥作用,从而导致大多数单服务器流量均衡。
auto bond0
iface bond0 inet manual
up ifconfig $IFACE up
slaves eth4 eth5
bond-mode 4
bond-miimon 100
bond-downdelay 200
bond-updelay 200
bond-lacp-rate 1
bond-xmit-hash-policy layer3+4
6: eth4: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 90:e2:ba:69:b6:c8 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
605614572345 28863625 0 14 0 11413
TX: bytes packets errors dropped carrier collsns
13213800052 20824630 0 0 0 0
7: eth5: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 90:e2:ba:69:b6:c8 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
601225223800 25966547 0 14 0 11219
TX: bytes packets errors dropped carrier collsns
8500820678 14501120 0 0 0 0
请注意,我在配置中省略了 mtu 9000 语句,因为您的交换机可能配置为 MTU 1500。