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

KIRIYAMA Kazuhiko kiri @ kx.openedu.org
2016年 7月 19日 (火) 04:45:44 UTC


At Sun, 10 Jul 2016 19:09:15 +0900,
Tomoaki AOKI wrote:
> 
> もじもじ様・川崎様
> 
> 青木@名古屋です。 未だ誰からもツッコミが入りませんので...。
> 
> On Tue, 05 Jul 2016 09:42:17 +0900 (JST)
> moto kawasaki <moto at kawasaki3.org> wrote:
> 
> > 
> > 川崎です。こんにちは。
> > 
> > on Mon, 4 Jul 2016 23:08:41 +0900, "IIJIMA Hiromitsu" <delmonta at dennougedougakkai-ndd.org> wrote:
> > 
> > delmonta> いいじま@二度目の大学生です。
> > delmonta> 
> > delmonta> > ただ、
> > delmonta> > ・ネットブート
> > delmonta> > ・ディスクレス
> > delmonta> > です。
> > delmonta> > DHCP サーバから、pxeboot のエントリ貰って、そこからカー
> > delmonta> > ネルをロードしています。
> > delmonta> > その後、ipfw + "open" で固まります・・・・
> > delmonta> > タイミング的に、NFS のマウント後に ipfw で close->open
> > delmonta> > の隙間に、ログが書き込めなくてガッチリホールド、とかあり
> > delmonta> > 得るんでしょうか?
> > delmonta> > ctl+alt+del すら効かなくなります・・・・
> > delmonta> 
> > delmonta> 素人考えですが、ipfwがNFSのパケットを遮断してしまって、起動前にこなす
> > delmonta> ひとになっているwrite()システムコールをインターバルなしで永久に繰り
> > delmonta> 返そうとしている、とか?
> > delmonta> 仮想マシンをその場所に設置して、CPU負荷を見てみたいところです。
> > 
> > きっとこれですよね。
> > 
> > /boot/loader.conf に net.inet.ip.fw.default_to_accept=0 と書く(*)か、
> > または、 https://www.freebsd.org/doc/handbook/firewalls-ipfw.html
> > にあるような options を入れて再コンパイルしてますか?(特に
> > IPFIREWALL_DEFAULT_TO_ACCEPT)
> > 
> > /etc/rc.conf に firewall_type="OPEN" と書くと、nat 回りの設定があれば
> > それはやるけど他のルールは一切入れないようなので、ipfw の default の全
> > パケット拒否が有効になっているような気がします。
> > 
> > (*) man ipfw の LOADER TUNABLES 参照
> 
> stable/10とstable/11だと、/etc/rc.firewallの189〓192行めで
> 全通にするルールが設定されていますよ。 具体的な設定部分は
> 
>  ${fwcmd} add 65000 pass all from any to any
> 
> になっています。
> 
> それよりも気になるのが、PXEブート等のネットワークブートは未経験のため
> 仕組みを理解していませんが、ローカルの起動と同様なら
>  ローダの読み込み
>  →少なくとも/bootだけは存在する起動用パーティション読み込み

↑はローカルパーティションのことですか? であれば間違いです.
ローカルにはメインメモリ以外何も必要ありません.

# /etc/rc.initdiskless 参照

>  →/boot/loader.confの設定(又はデフォルト)に従ってtunable設定
>  →同様にカーネルとモジュールを読み込み
>  →同様に/をリマウント
>  →リマウントされた/(以下同じ)の/sbin/initを起動
>  →initからrcを実行し、そこからrc.conf等の処理を起動
>  →rc.conf等の指定に従って/etc/rc.firewall等の処理を起動
> という流れになります。 ネットワークブートの場合に/のリマウントが
> 無いのであれば、最低限起動に必要なディレクトリはPXEで読み込まれる
> パーティションに揃っていないとアウトという気がします。
> 
> また、/etc/rc.d/でipfwからREQUIREされるものを目視で辿っていっても
> mountcritremoteにたどり着きません。 NFS関連はこのmountcritremoteで
> 処理されるため、ipfw関連の処理でNFSシェアへのアクセスが必要になった
> 瞬間にアウトになりそうです。(見落としていたら申し訳ありません)
> 
> そこでもうひとつ気になるのが、/tmpや/varがどうなっているかです。
> ネットワークブートの場合、起動用イメージは(セキュリティや管理上)
> readonlyの運用が基本と推測しますが、下記はどうなっていますか?
> 
>  ・/tmpはmfsになっているか(下記のいずれか)
>    ・rc.confでtmpmfs="YES"になっている
>    ・上記未設定のままでfstabやZFSデータセットで/tmpが設定されて
>     いない
> 
>  ・/varはmfsになっているか(下記のいずれか)
>    ・rc.confでvarmfs="YES"になっている
>    ・上記未設定のままでfstabやZFSデータセットで/varが設定されて
>     いない
> 
> もし/tmpや/varがNFSシェアに設定されているとipfw絡みのログ等を書き込もう
> とした時点でマウントが完了していないとアウトですが、/tmpや/varの中身が
> 再起動時に消失して問題なければ、tmpmfsやvarmfsの使用を考慮する価値が
> あるかと。 設定については/etc/defaults/rc.confを参照して下さい。
> 
>  ※/var/db等、ipfwの起動時点で不要かつ消失しては困る(他サービスの
>   起動時に参照したい)個別のディレクトリについてはfstabでNFSマウント
>   する、/var/logは極力syslogサーバを立ててそちらに飛ばしつつ、飛ばせ
>   ないものは何らかの手段でNFSシェアに一方通行で同期するようにせざるを
>   得ませんが...。
> 
> > 
> > -- 
> > moto kawasaki <moto at kawasaki3.org>
> > 
> > _______________________________________________
> > freebsd-users-jp at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> > To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe at freebsd.org"
> > 
> 
> 
> -- 
> 青木 知明  [Tomoaki AOKI]
>     junchoon at dec.sakura.ne.jp
> _______________________________________________
> freebsd-users-jp at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe at freebsd.org"
> 

---
KIRIYAMA Kazuhiko


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