Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Проблемы с DNS на USG., UniFi Network
 
Что-то явно не так с разрешением DNS на моём USG. Думаю, именно эта проблема лежит в основе цепочки сбоев при переключении WAN1/WAN2. Вот пример взаимодействия:

ubnt@usg:/etc$ info  
Model:       UniFi-Gateway-3  
Version:     4.4.12.5032482  
MAC Address: f0:9f:c2:05:d2:b7  
IP Address:  192.168.200.201  
Hostname:    usg  
Uptime:      13125 секунд  
Status:      Connected (http://192.168.1.3:8080/inform)  

ubnt@usg:/etc$ host ping.ubnt.com  
ping.ubnt.com — это псевдоним для dl.ubnt.com.  
dl.ubnt.com — это псевдоним для d2cnv2pop2xy4v.cloudfront.net.  
d2cnv2pop2xy4v.cloudfront.net имеет адрес 13.33.248.211  

ubnt@usg:/etc$ getent hosts ping.ubnt.com  
^C  

ubnt@usg:/etc$ ping ping.ubnt.com  
^C  

ubnt@usg:/etc$ ping 13.33.248.211  
PING 13.33.248.211 (13.33.248.211) 56(84) байт данных.  
64 байта от 13.33.248.211: icmp_req=1 ttl=237 время=231 мс  
64 байта от 13.33.248.211: icmp_req=2 ttl=237 время=104 мс  
^C  
--- Статистика ping 13.33.248.211 ---  
2 пакета отправлено, 2 получено, потерь пакетов 0%, время 1001 мс  
rtt min/avg/max/mdev = 104.709/168.228/231.747/63.519 мс  

Мой файл /etc/resolv.conf показывает:  
#line generated by /opt/vyatta/sbin/vyatta_update_resolv.pl  
domain localdomain  
nameserver 8.8.4.4  
nameserver 9.9.9.9  

А в /etc/nsswitch.conf:  
# /etc/nsswitch.conf  
#  
# Пример конфигурации функциональности GNU Name Service Switch.  
# Если у вас установлены пакеты `glibc-doc-reference` и `info`, попробуйте:  
# `info libc "Name Service Switch"` для информации об этом файле.  

passwd:         compat  
group:          compat  
shadow:         compat  
hosts:          files dns  
networks:       files  
protocols:      db files  
services:       db files  
ethers:         db files  
rpc:            db files  
netgroup:       nis  

Кроме того, с другой машины DNS-кэш на USG возвращает правильную запись:

~ : abe@albus 21:56:47 Thu Dec 07 $ host ping.ubnt.com 192.168.1.1  
Используется доменный сервер:  
Имя: 192.168.1.1  
Адрес: 192.168.1.1#53  
Псевдонимы:  
ping.ubnt.com — это псевдоним для dl.ubnt.com.  
dl.ubnt.com — это псевдоним для d2cnv2pop2xy4v.cloudfront.net.  
d2cnv2pop2xy4v.cloudfront.net имеет адрес 13.33.248.211  

Почему же тогда собственно на USG запросы libc (через `getent` или `ping`, например) не работают?
 
Спасибо за это. Я просто не понимал, почему не происходит переключение на резерв или возврат обратно.
 
Если вы настроите свой echo-сервер на IP-адрес вместо имени хоста, то полностью избежите сбоев DNS (статические маршруты не нужны). Несколько минут назад я внес изменения — теперь echo-сервер 8.8.8.8 вместо ping.ubnt.com. Подтверждаю, что переключение на резервный канал после этого работает как надо. Обратите внимание, что я оставил DNS на WAN1 и WAN2 по умолчанию, то есть это DNS-серверы моего провайдера.
 
@webmechanix, независимо от того, что у меня в config.gateway.json, даже если вставить полный бред, настройки, похоже, не применяются (и USG не входит в цикл повторного провиженинга). Я следовал инструкции по ссылке https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-How-to-further-customize-USG-configuration-with-config-gateway-json и создал файл config.gateway.json. (По сути, взял ваш, прогнал через валидатор, который немного поправил отступы).

Во-первых, «на Cloud Key путь для .json файла такой: /srv/unifi/data/sites/[site name/default]/», но такой папки просто нет... ни «sites», ни «default». В другом посте https://community.ui.com/questions/Missing-Sites-folder-in-UCK/fda16bf8-8877-42d9-8576-699504304528 написано, что можно создать карту (Map) как обходной путь. После создания карты эти папки появились. Потом я удалил карту.

Во-вторых, я загрузил config.gateway.json в /srv/unifi/data/sites/default/. Было владельцем root, поэтому я выполнил «chown unifi:unifi config.gateway.json», и владелец сменился на unifi. После этого сделал повторный провиженинг моего USG.

Я заметил, что мои текущие потоки/сессии не переключаются при WAN failover/failback.

Потом я задумался, применяется ли вообще конфиг, и загрузил config.gateway.json с мусорным текстом, чтобы проверить, будет ли цикл повторного провиженинга. Изменил владельца, повторно провиженил USG. Но USG не вошёл в такой цикл, значит, конфигурация не применяется, и я чего-то не понимаю.

Так как config.gateway.json официально не поддерживается Ubiquiti, может кто-то из сообщества поможет?

Спасибо.
 
К сведению, с последним контроллером эту проблему решают с помощью загрузки пользовательского config.gateway.json во время настройки. Включение flush-on-active сбрасывает все маршруты при переключении на WAN2 или когда WAN1 снова становится активным.

{
 "load-balance": {
   "group": {
     "wan_failover": {
       "flush-on-active": "enable"
     }
   }
 }
}
 
Похоже, у меня такая же проблема... DNS не работает в сценарии переключения на резервный WAN2. Думаю, это связано с тем, что потоки/сессии тоже не переключаются, что, честно говоря, печально. Поэтому я считаю, что мой USG отправляет DNS-запросы (для моих клиентов) через неработающий интерфейс WAN1, что, мягко говоря, вызывает проблемы. Если не использовать USG для DNS и выбрать «Пользовательский» DHCP Name Server, то есть DNS с адресами 8.8.8.8 и 8.8.4.4, всё работает нормально, но только потому, что это обходит DNS-сервер USG. На самом деле, МНОГИЕ проблемы Unifi решились бы, если бы при переключении активно сбрасывались все потоки/сессии и при возврате назад. Другие функции, которые из-за этого не работают: мониторинг соединения Uplink, удалённый доступ и так далее...
 
Предполагается, что у вас есть два уникальных WAN-подключения: WAN1 и WAN2. Суть в том, что вы должны планировать ситуацию отказа. Обычно можно указать одинаковых провайдеров DNS для обоих WAN-соединений, но по «определённым причинам» это здесь не сработает.

Что мы делаем — предполагаем, что обычные маршруты к вашим DNS-серверам могут не работать как положено. Мы берём резервный DNS-сервер, обычно третий в списке, и статически указываем маршрут к нему через WAN2. Так, что бы ни случилось, трафик, направленный к нашему ре­зер­в­но­му DNS-серверу, найдёт путь. В таком подходе вам на самом деле нужен только один маршрут к DNS-серверу.

Чтобы реализовать этот маршрут, сначала убедитесь, что рассматриваемый DNS-сервер назначен только на WAN2, и больше нигде. На WAN2 может быть и другой DNS, но этот последний резервный сервер должен быть только на WAN2, НИ В КОЕМ СЛУЧАЕ не на WAN1.

В моём случае я использую 1.1.1.1 и 8.8.8.8 как основные DNS на WAN1, а 8.8.4.4 — как DNS на WAN2. Для 1.1.1.1 и 8.8.8.8 маршруты я не прописываю, они должны работать как обычно, когда всё нормально. Меня интересует именно аварийная ситуация.

В интерфейсе Unifi перейдите в Settings в левом нижнем углу, затем в «Routing & Firewall» и убедитесь, что вы на вкладке «Networks». Выберите и отредактируйте интерфейс WAN2. Убедитесь, что один из ваших двух DNS — это резервный, который мы обсуждали выше. Он не должен быть назначен на WAN1. Сохраните изменения.

Затем выберите «Routing and Firewall». Теперь выберите «Create New Route». Дайте маршруту любое имя. Я называю свой «WAN2 Static DNS Route». Отметьте галочкой «Enable». Это статический маршрут, так что должен быть выбран радиобаттон «Static» рядом с типом. В поле «Network» впишите IP вашего резервного DNS-сервера с маской сети. Я использую 8.8.4.4, значит пишу «8.8.4.4/32».

Тип статического маршрута зависит от вашего подключения. Если вы используете PPPoE — выберите маршрут по интерфейсу и укажите WAN2. Если у WAN2 статический IP — выберите «Next Hop» и укажите шлюз WAN2. Если DHCP — тоже используйте «Next Hop», но определение шлюза может потребовать дополнительных настроек или вопроса провайдеру.

Сохраните. При следующем переключении ваш USG уже будет иметь статический маршрут к резервному DNS-серверу через интерфейс WAN2, который он сможет использовать.
 
@jasonpabbott, не мог бы ты выложить скриншот своих настроек статических маршрутов? Я не понимаю, как это настроить, и ничего из того, что я пробовал, не сработало.
 
Нет никаких шансов решить проблему «failover не возвращается в норму» со статическими маршрутами, если ваш основной DNS находится в локальной сети. 😶
 
Это сработало у меня! Как только я добавил статический маршрут для каждого интерфейса к его DNS-серверу, команда "show load-balance watchdog" изменилась: оба интерфейса перестали быть DOWN и стали REACHABLE. А переключение обратно на основной интерфейс заработало так, как должно. Большое спасибо!
 
Я использую версию 5.10.17-11638-1 и пытаюсь настроить автоматическое переключение соединения, так как у меня периодически возникают проблемы с основным подключением — кабельным модемом. Сейчас переключение иногда работает, но, судя по всему, обратно не возвращается.

Я наткнулся на эту тему и решил попробовать вариант со статическими маршрутами. Но, будучи новичком в статических сетях, я кое-что не понимаю. Всё понятно, кроме настройки «Next Hop».

В настройках USG в разделе WAN указано, что IP моего роутера — 73.159.148.1, а мой собственный IP — 73.159.149.53. Какой из этих адресов нужно указать в поле Next Hop?

И ещё, что значит поле «distance» и почему туда ставят значение 1? Моё устройство для переключения по WAN2 находится метров в пяти.

Буду благодарен за любую помощь.
 
Кто-нибудь может поделиться инструкциями по добавлению статических маршрутов в USG? Обычные команды Linux, похоже, недоступны. Если у кого-то есть пошаговые инструкции, даже в не самом аккуратном виде, пожалуйста, выложите их, а я сделаю более официальный пост с указанием автора.
 
Я настроил DNS на обоих WAN. Также выставил эти чертовы статические маршруты.  
Тем не менее:  

trust@MainUSGPRO4:~$ show load-balance status  
Group wan_failover  
interface : eth2  
carrier : up  
status : inactive  
gateway : xxxxxxxxxxxxxx  
route table : 201  
weight : 0%  
flows  
WAN Out : 10  
WAN In : 0  
Local Out : 3  
 
interface : eth3  
carrier : up  
status : failover  
gateway : 10.0.1.1  
route table : 202  
weight : 0%  
flows  
WAN Out : 6  
WAN In : 0  
Local Out : 1  
 
trust@MainUSGPRO4:~$ show load-balance watchdog  
Group wan_failover  
eth2  
status: Waiting on recovery (0/3)  
pings: 3  
fails: 3  
run fails: 3/3  
route drops: 1  
ping gateway: ping.ubnt.com - DOWN  
last route drop : Sat Dec 22 11:52:51 2018  
 
eth3  
status: Waiting on recovery (0/3)  
failover-only mode  
pings: 3  
fails: 3  
run fails: 3/3  
route drops: 1  
ping gateway: ping.ubnt.com - DOWN  
last route drop : Sat Dec 22 11:52:52 2018
 
Большое спасибо! Это именно то, что я искал! Переключение на резерв теперь работает как надо. С уважением, Флориан
 
Я был в такой же ситуации. Спасибо за создание этой темы, за то, что вы выявили проблему и предложили решение! Огромное спасибо!
 
Я немного запутался… Готовлю всё к установке второго интернет-соединения в нашем офисе, хочу заранее настроить статические маршруты, чтобы включить их, когда оба WAN станут доступны. Сейчас мы подключены только через WAN1 на USG, но если я добавляю маршрут к 8.8.8.8 через WAN1, до него не достучаться. Приходится ставить маршрут через WAN2 (который отключен и не подключён), чтобы пинг прошёл.

Кто-нибудь понимает, почему, если я ставлю интерфейс WAN1, это не работает? Почему работает, когда выбираю WAN2? Может, я что-то делаю не так?

Редактирование: я изменил маршрут с указания интерфейса на указание next hop, как советовал smithabr, использовал шлюзы каждого WAN — и теперь всё работает нормально, так что проблем нет… Но всё равно интересно, почему маршруты не работают, если указывать нужный интерфейс?
 
Я новичок в использовании USG и сразу столкнулся с этой проблемой. Переключение на WAN2 сработало, но обратно на WAN1 он так и не вернулся. Сделал, как было предложено выше, и теперь, похоже, всё работает намного лучше.
Страницы: 1
Читают тему (гостей: 1)