中村です。

07/09/18 に Kouichi ABE 
(WALL)<[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]>
 さんは書きました:
> DNS サーバではないのですが、以前、同じような現象で悩んだことがあります。
> 今は環境が違うので使っていませんが、当時の FreeBSD 4.x 系では、
> /etc/ppp/ppp.linkup ファイルに以下のようなコマンドを記述しました。
>
> provider:
>  ! sh -c "/bin/sh /etc/ipfw.conf"
>
> 確か、ppp で作成される tun0 デバイスにフィルタを適用したかったからです。

先に質問させてもらったipfwでも同じ問題を孕んでいたのですね。
訊いてみて良かったです。

> > 恐らく、PPPoEの起動後充分な時間を取ってからbind9を起動すればいいの
> > だと思いますが、/usr/local/etc/rc.d にsleep付きでbind起動スクリプトを置く
> > くらいしか思いつきません。何かスマートな方法はありませんでしょうか?
>
> 上記と同様の方法で、
>
>  ! sh -c "/bin/sh /etc/rc.d/named restart"
>
> と記述して、ppp のリンクアップ後に named を再起動させてみてはどうでしょうか。
>
> 動作確認はしていませんが、参考までに。

おっしゃる内容の方法が下記にも見つかりました。
http://takedarts.jp/index.php?PPPoE%C0%DC%C2%B3%B4%C4%B6%AD%A4%CE%B9%BD%C3%DB#o57dd6d7
この場合は、
  ! sh /etc/rc.d/named restart
と記述していますね。shellのことは良く知らないのですが,
! sh ほげほげ
と
! sh -c "/bin/sh ほげほげ"
とはどう違うのですか?
単純にGoogleで検索しても記号混じりなのでうまくみつかりませんでした。
何気ない簡素な書き方の説明が見つからないことが多くて苦労します。
いづれにしても /etc/ppp/ppp.linkup に記述すれば解決できそうです。
ありがとうございました。

余談ですが、bindの再起動はいつのまにかできるようになったのですね。
過去に、
http://dnsystem.g.hatena.ne.jp/dnsystem/20070213
このような記事を見つけてそれ以来律儀にstop,startさせてました。
今さっき、restartを使ったらちゃんと再起動できました。

-- 
中村正也

メールによる返信