[FreeBSD-users-jp 95889] Re: net boot & diskless & ipfw = フリーズ?

IWAMOTO Kouichi sue @ iwmt.org
2016年 7月 19日 (火) 15:50:08 UTC


岩本といいます。

On Tue, 19 Jul 2016 21:36:38 +0900
もじもじ <mojimoji528 at yahoo.co.jp> wrote:

> mfs で /tmp /var をマウントしてやってみましたが、ダメで
> した。

おそらく、/tmp や /var だけではなく / 自体で nfs を使っていますよね。
だとしたら妥当な挙動です。
ipfw のデフォルトのルールは送受信すべてのパケットの拒否です。なので、
ipfw が有効になった時点で nfs でマウントした領域の読み書きがすべて
行えなくなります。

> もしかしたら、別の根本的な問題なのかもしれません。
> 
> なんせ、ipfw disable の状態で /var /tmp を mfs で起動。
> その後、/etc/rc.d/ipfw start でスタート。
> type は open。
> 
> これで、刺さります。

/etc/rc.d/ipfw では required_modules に ipfw が指定されています。
その為、/etc/rc.d/ipfw start 実行時にまず ipfw.ko がロードされます。
この時点ではデフォルトのルールしか無い為、前述したようにすべての
パケットの送受信が拒否されて、nfs でマウントした領域の読み書きが
行えなくなります。
続いて /etc/rc.firewall が実行されて、firewall_type=open に従って
ルールが設定されるはずですが、ルールを設定するコマンドが /sbin/ipfw
なので、/ (/sbin) が nfs だと ipfw コマンドが実行できなくて固まります。

対策としては、以下のどちらかを行って ipfw のデフォルトルールを accept
にすればいいと思います。

・/boot/loader.conf に net.inet.ip.fw.default_to_accept=1 と書く
・IPFW_DEFAULT_TO_ACCEPT を定義してカーネルを再構築する

# /boot/loader.conf の方は pxe でも使えるのか自信がないです

-- 
いわもと こういち(sue at iwmt.org/sue at postfix.jp/sue at TeraTerm.Net)
# なるようになれ、明日もイケイケ♪


freebsd-users-jp メーリングリストの案内