我有一个 FreeBSD 9.1-RELEASE-p1 系统,带有三个网卡,我正在使用:igb0、sfxge1 和 sfxge2。igb0 用于互联网访问,是默认网关。我需要使用其他两个网卡来创建 bridge0。系统启动时,我执行以下命令并启动并运行网桥,没有任何问题。
ifconfig bridge0 create
ifconfig bridge0 addm sfxge0 addm sfxge1 up
ifconfig bridge0 inet 172.18.0.1/24
当我想要在启动期间设置桥接时,问题就开始了。阅读后文档并根据它,我想到了以下内容/etc/rc.conf
:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm sfxge0 addm sfxge1 up"
ifconfig_sfxge0="up"
ifconfig_sfxge1="up"
ifconfig_bridge0="inet 172.18.0.1/24"
重启时,系统在启用 igb0 上的默认网关时卡住了。唯一的办法是按 ctrl+alt+delete,重启到单一模式并修改/etc/rc.conf
。配置的一部分,定义 igb0 和默认网关:
defaultrouter="10.100.4.254"
hostname="zfstank"
ifconfig_igb0="up"
ifconfig_igb0="inet 10.100.4.1 netmask 255.255.255.0"
我尝试修改 bridge0 设置的最后一行ifconfig_bridge0_alias0="inet 172.18.0.1/24"
并修改 bridge 设置行ifconfig_bridge0="addm sfxge0 addm sfxge1 inet 172.18.0.1/24 up"
- 导致同样的问题 - 卡在默认网关创建上。
在启动过程中,我看到 bridge0 设置完成后 igb0 开始上线。
if_bridge 和 sfxge 被编译进内核。
更新1:以下是我的其他内容/etc/rc.conf
:
sshd_enable="YES"
ntpd_enable="YES"
zfs_enable="YES"
sfxge_load="YES"
更新2:
当我按下 Ctrl+T 时:
load 0.03 cmd: route 1136 [keglimit] 281.48r 0.00u 0.00s 0% 1080k
更新3:
看起来问题是由于 mbufs 快速耗尽造成的。FreeNAS 的维基指出,这在多端口 em 和 igb 卡上很常见,并且大多与桥接无关(如果我错了,请纠正我)。
因此,在我添加以下行/boot/loader.conf
并启动后,系统就正确完成启动。
kern.ipc.nmbclusters="131072"
hw.igb.num_queues=1
答案1
不能有多行相同的配置。后面的行将覆盖前面的行。
在不知道文件其余部分rc.conf
是什么样子的情况下,它应该是这样的:
hostname="zfstank"
defaultrouter="10.100.4.254"
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="sfxge0 sfxge1"
ifconfig_bridge0="inet 172.18.0.1/24"
ifconfig_sfxge0="up"
ifconfig_sfxge1="up"
ifconfig_igb0="inet 10.100.4.1 netmask 255.255.255.0"
笔记:
- 顺序并不重要,但这更容易阅读。
- 除非没有其他配置,否则没有必要明确“启动”并连接。
答案2
这:
ifconfig_bridge0="addm sfxge0 addm sfxge1 up"
...
ifconfig_bridge0="inet 172.18.0.1/24"
实际上与第二行相同。这尝试在未配置的桥接接口上设置 IP - 这可能是问题的原因。您应该添加inet 172.18.0.1/24
到第一行并删除第二行。
您能否从 rc.conf 中删除任何接口配置并在 rc.local 中对其进行注释,然后尝试这种方法?
defaultrouter="10.100.4.254"
hostname="zfstank"
ifconfig_igb0="inet 10.100.4.1/24 up"
ifconfig_sfxge0="up"
ifconfig_sfxge1="up"
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"
autobridge_bridge0="sfxge0 sfxge1"
ifconfig_bridge0="inet 172.18.0.1/24 up"
这改变了一些事物的秩序。