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

Edgerouter DNSmasq отправляет обновления в BIND

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

Что я уже сделал:

[РЕДАКТИРОВАТЬ]: 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 может решить это, тогда он делает
  • Если запрос соответствует субдомену, запрос пересылается на ERX, указанный для субдомена.
  • Если запрос не совпадает, он передается вышестоящим DNS-серверам.