阿部です。

On Tue, Sep 18, 2007 at 08:07:51PM +1000, masaya nakamura wrote
> 
> サーバーではbind9を運用しているのですが、サーバーの起動時にPPPoEが
> グローバルIPを掴む前にbind9が起動されてしまい、一見して起動しているの
> ですが名前解決できない状態になってしまいます。

DNS サーバではないのですが、以前、同じような現象で悩んだことがあります。
今は環境が違うので使っていませんが、当時の FreeBSD 4.x 系では、
/etc/ppp/ppp.linkup ファイルに以下のようなコマンドを記述しました。

provider:
 ! sh -c "/bin/sh /etc/ipfw.conf"

確か、ppp で作成される tun0 デバイスにフィルタを適用したかったからです。


> 恐らく、PPPoEの起動後充分な時間を取ってからbind9を起動すればいいの
> だと思いますが、/usr/local/etc/rc.d にsleep付きでbind起動スクリプトを置く
> くらいしか思いつきません。何かスマートな方法はありませんでしょうか?

上記と同様の方法で、

 ! sh -c "/bin/sh /etc/rc.d/named restart"

と記述して、ppp のリンクアップ後に named を再起動させてみてはどうでしょうか。

動作確認はしていませんが、参考までに。
なお、ppp.linkup については、man 8 ppp で確認してください。

ではでは。
-- 
阿部康一/Kouichi ABE (WALL)
[メールアドレス保護]
http://www.MysticWALL.COM/
4196 185C B814 8F96 D170  B492 71A8 1B2B B9D5 5CF5

メールによる返信