Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Переадресация DNS по домену на USG, UniFi Network
 
Я пытаюсь настроить более-менее бесшовный Site-to-site VPN. Оба сайта находятся на одном контроллере и используют USG с последней прошивкой (4.4.28.5118795).  
Сети:  
{  
 "tsl": "192.168.2.0/24",  
 "100s": "192.168.3.0/24"  
}  
Автоматическая настройка Site-to-site VPN работает отлично, и все клиенты на каждом сайте могут общаться с любым клиентом на любом из сайтов, если известен IP.  

Следующий шаг — решить проблему с разрешением DNS. Поиск адресов устройств на локальном сайте работает без проблем. Но, естественно, запрос IP-адресов с удалённого сайта не «просто так» срабатывает.  

В попытках это исправить я нашёл много гайдов по настройке. Основной, которым я пользовался, вот этот, но такую же информацию видел и в других обсуждениях.  
Похоже, главный трюк — добавить в конфигурацию dnsmasq опцию «server» вида «server=/100s/192.168.3.1» для конфигурации tsl и «server=/tsl/192.168.2.1» для 100s. Это можно сделать тремя способами (как перечислил Kelle Lilja):  
- Добавить опцию в файл, который dnsmasq считывает при старте  
- Использовать команды unifi cli для добавления опции (что просто создаёт новый /etc/dnsmasq.conf)  
- Использовать JSON-файл на контроллере, чтобы задать дополнительные опции (устойчивый вариант пункта 2)  

Не вдаваясь в детали, я перепробовал все три способа и могу подтвердить, что конфигурации действительно загружаются dnsmasq. Например, через SSH на USG можно наблюдать в `/var/log/dnsmasq.log`, что при запуске dnsmasq он корректно подгружает мою конфигурацию:  
Sep 19 14:51:21 dnsmasq[3909]: started, version 2.78-23-g9e09429 cachesize 10000
Sep 19 14:51:21 dnsmasq[3909]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
Sep 19 14:51:21 dnsmasq-dhcp[3909]: DHCP, IP range 192.168.3.6 -- 192.168.3.254, lease time 1d
Sep 19 14:51:21 dnsmasq[3909]: using nameserver 192.168.2.1#53 for domain tsl
Sep 19 14:51:21 dnsmasq[3909]: using local addresses only for domain 100s
Sep 19 14:51:21 dnsmasq[3909]: using local addresses only for domain 3.168.192.in-addr.arpa
Sep 19 14:51:21 dnsmasq[3909]: reading /etc/resolv.conf
Sep 19 14:51:21 dnsmasq[3909]: using nameserver 192.168.2.1#53 for domain tsl
Sep 19 14:51:21 dnsmasq[3909]: using local addresses only for domain 100s
Sep 19 14:51:21 dnsmasq[3909]: using local addresses only for domain 3.168.192.in-addr.arpa
...  

То есть, на клиентской машине в «tsl» могу запустить nslookup:  
$ nslookup  
Default Server: setup.ubnt.com  
Address: 192.168.2.1  
> google.com                               # DNS работает  
Server: setup.ubnt.com  
Address: 192.168.2.1  
Non-authoritative answer:  
Name: google.com  
Addresses: 2607:f8b0:4005:804::200e  
        216.58.194.174  
> client.100s.                             # Пробую FQDN удалённого клиента. НЕ РАБОТАЕТ  
Server: setup.ubnt.com  
Address: 192.168.2.1  
DNS request timed out.  
   timeout was 2 seconds.  
DNS request timed out.  
   timeout was 2 seconds.  
*** Request to setup.ubnt.com timed-out  
> server 192.168.3.1                         # Использую удалённый DNS напрямую  
Default Server: [192.168.3.1]
Address: 192.168.3.1  
> sirius.100s.                              # Пробую FQDN удалённого клиента. РАБОТАЕТ  
Server: [192.168.3.1]
Address: 192.168.3.1  
Name: sirius.100s  
Address: 192.168.3.21  

Когда делаю такой запрос, могу в логах dnsmasq на сервере, который запрашивают (при включённом «log-queries»), видеть, что запросы доходят до начального dnsmasq, и он заявляет, что пересылает запрос на удалённый USG, но удалённый dnsmasq запросы так и не видит (согласно логам и отладке).  

