我有一个有三个nics的FreeBSD 9.1-RELEASE-p1系统,我用的是:igb0,sfxge1和sfxge2。 igb0用于互联网访问,是默认网关。 其他两个nics,我需要用来创buildbridge0。 当系统启动时,我执行下面的命令,并build立和运行没有任何问题。
ifconfig bridge0 create ifconfig bridge0 addm sfxge0 addm sfxge1 up ifconfig bridge0 inet 172.18.0.1/24
当我想在启动过程中设置网桥时,问题就开始了。 读完文档后,我在/etc/rc.conffind了以下内容:
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 。 configuration部分,它定义了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"并修改网桥设置线ifconfig_bridge0="addm sfxge0 addm sfxge1 inet 172.18.0.1/24 up" – 导致相同的问题 – 陷入在默认网关创build。
在启动过程中,我看到在bridge0被设置后,igb0会在线。
if_bridge和sfxge被编译进内核。
Update1 :这是我在/etc/rc.conf其他东西:
sshd_enable="YES" ntpd_enable="YES" zfs_enable="YES" sfxge_load="YES"
Update2 :

当我按下Ctrl + T时:
load 0.03 cmd: route 1136 [keglimit] 281.48r 0.00u 0.00s 0% 1080k
Update3 :
看起来问题是由于快速耗尽mbufs。 正如FreeNAS的维基指出的那样,这在多端口的em和igb卡上是很常见的,而且大部分与bridge没有任何关系(如果我错了,就纠正我)。
所以当我在/boot/loader.confjoin了以下几行代码并引导后,系统正常启动。
kern.ipc.nmbclusters="131072" hw.igb.num_queues=1
您不能有多个相同configuration的行。 后面的行将覆盖前者。
不知道你的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"
笔记:
这个:
ifconfig_bridge0="addm sfxge0 addm sfxge1 up" ... ifconfig_bridge0="inet 172.18.0.1/24"
实际上和第二条线一样。 这试图在未configuration的网桥接口上设置IP – 这可能是问题的原因。 您应该将inet 172.18.0.1/24添加到第一行并删除第二行。
你可以从rc.conf中删除任何接口configuration,并在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"
这改变了一些事情的顺序。