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

Перенаправить DNS-запросы субдомена на другой порт

У меня есть программное обеспечение, которое предоставляет динамическую информацию через DNS, аналогично DNSBL.

Как запустить его на том же сервере, что и сервер BIND, который также обслуживает DNS-запросы для других доменов? Мне просто нужен BIND для перенаправления запросов на определенный поддомен (* .myservice.myname.net) на другой порт на том же компьютере, и я не могу просто делегировать поддомен, потому что у меня нет запасного IPv4-адреса.

Насколько я могу судить, это невозможно. Это как если бы авторы BIND явно приложили все усилия, чтобы убедиться, что никто не сможет этого сделать - по крайней мере, не без превращения вашего сервера в открытый преобразователь.

  • В отличие от некоторого другого программного обеспечения DNS, BIND не поддерживает тип записи «вперед» (который просто заставит программное обеспечение обращаться к другому серверу при сопоставлении). Нет возможности добавить переадресацию на уровне "зоны".
  • Хотя можно создать переадресацию (type forward) для поддомена, которая также позволяет запрашивать DNS-сервер на произвольном порту, по какой-то причине для этого требуется включить allow-recursion вариант для работы.
  • Однако allow-recursion Параметр не может быть указан на уровне зоны - он может быть либо глобальным (и включение его там открывает DNS вашего сервера как общедоступный преобразователь), либо в «представлении».
  • Представления позволяют группировать зоны и применять определенные параметры (в том числе allow-recursion) к ним, однако, поскольку их цель - ограничить IP-адресами клиент / сервер, они также не будут вести себя так, как можно было бы ожидать, и соответствовать даже зонам, которые явно не указаны в них (что делает ваш сервер общедоступным преобразователем).
  • У BIND есть способ ограничить запросы только теми зонами, которые явно указаны в представлении: пустое поле allow-query на view уровень, и allow-query { any; }; на уровне зоны. К сожалению: option 'allow-query' is not allowed in 'forward' zone. Это дословное сообщение, которое дает вам BIND.