Edgerouter DNSmasq отправлять обновления в BIND
TL;DR: Как настроить Ubiquiti EdgeRouter, работающий с DNSmasq или DHCPd и NSupdate, для отправки своих DHCP-аренды на центральный сервер BIND?
У меня есть система, состоящая из нескольких Ubiquiti EdgeRouter X, которые выступают в роли серверов DHCP и DNS для локальной подсети. Маршрутизация между подсетями между ERX осуществляется главным маршрутизатором. Я хотел бы настроить шлюзы ERX для обновления главного DNS-сервера, на котором запущен BIND, при каждом обновлении аренды DHCP.
Ссылка на диаграмму ниже: с каждым ERX, обслуживающим DHCP и DNS для своей локальной подсети, клиенты могут разрешать только DNS-имена других клиентов за своими локальными ERX. Однако, если каждый ERX отправил свои записи dns-master всякий раз, когда происходило обновление аренды DHCP, и каждый клиент использовал dns-master в качестве своего DNS-сервера любой клиент может разрешить имя любого другого клиента. Это то, чего я пытаюсь достичь.
маршрутизатор-ядро
/ | \
/ днс-мастер \
/ \
erx-1 erx-2
| |
|- клиент-1а | - клиент-2а
| - клиент-1б | - клиент-2бЧто я сделал до сих пор:
- BIND настроен на прием обновлений через
nsupdateи я подтвердил, что это работает с моей локальной рабочей станции - Я установил
dnsutilsна ERX с использованием Apt после активации репозитория Debian - Я исследовал
dhcp-scriptопция из файла конфигурации Dnsmasq (лучшее описание этой опции на странице man), но я не могу заставить мой скрипт выполнить- Dnsmasq на EdgeRouter, кажется, использует оба
/etc/dnsmasq.confа также/etc/dnsmasq.d/dnsmasq-dhcp-config.conf, но добавивdhcp-scriptвариант к первому не имел никакого эффекта, и добавление его ко второму генерировало ошибку синтаксиса конфигурации - Я попытался как изменить файлы конфигурации Dnsmasq напрямую, так и установить параметры в конфигурации ERX под
set service dhcp-server global-parametersи ни один, казалось, не работал (но я также не уверен, правильно ли я их сделал)
- Dnsmasq на EdgeRouter, кажется, использует оба
[EDIT]: Edgerouter также поддерживает использование Dhcpd в качестве DHCP-сервера, поэтому я бы принял ответ, описывающий, как настроить DHCPd на ER, чтобы сделать это; Я не женат на использовании DNSmasq
1 ответ
С предложением @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 установить параметры пересылки DNS службы "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 [сервер] подсеть [подсеть] имя домена sub1.local set service dhcp-server shared-network-name [сервер] подсеть [подсеть] dns-сервер 192.168.100.1
Когда клиент отправляет запрос DNS на router-coreЗатем происходит одна из трех вещей:
- Если
router-coreможет решить, то это - Если запрос соответствует субдомену, запрос перенаправляется в ERX, указанный для субдомена
- Если запрос не совпадает, то он передается вышестоящим DNS-серверам.