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

Как я могу перенаправить DNS-запросы через FreeBSD на другой DNS

Как настроить FreeBSD для перенаправления всех DNS-запросов на другой DNS.
Мы установили FreeBSD в качестве маршрутизатора для нашей компании. У нас есть две карты, одна для локальной сети, а вторая для глобальной сети, которые настроены как общедоступный статический IP-адрес.
Что я хочу сделать:
Когда какой-то клиент в нашей сети 192.168.0.1/32 вызывает DNS-запрос на наш старый DNS-сервер, FreeBSD пересылает этот запрос другому DNS-серверу.
Это возможно ?
Где мне поместить это правило?

Вам следует закрыть старый DNS-сервер и заблокировать DNS-трафик из внутренней LAN во внешний DNS, чтобы у ваших пользователей не было другого выбора.

Менее радикальное решение, возможно, обнаружит, какие пользователи используют внешний или старый DNS (анализируя трафик или журналы брандмауэра), и уведомит этих пользователей, что старый DNS будет отключен, а затем закроет старый DNS.

Это возможно, но, вероятно, потребуется больше работы, чем нужно. Кратким и грязным способом было бы использовать команду netcat, а более постоянным было бы использование оператора forward в iptables (я верю, что это также для BSD)

Другим решением было бы настроить новый сервер с виртуальным адресом для IP старого сервера (en0.0 или что-то в этом роде).

Лучшим решением, вероятно, было бы изменить DHCP-сервер для обслуживания нового IP-адреса DNS и заменить все жестко настроенные серверы на новый IP-адрес.

Если вы используете BIND на этом маршрутизаторе, вы можете легко настроить его для пересылки всех запросов на соответствующий внешний DNS-сервер. В зависимости от того, какой брандмауэр вы используете, вы также можете легко пересылать пакеты на этот маршрутизатор. Проблема будет в том, что маршрутизатор сейчас отвечает на запрос, и клиент ожидает, что другой сервер ответит на запрос; это выглядело бы как классическая попытка отравления кеша, и многие новые клиенты отклонят ее. Если вы хотите попробовать и у вас работает IPFW, добавьте что-то вроде этого:

ipfw add 00010 fwd localhost ip from {lan} to any dns

(Обратите внимание, что вам нужно ядро, скомпилированное с options IPFIREWALL_FORWARD чтобы это работало.)

Как уже упоминалось другими, вы лучший вариант - настроить DHCP для выдачи нового адреса (или маршрутизатора и настройки пересылки там, это также потенциально уменьшит внешний сетевой трафик, поскольку он будет кэшировать некоторые запросы DNS). Затем зарегистрируйте всех, кто все еще использует какой-либо внешний DNS.