TL; DR: Как мне настроить Ubiquiti EdgeRouter, запустив DNSmasq или DHCPd и NSupdate для отправки аренды DHCP на центральный сервер BIND?
У меня есть система, состоящая из нескольких Ubiquiti EdgeRouter X's все они действуют как серверы DHCP и DNS для локальной подсети. Маршрутизация между подсетями между ERX обрабатывается основным маршрутизатором. Я бы хотел настроить шлюзы ERX для обновления главного DNS-сервера, на котором запущен BIND, всякий раз, когда они обновляют свои аренды DHCP.
Ссылаясь на схему ниже: с каждым ERX, обслуживающим DHCP и DNS для своей локальной подсети, клиенты могут разрешать DNS-имена других клиентов только за их локальным ERX. Однако, если каждый ERX отправил свои записи в dns-master
когда произошло обновление аренды DHCP, и каждый клиент использовал dns-master
в качестве своего DNS-сервера, то любой клиент может разрешить имя любого другого клиента. Это то, чего я пытаюсь достичь.
router-core / | \ / dns-master \ / \ erx-1 erx-2 | | |-- client-1a |-- client-2a |-- client-1b |-- client-2b
Что я уже сделал:
nsupdate
и я подтвердил, что он работает с моей локальной рабочей станцииdnsutils
на ERX с использованием Apt после активация репозитория Debiandhcp-script
вариант из Конфигурационный файл dnsmasq (лучшее описание этого варианта на странице руководства), но я не могу заставить свой скрипт выполнить /etc/dnsmasq.conf
и /etc/dnsmasq.d/dnsmasq-dhcp-config.conf
, но добавив dhcp-script
вариант для первого не имел никакого эффекта, и добавление его ко второму сгенерировало синтаксическую ошибку конфигурацииset service dhcp-server global-parameters
и ни один из них, похоже, не работал (но я также не уверен, правильно ли я их сделал)[РЕДАКТИРОВАТЬ]: Edgerouter также поддерживает использование Dhcpd в качестве DHCP-сервера, поэтому я бы согласился с ответом, описывающим, как настроить DHCPd на ER, чтобы сделать это; Я не женат на использовании DNSmasq
По предложению @Tom я нашел способ сделать это без использования сервера BIND.
Решение состоит в том, чтобы настроить каждый ERX в качестве авторитетного DNS-сервера для своей локальной подсети и создать делегирование серверов на основном маршрутизаторе для каждого поддомена, а затем направить всех клиентов на основной маршрутизатор. Директивы конфигурации, специфичные для Edgerouter, перечислены ниже, заменяя sub1.local
с правильным поддоменом DNS и 192.168.100.5
с IP-адресом ERX:
На core-router
(LAN IP 192.168.100.1
):
set service dns forwarding listen-on eth1 set service dns forwarding name-server 8.8.8.8 set service dns forwarding name-server 8.8.4.4 set service dns forwarding options "server=/.sub1.local/192.168.100.5"
На каждом ERX (например, WAN IP 192.168.100.5
):
set service dns forwarding listen-on eth0 set service dhcp-server shared-network-name [server] subnet [subnet] domain-name sub1.local set service dhcp-server shared-network-name [server] subnet [subnet] dns-server 192.168.100.1
Когда клиент отправляет DNS-запрос в router-core
, то происходит одно из трех:
router-core
может решить это, тогда он делает