web-dev-qa-db-ja.com

BIND9を特定のIPにバインドするにはどうすればよいですか?

これは私の設定です:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
    inet 10.0.2.0/24 scope global lo
    inet6 ::1/128 scope Host 
       valid_lft forever preferred_lft forever

'lo'は、10.0.2.0/24行が実際に最大250のバインド可能なアドレスを作成するという意味で魔法です。ほとんどのデーモンは問題なくこれらにバインドします。ただし、これは私のBIND9-configでは機能しません。

listen-on port 53 { 10.0.2.15; };

(私も「ポート53」なしで試しました)。問題は、BINDの場合、リッスンオンは「バインディングホワイトリスト」のようなものであり、すべてのインターフェイスで検出できるすべてのIPに一致することです。この場合、どのインターフェイスでも10.0.2.15が見つからないため、バインドされません。

誰かが回避策をお勧めできますか?これは私が常に物事を動かしているテストセットアップであるため、あまり多くの可動部品を含まないソリューションを好むことを指摘しておく必要があります。

3
Habbie

少しテストした後...他のデーモンが機能しているのを観察したように、バインドが機能していないようです。 2つの回避策を確認しました。最初の回避策は、loにアドレスを追加して、バインドをバインドできるようにすることです。

ip addr add 10.0.2.15/32 dev lo

2つ目は、バインドがリッスンするアドレスを10.0.2.0に変更することです。

2
user9517

テストの回避策として実行できることは、仮想インターフェイスlo:1を作成し、それにアドレス10.0.2.15を割り当てて起動することです。

1
m0ntassar

私はあなたがそれをすることができるとは思わない。構成されたサブネット上のすべてのIPでloopback interface応答(つまり、ping 10.0.2.15が期待どおりに機能する)という事実は、すべて IPがバインド可能。

たとえば、127.0.0.2にバインドして、機能するかどうかを確認してください。

@ m0ntassarが言ったように、唯一の解決策は実行していると思います。

1
Mr Shunz