FreeBSD:NIC绑定/链接聚合/中继/链接故障转移教程
我的HP服务器中安装了两个Intel千兆网卡。
我知道如何在CentOS Linux下设置边界,但是我想在FreeBSD下做同样的事情。
为了在FreeBSD 7.x服务器下提供容错和高速链接,如何将多个网络接口的链接聚合设置为一个虚拟中继接口?
FreeBSD具有滞后的链接聚合和链接故障转移接口。
延迟接口允许将多个网络接口聚合为一个虚拟延迟接口,以提供容错和高速链接的目的。
如何加载滞后驱动程序?
首先,您需要将滞后驱动程序加载到内存中。
要在引导时将驱动程序作为模块加载,请将以下行放在loader.conf中:
if_lagg_load="YES"
执行以下命令以将行添加到/boot/loader.conf文件,执行:
# echo 'if_lagg_load="YES"' >> /boot/loader.conf
要使用当前会话加载驱动程序,请使用kldload命令,执行:
# kldload if_lagg # kldstat
关于自定义FreeBSD内核的说明
如果您有定制的编译内核,则需要将该驱动程序编译到内核中,将以下行放入FreeBSD内核配置文件中:
device lagg
如何创建滞后界面?
可以使用以下命令创建滞后接口:
# ifconfig laggN create # ifconfig lagg0 create
它可以使用通过laggproto proto选项指定的不同链路聚合协议。
该驱动程序当前支持以下聚合协议:
聚合协议 | 说明 |
---|---|
failover | 仅通过主端口发送和接收流量。如果主端口不可用,则使用下一个活动端口。添加的第一个接口是主端口;之后添加的任何接口都将用作故障转移设备。 |
fec | 支持Cisco EtherChannel。这是静态设置,不会与对等方协商聚合或交换帧以监视链路。 |
lacp | 支持IEEE 802.3ad链路聚合控制协议(LACP)和标记协议。 LACP将与对等方协商到一个或多个链接聚合组的一组可凝集的链接。每个LAG由相同速度的端口组成,并设置为全双工操作。 LAG中端口之间的流量将以最大的总速度进行平衡,在大多数情况下,只有一个LAG包含所有端口。如果物理连接发生变化,链路聚合将迅速收敛到新的配置。 |
loadbalance | 根据哈希协议头信息平衡活动端口上的传出流量,并接受来自任何活动端口的传入流量。这是静态设置,不与对等方协商聚合或交换帧以监视链路。哈希包括以太网源和目标地址,以及(如果可用)VLAN标记以及IP源和目标地址。 |
roundrobin | 使用轮询调度程序通过所有活动端口分配传出流量,并接受来自任何活动端口的传入流量。 |
none | 此协议无济于事:它禁用任何流量而不禁用lagg接口本身。 |
使用LACP创建链路聚合的示例
要使用带有两个em英特尔®PRO/1000千兆位以太网适配器驱动程序千兆位以太网接口的LACP创建802.3ad链路聚合,请使用以下过程。
首先,您无需为em0和em1接口分配任何IP。
不要通过/etc/rc.conf配置它们。
接下来,打开两个接口,执行:
# ifconfig em0 up # ifconfig em1 up
创建一个名为lagg0的lagg接口,执行:
# ifconfig lagg0 create
最后,为lagg0分配一个IP地址:
# ifconfig lagg0 laggproto lacp laggport em0 laggport em1 10.24.116.2 netmask 255.255.255.192
如果您需要在NIC之间而不是lacp之间创建故障转移,请执行:
# ifconfig lagg0 up laggproto failover laggport em0 laggport em1 10.24.116.2 netmask 255.255.255.192
要验证链接的状态,请执行:
# ifconfig
您可能还需要添加默认网关,执行:
# route add default 10.24.116.100 # netstat -nr
其中:
- lagg0:边界接口名称。
laggproto lacp
:绑定协议。有关可能的值,请参见上表。- laggport em0:您的第一个以太网接口名称。
- laggport em1:您的第二个以太网接口名称。
10.24.116.2
:lagg0接口的IP地址。netmask 255.255.255.192
:lagg0接口的网络掩码地址。
如何创建活动的故障转移界面?
以下示例使用活动故障转移接口来使用两个网络设备在有线和无线网络之间建立漫游。
每当拔出有线主接口时,将使用无线故障转移设备:
# ifconfig em0 up # ifconfig ath0 nwid my_ssid up # ifconfig lagg0 laggproto failover laggport em0 laggport ath0 192.168.1.1 netmask 255.255.255.0
如何使链路聚合配置持久化?
要使链路聚合配置持久化,请使用/etc/rc.conf中的cloned_interfaces变量。
打开/etc/rc.conf文件,执行:
# vi /etc/rc.conf
追加以下配置:
ifconfig_em0="up" ifconfig_em1="up" cloned_interfaces="lagg0" ifconfig_lagg0="laggproto failover laggport em0 laggport em1" ipv4_addrs_lagg0="10.24.116.2/32" defaultrouter="10.24.116.100"
保存并关闭文件。
现在,FreeBSD将在系统重启后记住您的配置。