如何在Ubuntu 6.10中设置网络绑定

如何在Ubuntu 6.10中设置网络绑定 网络绑定,也称为端口中继允许您组合 多个网络端口到一个...

如何在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