Что любопытно, команда UniFi `show dns forwarding statistics` показывает, что ошибок нет и пересылка работает корректно — счетчик «Queries sent» увеличивается на 2 при каждом неудачном nslookup:  
user@USG:~$ show dns forwarding statistics  
---------------- Cache statistics ----------------  
Cache size: 10000  
Queries forwarded: 37  
Queries answered locally: 19  
Total DNS entries inserted into cache: 75  
DNS entries removed from cache before expiry: 0  
--------------------- Nameserver statistics ---------------------  
Server: 192.168.3.1  
Queries sent: 2  
Queries retried or failed: 0  
Server: 75.75.75.75  
Queries sent: 35  
Queries retried or failed: 4  
Server: 75.75.76.76  
Queries sent: 6  
Queries retried or failed: 0  

Я пытался запускать dnsmasq вручную с разными опциями, чтобы дойти до сути. Для справки, самый быстрый способ проверить разные параметры — команда вроде этой:  
sudo kill $(cat /run/dnsmasq/dnsmasq.pid 2> /dev/null) 2> /dev/null; sudo /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new -d --log-queries=extra  

Сначала думал, что проблема в опции `--local-service`. Без толку.  
Пробовал также поиграться с `--interface` и связанными опциями — тоже без результата.  

Я пытался обратиться в поддержку UniFi, но они сказали, что эта функция доступна только на EdgeRouter, а на USG — нет. Однако, судя по сообщениям других пользователей, это не совсем так.  

Игры с dnsmasq показывают, что всё должно работать. Может, есть какая-то простая правило маршрутизации, которая всё починит...  

Ещё встречал совет добавить вручную SOA/PTR записи в dnsmasq для решения задачи другим способом, но пока не пробовал этот путь.  

Может, я что-то элементарное упускаю?
 
{
 "service": {
   "dns": {
     "forwarding": {
       "options": [
         "server=/tsl/192.168.2.1@192.168.3.1",
         "server=/2.168.192.in-addr.arpa/192.168.2.1@192.168.3.1"
       ]
     }
   }
 }
}
Эта конфигурация работала у меня до недавнего времени. Сейчас она перестала работать. Мне приходится использовать командную строку, чтобы решить проблему, но после первой же перезагрузки всё снова не работает. Были ли изменения в config.json?
 
Я хочу добавить DNS-перенаправление, чтобы иметь возможность добавить USW Flex Mini в Hostifi (Cloud Controller). Я знаком с SSH. Но предоставленный код мне не совсем понятен. Как мне правильно прописать изменение домена через DNS-перенаправление unifi (с set inform url http://unifi:8080/inform) на p01.hostifi.net?
 
Та же проблема, с которой столкнулся @david-m — не уверен, изменился ли за последние месяцы или год принцип работы частичных конфигураций в config.gateway.json, но кажется, теперь нужно указывать все DNS-серверы.
 
Всем привет! Я пытаюсь внести эти настройки в config.gateway.json для устройства с адресом 10.0.0.1, но из-за этого все DNS-запросы перестают работать, и мне приходится заходить на http://10.0.0.1 и заново выставлять настройки DNS (которые в этот момент почему-то пустые), чтобы восстановить связь с контроллером. Что я делаю не так? Нужно ли применять какие-то дополнительные настройки, чтобы это заработало?

{
 "service": {
   "dns": {
     "forwarding": {
       "options": [
         "server=/ex-lan/192.168.1.1@10.0.0.1",
         "server=/1.168.192.in-addr.arpa/192.168.1.1@10.0.0.1"
       ]
     }
   }
 }
}

Редактирую: похоже, если начинаешь указывать опции, нужно сделать это полностью и обязательно добавить обычные серверы тоже.

Вот этот вариант работает без сбоев:

{
 "service": {
   "dns": {
     "forwarding": {
       "options": [
         "server=/ex-lan/192.168.1.1@10.0.0.1",
         "server=/1.168.192.in-addr.arpa/192.168.1.1@10.0.0.1",
         "server=1.1.1.1",
         "server=8.8.8.8"
       ]
     }
   }
 }
}
 
Большое спасибо за это. У меня была точно такая же проблема, и я решил её, следуя этому посту. Ура!
Страницы: 1
Читают тему (гостей: 1)