Рейтинг:0

Перенаправление IP-адресов DNS-серверов на Unifi UDM-Pro с помощью iptables

флаг in

Я использую Unifi UDM Pro в качестве шлюза для двух VLAN:

  • Основная локальная сеть (интерфейс: бр0, подсеть: 192.168.1.1/24)
  • VLAN устройств IoT (интерфейс: бр3, подсеть: 192.168.3.1/24)

У каждого свой локальный DNS (Adguard Home) сервер (192.168.1.52 и 192.168.3.52 соответственно). Для каждой подсети я хочу, чтобы клиенты не обходили локальный DNS-сервер, назначенный через DHCP. Для этого я подключаюсь к UDM Pro по SSH и выполняю следующие команды:


iptables -t nat -A PREROUTING -i br0 ! -с 192.168.1.52 ! -d 192.168.1.52 -p tcp --dport 53 -j DNAT --to 192.168.1.52
iptables -t nat -A PREROUTING -i br0 ! -с 192.168.1.52 ! -d 192.168.1.52 -p udp --dport 53 -j DNAT --to 192.168.1.52

iptables -t nat -A PREROUTING -i br3 ! -с 192.168.3.52 ! -d 192.168.3.52 -p tcp --dport 53 -j DNAT --to 192.168.3.52
iptables -t nat -A PREROUTING -i br3 ! -с 192.168.3.52 ! -d 192.168.3.52 -p udp --dport 53 -j DNAT --to 192.168.3.52

iptables -t nat -A POSTROUTING -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp --dport 53 -j MASQUERADE

Я тестирую их, используя два основных метода: копать землю и через устройства WLAN (например, iPad):

С использованием копать землю метод, я тестирую сначала прямой DNS-запрос, а затем один к DNS-серверу Google. Я запускаю обе команды на физическом хосте для моего DNS-сервера (который является членом каждой VLAN через Debian влан упаковка):

  1. копать linux.org '@192.168.3.52' -b '192.168.3.52'
  2. копать linux.org '@8.8.8.8' -b '192.168.3.52'

Первая команда выше работает нормально. Второй дает мне тайм-аут. Я ожидаю, что второй все еще будет работать, за исключением маршрутизации через 192.168.3.52.

Если я побегу так же копать землю выше, но в основной локальной сети оба работают нормально, и я вижу оба запроса на своем локальном DNS-сервере.

Я не уверен, почему VLAN 3 не работает в случае перенаправления, но моя основная локальная сеть работает. Может ли кто-нибудь помочь мне понять, почему это не работает, и показать мне рабочее решение?

флаг in
Если вы запустите эту команду из `.52`, она будет исключена из перенаправления. Проверьте и убедитесь, что правила выполняются (полезны счетчики iptables), затем используйте tcpdump, чтобы увидеть, какой трафик куда идет. Я предполагаю, что правило MASQUERADE может не работать или вызывать проблемы, но tcpdump сообщит вам, если это так. .
флаг in
Я думал о запуске с .52, вызывающем проблемы, но я ожидал, что «8.8.8.8» все равно даст мне ответ, просто не перенаправит через мой локальный DNS-сервер. Но запрос истекает полностью. Кроме того, FWIW, тестируя через iPad в этой VLAN, я все еще вижу тайм-аут. Я не эксперт в iptables, tcpdump. Можете ли вы предоставить несколько примеров команд для запуска и где их запускать? Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.