如何在Ubuntu 6.10中设置网络绑定
为什么你可能想这样做:
网络绑定(又称为端口中继)允许您将多个网络端口组合成一个组,有效地将多个接口的带宽聚合成一个连接。 例如,您可以将两个千兆字节的端口聚合成一个两千兆字节的中继端口。 绑定主要用于提供网络负载平衡和容错。 首先,我们将运行两种不同的网络工具来检查网络连接和能力。 运行mii工具检查您的接口以进行连接:
mii-tool
为了我们的目的,我们假设你有三个接口。 mii-tool命令的结果如下:
eth0: negotiated 100baseTx-HD, link ok
eth1: negotiated 100baseTx-HD, link ok
eth2: negotiated 100baseTx-HD, link ok
接下来,为每个接口运行ethtool来检查哪些功能:
ethtool eth0 && ethtool eth1 && ethtool eth3
ethtool命令的结果如下:
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: Unknown! (65535)
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: no
Settings for eth3:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: Unknown! (65535)
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: no
接下来,我们需要安装ifenslave。 这是一个简单的安装:
apt-get update && apt-get install ifenslave
模式类型选项:
您可以根据需要设置您的债券接口。 为了做到这一点,你只需要改变下面的例子中所描述的模式类型(mode = X)。 有七种模式类型可用。 它们如下:
mode = 0
此模式使用循环策略:从第一个可用从站到最后一个顺序发送数据包。 此模式提供负载平衡和容错功能。
mode = 1
此模式使用Active-backup策略:绑定中只有一个从站处于活动状态。 如果并且仅当主动从机发生故障,则不同的从站将变为活动状态。 绑定的MAC地址只能在一个端口(网络适配器)外部可见,以避免混淆交换机。 此模式提供容错功能。 主选项影响此模式的行为。
mode = 2
基于[(源MAC地址与目的地MAC地址异或)模数从计数]进行发送。 这为每个目的地MAC地址选择相同的从站。 此模式提供负载平衡和容错功能。
mode = 3
广播策略:在所有从接口上传输所有内容。 此模式提供容错功能。
mode = 4
IEEE 802.3ad动态链路聚合。 创建共享相同速度和双工设置的聚合组。 根据802.3ad规范,在活动聚合器中使用所有从站。
*先决条件:
1.基础驱动程序中的Ethtool支持,用于检索每个从站的速度和双工。
2.支持IEEE 802.3ad动态链路聚合的交换机。 大多数交换机将需要某种类型的配置才能启用802.3ad模式
mode = 5
自适应传输负载平衡:通道绑定,不需要任何特殊的开关支持。 根据每个从站上的当前负载(相对于速度计算)分配出站流量。 当前从站接收到流量。 如果接收从站故障,则另一个从站接管故障接收从站的MAC地址。
*先决条件:Ethtool支持基本驱动程序,以检索每个从站的速度。
模式= 6
自适应负载平衡:包括平衡传输负载平衡和IPV4流量的接收负载平衡,不需要任何特殊的交换机支持。 接收负载分担通过ARP协商实现。 绑定驱动程序拦截本地系统发出的ARP回复,并使用绑定中的一个从站的唯一硬件地址覆盖源硬件地址,以使不同的对等体对服务器使用不同的硬件地址。
现在将以下项目附加到您的别名文件中:
pico /etc/modprob.d/aliases
# Append to the bottom of this file: alias bond0 bonding alias eth0 e100 alias eth1 e100 alias eth2 e100 options bonding mode=0 miimon=100
接下来,将以下项目添加到您的i386文件中:
pico /etc/modprob.d/arch/i386
# Append to the bottom of this file: alias bond0 bonding options bonding mode=0 miimon=100 downdelay=200 updelay=200
现在我们必须修改界面文件。 首先注释物理接口eth0,eth1等上的任何信息,并创建一个虚拟接口,如bond0,配置如下,并确保选择一个唯一的hwaddress。 确保保留回环接口配置。
pico /etc/network/interfaces
它应该看起来像这样:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #auto eth0 #iface eth0 inet static # address 192.168.0.120 # netmask 255.255.255.0 # network 192.168.0.0 # broadcast 192.168.0.255 # gateway 192.168.0.1 auto bond0 iface bond0 inet static address 192.168.0.120 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 hwaddress ether 00:03:B3:48:50:2C post-up ifenslave bond0 eth0 eth1
保存文件,然后重新启动系统:
shutdown -r now