FreeBSD:NIC绑定/链接聚合/中继/链接故障转移
时间:2019-11-20 08:54:04 来源:igfitidea点击:
在Linux中,如何设置网卡模式 Bonding / Link Aggregation / Trunking / Link Failover?
在FreeBSD中,如何对网卡进行绑定/链接聚合/中继/链接故障转移等设置?
如何将多个网络接口的链接聚合设置为一个虚拟网口?
如何配置链接故障转移Link Failover?
Linux如何配置Trunking?
Linux如何配置网口bonding?
FreeBSD如何配置链路聚合Link Aggregation?
如何加载驱动程序lagg?
在loader.conf中,添加下面这行,这样在引导时将驱动程序作为模块加载:
if_lagg_load="YES"
或者直接执行下面的操作:
# echo 'if_lagg_load="YES"' >> /boot/loader.conf
使用kldload命令在线加载驱动:
# kldload if_lagg # kldstat
关于自定义FreeBSD内核的说明
如果内核是自己编译的,那么编译时,需要将该驱动程序编译到内核中。
即内核配置文件中,需要添加下面这行:
device lagg
如何创建链路聚合接口(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创建链路聚合的示例
我们有两个千兆网口,将使用它们来做链路聚合。
首先,您无需为em0和em1接口分配任何IP。
不要通过/etc/rc.conf配置它们。
将两个网口激活:
# ifconfig em0 up # ifconfig em1 up
创建一个名为lagg0的链路聚合接口:
# 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:Bounding接口名称。
- 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:
# 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"
这样,在系统重启后,配置不会丢失。