Jan 06, 2008

さらにKuro-NetBSDネタ [computer]

KUROBOXのNetBSD pfのnat問題

玄箱のNetBSDでpfのNATが動かない件を先日書いたが、これは単純な操作上のミスが原因だった。

  # pfctl -e

でpfの機能を有効にしないとNATもフィルタも動かない。起動スクリプトから動かした場合は # /etc/rc.d/pf startすれば内部的に有効にされるので問題ない。 FreeBSDでは初期状態で有効になっていたかな?


FTPではやっぱり問題

pfのnatを使う場合に悩ましいのがFTPの扱い。ftp-proxyを動かしてこちらにリダイレクトする形で対応するのが一般的だがNetBSD4.0で導入されているpfのコードは少々古く、inetd経由でftp-proxyを動かす必要がある。

/etc/inetd.conf

127.0.0.1:8021 stream tcp nowait root  /usr/libexec/ftp-proxy ftp-proxy

/etc/pf.conf
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
としてみたが内部からftpを行うと接続を切られてしまう。 ipfilterのipnatの部分だけ動かしてみたらこのあたり問題なく動作するようなので少々キモいがpf(フィルタ部分)+ipnatで使ってみることにする。
/etc/ipnat.conf
map pppoe0 192.168.0.0/24 -> 0/32 portmap tcp/udp 20000:60000
map pppoe0 192.168.0.0/24 -> 0/32 

namedの謎

named(bind9)を動かしてみると...固まる。 デーモンプロセスになる前に固まるようで、手動で起動しても帰ってこない。 デバッガで比較的簡単に追いかけられそうな問題だとは思ったが、 pkgsrcからbind9をインストールしたらこちらは問題なく動くのでこちらを使うことにして特に追いかけないことにする。

何とか使えるところまで来たかな...


(追伸) namedの配布ソースに含まれるファイルの一部に各種アーキテクチャを考慮していないものがあるのが問題らしいと、ある方からメールで教えていただきました。 このファイルは元々configureで生成されるファイルで、pkgsrcではconfigureを使用して生成するため問題が解消されるとのことです。

メールありがとうございました。


(余談)シンボルテーブル問題

不具合について調べていて見つけた話。カーネルオプションを増やすとカーネルサイズの問題だけではなくシンボルテーブルがあふれる場合もある。 この場合、カーネルのコンフィギュレーションファイルのパラメータでシンボルテーブルの値を増やす必要がある。

options         SYMTAB_SPACE=288344  
http://gazoo.com/G-Blog/BlogTaikenshitemimas/28795/Article.aspx
Posted at 19:27 in computer

Archives
Powered by
blosxom 2.0
and
modified by
blosxom starter kit