FreeNAS 0.7.2 で Link aggregation (lagg) を組もうとしたときにはまったのでメモ。
WebGUI で lagg を設定したものの、どうしても lagg を組んだポートで通信が
できなかったのでいろいろやってみたり調査していたりなところで、
FreeNAS のバグトラックに以下の報告があがっているのを発見。
http://sourceforge.net/tracker/index.php?func=detail&aid=3108109&group_id=151951&atid=782616
要約すると以下のとおりらしい(テキトーなので上記 URL を必ず参照のこと)。
・FreeNAS の WebGUI で lagg の設定をすると、lagg に対する ifconfig のオプションに
"-wol" (WakeOnLan オプション)をつけるような設定ファイルを作ってしまう。
・でも lagg に対して "-wol" をつけると invalid argument になってしまい、
lagg の設定が正常に行われない。
・設定が正常に行われないので当然のことながら lagg での通信はできない。
対策としては以下のいずれかを行えばよいのかな?
(1)WebGUI で設定するたびに設定ファイルをエクスポートして、"-wol" を付加する
設定を手動で削除した後インポートしなおす。
具体的には lagg に対する <wakeon>~</wakeon> タグを削除する。
(2)Console setup から Shell に入り、 /conf/config.xml を編集する。
これは WebGUI でエクスポートしたものと同じものなので、同様に lagg に
対する <wakeon>~</wakeon>タグを削除する。
(3)(推測だけど) /etc/rc.d/rcconf.sh を編集し、lagg の時には -wol オプションを
付加しないように修正する。
(rcconf.sh は config.xml をパースして rc.conf を吐き出すスクリプトと思われる)
(1),(2) の方法だと WebGUI で設定を行う都度同様のことを実施する必要があると思われる。
(3) の方法ならば多分修正後はとくに何もしなくても良くなる。
あ、あと lagg に対してデバイスポーリングを有効にした場合でも、
同様に lagg で使えないオプション "polling" が ifconfig のオプションに付加されて
同じ現象が発生したような気がする。
こっちは WebGUI でデバイスポーリングを有効にしなければいいだけだけど。