Назад | Перейти на главную страницу

Как заставить 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 это не работает:

listen-on port 53 { 10.0.2.15; };

(Пробовал и без "порта 53"). Проблема в том, что для BIND прослушивание похоже на «белый список привязки», который соответствует всем IP-адресам, которые он может найти на всех интерфейсах. В этом случае он не находит 10.0.2.15 ни на одном интерфейсе, поэтому не выполняет привязку.

Кто-нибудь может порекомендовать обходной путь? Я должен отметить, что это тестовая установка, на которой я все время перемещаю вещи, поэтому я бы предпочел решение, которое не включает слишком много движущихся частей.

После небольшого тестирования ... Bind, похоже, не работает так, как вы наблюдали за работой других демонов. Я отметил 2 обходных пути, первый - добавить дополнительный адрес в lo чтобы позволить привязке привязаться к ней

ip addr add 10.0.2.15/32 dev lo

Второй - изменить адрес, который прослушивает привязка. 10.0.2.0

Я не думаю, что ты сможешь это сделать. Тот факт, что loopback interface отвечает на каждом IP-адресе в настроенной подсети (т.е. ping 10.0.2.15 работает должным образом), не означает каждый IP можно привязать.

Попробуйте привязать, например, к 127.0.0.2 и посмотрите, работает ли это.

Я думаю, что единственное решение - сделать так, как сказал @ m0ntassar.

Что вы можете сделать в качестве обходного пути для тестирования, так это создать виртуальный интерфейс lo: 1, назначить ему адрес 10.0.2.15 и вызвать его.