web-dev-qa-db-ja.com

FreeBSD 9.1; bridge0とデフォルトゲートウェイの問題

私は3つのNICを備えたFreeBSD9.1-RELEASE-p1システムを持っています。私はigb0、sfxge1、sfxge2を使用しています。 igb0はインターネットアクセスに使用され、デフォルトゲートウェイです。他の2つのNIC、bridge0を作成するために使用する必要があります。システムが起動したら、次のコマンドを実行して、問題なくブリッジを起動して実行します。

ifconfig bridge0 create
ifconfig bridge0 addm sfxge0 addm sfxge1 up
ifconfig bridge0 inet 172.18.0.1/24 

起動中にブリッジを起動するように設定したいときに問題が発生します。 documentation を読んでそれをフォローした後、/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とデフォルトゲートウェイを定義するconfigの部分:

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"を変更しようとしました-同じ問題が発生しました-デフォルトゲートウェイの作成でスタックします。

起動中に、bridge0のセットアップ後にigb0がオンラインになるのがわかります。

if_bridgeとsfxgeはカーネルにコンパイルされました。

Update1:これが私の/etc/rc.confにある他のものです:

sshd_enable="YES"
ntpd_enable="YES"

zfs_enable="YES"
sfxge_load="YES"

Update2

what happens when it hangs

Ctrl + Tを押すと:

load 0.03  cmd: route 1136 [keglimit] 281.48r 0.00u 0.00s 0% 1080k

Update3

問題はmbufの急速な枯渇が原因だったようです。 FreeNASのwiki が指摘しているように、これはマルチポートemおよびigbカードで一般的であり、ほとんどブリッジとは関係ありません(私が間違っている場合は訂正してください)。

したがって、/boot/loader.confに次の行を追加して起動した後、システムは正常に起動を終了しました。

kern.ipc.nmbclusters="131072"
hw.igb.num_queues=1
3
sashk

同じ構成の複数の行を持つことはできません。後の行は前の行を上書きします。

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"

ノート:

  • 順序は関係ありませんが、これは非常に読みやすくなっています。
  • 他の構成がない場合を除いて、明示的に「アップ」してインターフェースする必要はありません。
4
Chris S

この:

ifconfig_bridge0="addm sfxge0 addm sfxge1 up"
...
ifconfig_bridge0="inet 172.18.0.1/24"

実際、2行目と同じです。そして、これは未構成のブリッジインターフェイスにIPを設定しようとします-これはおそらく問題の原因です。最初の行にinet 172.18.0.1/24を追加し、2番目の行を削除する必要があります。


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"

これにより、順序が少し変わります。

1
dsznajder