我有一个 FreeBSD 8.0 虚拟盒,带有两个以太网接口,em0 和 em1。em0 是 192.168.1.99,em1 是 192.168.1.100。两者都“附加到:Bridged Adapter
”。
当两者都上升时,如果我说
# route add default 192.168.1.1
# netstat -rn
# default 192.168.1.1 UGS 1 6 em0
到目前为止一切顺利。它选择了 em0。
# ifconfig em0 down
# route delete 0.0.0.0
# route add default 192.168.1.1
# netstat -rn
# default 192.168.1.1 UGS 1 6 *em0*
好的。所以它仍然即使 em0 已关闭,它也会选择它(它一定非常喜欢它)。我已测试过,如果我为 em0 选择另一个 IP(例如 10.0.0.1),它会选择 em1 作为路由。
这让我很疑惑:如何让 freebsd 选择 em1 作为传出接口?在 linux 中我记得我们可以用参数来做到这一点dev
。
PS 我确实尝试使用 -interface 选项 - 没有成功。我试过
# route add default 192.168.1.1 -interface 192.168.1.100
# route add default 192.168.1.1 -interface em1
结果是
0.0.0.0&0xc0a80164 192.168.1.1 US 0 0 em0 =>
我正在使用 FreeBSD 8.0-STABLE。如能得到任何帮助,我将不胜感激。
编辑:在 Debian Lenny 上,同样的操作套件正确地选择了向上作为传出接口。当两者都处于 up 状态时
route add default gw 192.168.1.1
选择 eth2 路由添加默认 gw 192.168.1.1 dev eth0 选择 eth0
因此一定有办法在 FreeBSD 上实现这一点,对吗?
答案1
听起来您需要两个 IP 和冗余连接。如果是这样,您需要创建一个 LAGG 适配器,将其连接到两个 NIC,并将 IP 放在 LAGG 接口上。
如果不是这样,您能准确描述您想要实现的目标吗?
答案2
您需要使用-ifp
标志,而不是-interface
。
答案3
您应该查看 FreeBSD 手册中的“链路聚合和故障转移”https://www.freebsd.org/doc/handbook/network-aggregation.html