使用 lagg(4) 接口, 能够将多个网络接口聚合为一个虚拟接口, 以提供容灾和高速连接的能力。
只通过主网口收发数据。 如果主网口不可用, 则使用下一个激活的网口。 您在这里加入的第一个网口便会被视为主网口; 此后加入的其他网口, 则会被视为故障转移的备用网口。 如果发生故障转移之后, 原先的网口又恢复了可用状态, 则它仍会作为主网口使用。
Cisco® Fast EtherChannel® (FEC) 是一种静态配置, 并不进行节点间协商或交换以太网帧来监控链路情况。 如果交换机支持 LACP, 则应使用后者而非这种配置。
FEC 将输出流量在激活的网口之间以协议头散列信息为依据分拆, 并接收来自任意激活网口的入流量。 散列信息包含以太网源地址、 目的地址, 以及 (如果有的话) VLAN tag 和 IPv4/IPv6 源地址及目的地址信息。
支持 IEEE® 802.3ad 链路聚合控制协议 (LACP) 和标记协议。 LACP 能够在节点与若干链路聚合组之间协商链路。 每一个链路聚合组 (LAG) 由一组相同速度、 以全双工模式运行的网口组成。 流量在 LAG 中的网口之间, 会以总速度最大的原则进行分摊。 当物理链路发生变化时, 链路聚合会迅速适应变动形成新的配置。
LACP 也是将输出流量在激活的网口之间以协议头散列信息为依据分拆, 并接收来自任意激活网口的入流量。 散列信息包含以太网源地址、 目的地址, 以及 (如果有的话) VLAN tag 和 IPv4/IPv6 源地址及目的地址信息。
这是 FEC 模式的别名。
将输出流量以轮转方式在所有激活端口之间调度, 并从任意激活端口接收进入流量。 这种模式违反了以太网帧排序规则, 因此应小心使用。
在这个例子中, 我们将 FreeBSD 的两个网口作为一个负载均衡和故障转移链路聚合组接到交换机上。 在此基础上, 还可以增加更多的网口, 以提高吞吐量和故障容灾能力。 由于以太网链路上两节点间的帧序是强制性的, 因此两个节点之间的连接速度, 会取决于一块网卡的最大速度。 传输算法会尽量采用更多的信息, 以便将不同的网络流量分摊到不同的网络接口上, 并平衡不同网口的负载。
在 Cisco® 交换机上将
FastEthernet0/1
和
FastEthernet0/2
这两个网口添加到
channel-group 1
:
interface FastEthernet0/1 channel-group 1 mode active channel-protocol lacp
!interface FastEthernet0/2 channel-group 1 mode active channel-protocol lacp
使用
fxp0
和 fxp1
创建 lagg(4) 接口, 启用这个接口并配置 IP 地址
10.0.0.3/24
:
#
ifconfig fxp0 up
#
ifconfig fxp1 up
#
ifconfig lagg0 create
#
ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24
用下面的命令查看接口状态:
#
ifconfig lagg0
标记为 ACTIVE 的接口是激活据合组的部分, 这表示它们已经完成了与远程交换机的协商, 同时, 流量将通过这些接口来收发。 在 ifconfig(8) 的详细输出中会给出 LAG 的标识。
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 media: Ethernet autoselect status: active laggproto lacp laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
如果需要查看交换机上的端口状态, 则应使用 show
lacp neighbor
命令:
switch# show lacp neighbor Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 neighbors Partner's information: LACP port Oper Port Port Port Flags Priority Dev ID Age Key Number State Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D
如欲查看进一步的详情, 则需要使用 show lacp neighbor
detail
命令。
如果希望在系统重启时保持这些设置, 应在
/etc/rc.conf
中增加如下配置:
ifconfig_fxp0
="up" ifconfig_fxp1
="up" cloned_interfaces="lagg0
" ifconfig_lagg0
="laggproto lacp laggportfxp0
laggportfxp1
10.0.0.3/24
"
故障转移模式中, 当首选链路发生问题时,
会自动切换到备用端口。 首先启用成员接口,
接着是配置 lagg(4) 接口, 其中, 使用
fxp0
作为首选接口,
fxp1
作为备用接口,
并在整个接口上配置 IP 地址 10.0.0.15/24
:
#
ifconfig fxp0 up
#
ifconfig fxp1 up
#
ifconfig lagg0 create
#
ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24
创建成功之后, 接口状态会是类似下面这样, 主要的区别是 MAC 地址和设备名:
#
ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255 media: Ethernet autoselect status: active laggproto failover laggport: fxp1 flags=0<> laggport: fxp0 flags=5<MASTER,ACTIVE>
系统将在
fxp0
上进行流量的收发。 如果
fxp0
的连接中断, 则 fxp1
会自动成为激活连接。 如果主端口的连接恢复, 则它又会成为激活连接。
如果希望在系统重启时保持这些设置, 应在
/etc/rc.conf
中增加如下配置:
ifconfig_fxp0
="up" ifconfig_fxp1
="up" cloned_interfaces="lagg0
" ifconfig_lagg0
="laggproto failover laggportfxp0
laggportfxp1
10.0.0.15/24
"
对于使用笔记本的用户来说, 通常会希望使用无线网络接口作为备用接口, 以便在有线网络不可用时继续保持网络连接。 通过使用 lagg(4), 我们可以只使用一个 IP 地址的情况下, 优先使用性能和安全性都更好的有线网络, 同时保持通过无线网络连接来传输数据的能力。
要实现这样的目的, 就需要将用于连接无线网络的物理接口的 MAC 地址修改为与所配置的 lagg(4) 一致, 后者是从主网络接口, 也就是有线网络接口, 继承而来。
在这个配置中, 我们将优先使用有线网络接口
bge0
作为主网络接口,
而将无线网络接口
wlan0
作为备用网络接口。 这里的
wlan0
使用的物理设备是
iwn0
,
我们需要将它的 MAC 地址修改为与有线网络接口一致。
为了达到这个目的首先要得到有线网络接口上的
MAC 地址:
#
ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:21:70:da:ae:37 inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active
您可能需要将 bge0
改为您系统上实际使用的接口,
并从输出结果中的 ether
这行找出有线网络的 MAC 地址。 接着是修改物理的无线网络接口,
iwn0
:
#
ifconfig iwn0 ether 00:21:70:da:ae:37
启用无线网络接口, 但不在其上配置 IP 地址:
#
ifconfig wlan0 create wlandev iwn0 ssid my_router up
启用 bge0
接口。 创建
lagg(4) 接口, 其中 bge0
作为主网络接口, 而以 wlan0
作为备选接口:
#
ifconfig bge0 up
#
ifconfig lagg0 create
#
ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0
新创建的接口的状态如下, 您系统上的 MAC 地址和设备名等可能会有所不同:
#
ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:21:70:da:ae:37 media: Ethernet autoselect status: active laggproto failover laggport: wlan0 flags=0<> laggport: bge0 flags=5<MASTER,ACTIVE>
接着用 DHCP 客户端来获取 IP 地址:
#
dhclient lagg0
如果希望在系统重启时保持这些设置, 应在
/etc/rc.conf
中增加如下配置:
ifconfig_bge0="up" ifconfig_iwn0="ether 00:21:70:da:ae:37" wlans_iwn0="wlan0" ifconfig_wlan0="WPA" cloned_interfaces="lagg0
" ifconfig_lagg0
="laggproto failover laggport bge0 laggport wlan0 DHCP"
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<[email protected]>.
关于本文档的问题请发信联系
<[email protected]>.