FreeBSD 9.1; bridge0和默认网关问题

我有一个有三个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" 

笔记:

  • 顺序并不重要,但是这样更容易阅读。
  • 除非没有其他configuration,否则没有必要明确“启动”和接口。

这个:

 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" 

这改变了一些事情的顺序。