使用Linux进行以太网绑定的技巧和调优

使Linux绑定驱动程序正常工作只是开始:充分利用它需要一些挖掘。

 By 卡拉·施罗德
第1页,共2页

上个星期 我们提出了一个快速的以太网绑定设置,该设置不需要两个特殊的交换机就可以聚合两个以太网接口的带宽,因此它可以与普通的老式廉价哑交换机一起使用,这是一件非常好的事情。

Linux绑定驱动程序的这一出色功能有一个阴暗面–它仅适用于允许在接口打开时更改MAC地址的网络接口。的 平衡白 此模式取决于快速ARP欺骗,以通过动态重写MAC地址来欺骗内核,使内核认为这两个物理接口是一个。因此,接口的驱动程序必须支持此功能,而许多驱动程序则不支持。以下是一些不支持的较流行的驱动程序 平衡白:

  • 3c59x 驱动程序,支持EtherLink Vortex,Boomerang,Tornado和Cyclone系列芯片组
  • 郁金香 驱动程序,支持某些ADMtek,D-Link,Netgear,SMC和Znyx接口
  • 通孔 驱动程序,支持板载威盛芯片组

一些确实支持的接口 平衡白是:

  • Intel Pro 100和Pro 1000,使用 e100e1000 司机
  • Broadcom NetXtreme和NetLink(tg3),NetXtreme II(bnx2)和4401(b44)
  • Nvidia CK8S以太网控制器,这是使用nForce和GA-K8NS芯片组的主板的板载控制器(强迫)

无法编译支持的NIC的确切列表,因此,我将向您展示一个巧妙的技巧,以快速找出支持哪些驱动程序 平衡白。您需要一个内核源代码树,您可以在系统上拥有它,或者仅在网上找到一棵。要在线找到一个,只需搜索“ kernel x”。 x 是Linux交叉引用实用程序,很高兴许多站点使用它来维护在线内核源代码树,例如 x.linux.no/source。 (这也包含所有内核文档,这是一本很好的信息,它是一本好书。)找到“自由文本搜索”框,然后输入 set_mac_address。您会得到很多这样的点击:

97%驱动程序/网络/qla3xxx.c
97%驱动程序/网络/defxx.c
96%驱动程序/网络/无线/atmel.c

set_mac_address 是允许在打开接口时更改MAC地址的功能。如果不存在 平衡白 模式不起作用。如果确实存在,则很有可能会。

要搜索自己的本地内核源代码树,请使用 grep 搜索您的 驱动程序/网 目录。您只需要C文件,因为它们包含纯文本格式的源代码:

$ grep -r'set_mac_address'/home/carla/kernel/linux-2.6.22.5/drivers/net/*.c

这不会告诉您品牌或型号名称,但是通过网络搜索您会很快找到它们。

其他粘接选项

到目前为止,我们仅讨论了启用 结合蛋白 选项。但这并不是绑定驱动程序可以做的所有事情。的 模式 option提供了七个选择,而您不必担心接口兼容性。但是,您确实需要考虑您的交换机支持什么。的 平衡rr, 平衡异或广播 模式需要将交换机端口分组在一起。这有各种不同的名称,因此请查找“中继分组”,“ etherchannel”,“端口聚合”或类似名称。 802.3ad在交换机中需要802.3ad支持。

平衡rr或0

这是默认设置,从第一个可用的从属设备到最后一个可用的从属设备按顺序传输数据包,以实现负载平衡和容错能力。

主动备份或1

仅使用了一个绑定从属,其他两个都处于空闲状态,直到活动的从属发生故障。

平衡异或2

这有两种可能的行为,您可以通过 xmit_hash_policy 选项。默认(layer2)是根据MAC地址生成一个简单的传输哈希,以确定哪个从站将承载特定的业务流。这样做的好处是,发往网络对等方的所有流量都将使用相同的接口,而不是将其拆分并可能创建一堆乱序的数据包。

另一个选择 3 + 4层模仿某些Cisco和其他知名网络设备。这可以使跨多个从站的流量条带化,这可能非常快,但也会造成乱序交付。在大多数情况下,在运行良好的网络上,这应该不是问题。

广播或3

这会在所有从属接口上传输所有内容,因此主要在每个接口都连接到连接到单独网络的单独交换机时很有用。

802.3ad或4

这是LAN交换机端口和高端服务器NIC的基于标准的官方链路聚合技术。您仍然需要支持802.3ad的交换机,但是您可以将任何以太网接口与支持Ethtool的驱动程序一起使用。大多数Linux以太网驱动程序支持Ethool,但很少支持。只需运行 ethtool 命令找出来:

# ethtool eth0
eth0的设置:
无可用数据

糟糕,这里没有支持。您应该看到类似以下的输出:

eth1的设置:
支持的端口:“ TP MII”
支持的链接模式:10baseT / Half 10baseT / Full
100baseT /半100baseT /全
'...'

平衡tlb或5

自适应传输负载平衡-传出流量可从绑定接口中受益,而无需交换机支持,但不需要传入。接口驱动程序必须支持Ethtool。这也提供了冗余和故障转移。

平衡白或6

我们都知道这一切–it's similar to 平衡,但发送和接收流量都是绑定的。这需要Ethtool支持,并支持在接口驱动程序中更改活动接口上的MAC地址。

主动备份广播 没有那么多实际应用。 平衡rr802.3ad 对于使用管理型交换机的网络而言,在性能和可用性方面可能是最有用的。

本文最初于2007年9月4日发布
通过网络更新新闻获取最新消息