• ベストアンサー

pf+mpd環境における問題について

FreeBSD 5.3Rにてpf+mpdにてルータを構築しています。 しかし、システム起動時にpfが先に起動するため、 interface ng0 doesn't exist とエラーが出てしまい、pfが有効になりません。 そのため、毎回mpd起動後に # /etc/rc.d/pf reload としてpfを再読込みさせています。 どうすれば、pf+mpdでエラーを回避できるのでしょうか? よろしくお願いします。 なお、mpd.shはportsにてデフォルトでインストールされるスクリプトを用いています。 pf /etc/rc.d/pf mpd [/usr/ports/net/mpd/] /usr/local/etc/rc.d/mpd.sh /etc/pf.conf ext_if="ng0" (↑エラー箇所)

質問者が選んだベストアンサー

  • ベストアンサー
  • fkimura
  • ベストアンサー率29% (27/92)
回答No.1

私は最近試したことはないのですが、補足要求です。 --引用-- To use pf, please follow these steps: 1. Add kernel options into your kernel config file and recompile kernel: device bpf options PFIL_HOOKS options RANDOM_IP_ID 2. Please set the following variables in /etc/rc.conf according to your needs: pf_enable="Yes" pf_logd="Yes" pf_conf="%%PREFIX%%/etc/pf.conf" 3. Check %%PREFIX%%/etc/rc.d/pf.sh, it is the startup script for pf! --引用-- これはちゃんとされていると思って良いですか?

pirosuke88
質問者

補足

> fkimura さん いつもHPを参考にさせていただいています。 補足が遅くなり、すみません。 設定は、 /etc/rc.confに以下の項目を追加しています。 pf_enable="YES" pf_rules="/etc/pf.conf" pflog_enable="YES" 1.についてですが、 5.3Rでは、必要なモジュールが自動でロードされるようなので、起動時にモジュールは追加していません。 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-pf.html 2.おそらく、上記の書き方で合っていると思います。 3.デフォルトで、/etc/rc.d/pfの起動スクリプトがあるので問題ないと思います。 色々調べたのですが解決方法が見つからず、 取りあえず、下記のスクリプトを実行してしのいでいます。 /usr/local/etc/rc.d/pf_reload.sh #!/bin/sh sleep 3 /etc/rc.d/pf reload

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

OpenBSD の pf のマニュアルを見ると、インターフェース名を () で括ることで、そのインターフェースが認識されたり、IP が変更された/割り当てられた時点でルールを認識するようになる、と読めるんですけどね。   Surrounding the interface name in parentheses   changes this behaviour. When the interface   name is surrounded by parentheses, the rule   is automatically updated whenever the   interface changes its address.   The ruleset does not need to be reloaded. 検証環境が無いので、嘘だったらごめんなさい。 p.s. FreeBSD 5.4R で使ってますが、synproxy state の動きがおかしかったりするので、OpenBSD じゃないとダメな話があるのかも...

参考URL:
http://www.openbsd.org/cgi-bin/man.cgi?query=pf.conf&sektion=5&arch=&apropos=0&manpath=OpenBSD+3.4
すると、全ての回答が全文表示されます。

関連するQ&A