Перейти к содержимому
Калькуляторы

Странности в ДНС у абонентов. DNSDist.

Всем добра!

Может быть кто-либо сталкивался с такой ситуацией. Был мной установлен DNSDist для работы с несколькими внешними ДНС-серверами (4.2.2.1(2), 8.8.4.4, 77.88.8.1, SkyDNS и собственный на Bind9). Соответственно адрес самого DNSDist отдается клиентам, как обычный ДНС. До недавнего времени все было хорошо. Но сегодня с 2 ночи начались проблемы у некоторых клиентов - они половину сайтов открыть не могут. Начал разбираться на примере одного из клиентов. Обычный роутер Меркусис (а также в таком замечены Xiaomi) получает при установке сессии PPPoE все настройки, ДНС в том числе. Своим хостам он отдает по DHCP адреса и свой же адрес внутренний в качестве ДНС. Через каких то 10-15 минут после начала работы перестают открываться сайты типа mail.ru, Ютуб и многие другие. Если на ноутбуке, подключенном к этому роутеру, прописать те же самые ДНС, что роутер получил от БРАСа, на ноуте все начинает прекрасно работать. Если ДНСы убрать и снова поставить на получение ноутом всех настроек по DHCP, mail.ru тут же исчезает. Если при этом перезагрузить DNSDist, то на 10 минут работоспособность ноута восстанавливается. Какая то непонятная мне чертовня. 

Если кто сталкивался с таким, может подкинете идею, куда копать, почему при насильно прописанных ДНС на ноуте все работает, а если получать настройки с клиентского роутера, то начинаются "забЕги мозга" у оконечного хоста?

Для наглядности приведу конфиг dnsdist.conf, там немного.

 


setLocal("7x.xx.3x.47", {reusePort=true})

setACL({"7x.xx.3x.0/24", "172.16.128.0/24"})


newServer({address="4.2.2.1", name="Level3.DNS1", qps=10000})
newServer({address="4.2.2.2", name="Level3.DNS2", qps=10000})
newServer({address="8.8.4.4", name="Google.DNS2", qps=10000})
newServer({address="193.58.251.251", name="SkyDNS.DNS1", qps=10000})
newServer({address="77.88.8.1", name="YandexDNS.DNS1", qps=10000})


pc = newPacketCache(300000, {maxTTL=86400, minTTL=0, temporaryFailureTTL=60, staleTTL=60, dontAge=false})
getPool(""):setCache(pc)

 

Ну пояснять, что сие чудо было мной установлено мной только из-за Роскомнадзора, думаю, не надо.

Ранее все клиенты сидели на не особливо замудренной в плане конфига парочке собственных DNS-серверов Bind9 и никаких проблем подобно описанной выше, не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну есть предположение что где-то dnsdist закешировал пустую запись (NX) как раз из-за какого то корявого сервера-апстрима (яндекс там и тд), и отдал роутеру его - роутер у себя тоже NX закешировал - получается и роутер в кеше держит у себя NX пустую запись и DNSDIST, когда у DNSDIST прошел ttl, то он снова закешировал - уже запись с данными, но у роутера еще хранится пустая запись. Как решить это говно хз :) по идее вырубить корявый апстрим сервер

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Только сейчас посмотрел, что Mercusys - это саббренд Tp-Link для всяких подсанкционных. А значит железо одно, и софт тот же жопорук пишет, стало быть:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

только недавно с этим гов тплинком бодался, тоже повалился DNS массово у клиентов, все на тплинках, оказалось два момента - первый, несмотря на прописывание двух ДНСов в настройках, тплинк по факту умеет работать только с одним, если он протух... пресловутый 8.8.8.8, всё, абонент сосёт

и второй момент, хз, откуда, но... независимо от того что прописано на интерфейсе в ДНСах, роутер ещё может отдавать другие ДНСы из настроек DHCP, и там оказался какой то левак из подсети 64.что.то.там

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

18 hours ago, jffulcrum said:

Только сейчас посмотрел, что Mercusys - это саббренд Tp-Link

Когда выбирал себе WiFi6 железку домой то меркурисис показался менее качественным в инженерном плане.

Насчёт подсанкционности - я бы не сказал, продают так же везде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я склоняюсь к тому мнению, что слишком длинный пакет ответа udp от ДНС приходит фрагментированным, состоящим из 2 частей. И вот ТП-Линк и Меркусис их не умеют "склеивать", чтобы получить весь список хостов (если там много адресов в round-robin). В итоге начинается полный швах. На примере mail.ru у нормально не работающих Меркусисов смотрел ответ от ДНС и видел там только "обрезыш" такого вида:

╤хЁтхЁ:  winsrv.d-telekom.home
Address:  172.16.128.50

Не заслуживающий доверия ответ:
╚ь :     mail.ru
Addresses:  2a00:1148:db00:0:b0b0::1

 

То есть только IPv6-адрес. Остаток в виде:

          217.69.139.200
          94.100.180.200
          217.69.139.202
          94.100.180.201

просто отсутствовал. Проблему решили в данный момент "в лоб". Прописали всем абонентам через биллинг 2 адреса - 77.88.8.1 и 4.2.2.2

Все заработало как надо. Однако понимаю, что если я прав по поводу фрагментированного полного пакета udp, то мы просто оттянули момент наступления следующего коллапса. В программировании не силен, чтобы дотюнить тот же DNSDist, чтобы тот присылал как можно более урезанную версию DNS-ответов. В пакетах Bind9 и Unbound такие опции есть, насколько я читал. А вот в DNSDist я такого не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

12 hours ago, S.Sokolov said:

В программировании не силен, чтобы дотюнить тот же DNSDist, чтобы тот присылал как можно более урезанную версию DNS-ответов.

Так вы как админ должны просто смигрировать на правильный софт :)

Я не вижу профита от DNSDist в сравнении с Unbound.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Профит, единственный, в том, что в DNSDist "умеет" отсылать копию DNS-запроса на серверы НСДИ - 195.208.4.1. делается это одной командой в конфигурационном файле. Теоретически получается, что и овцы целы и волки сыты. Переходить на серверы НСДИ, конечно же, сумасшествие, они работают ужасно. Но директивы Роскомнадзора никто не отменял и рано или поздно перейти придется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 минут назад, S.Sokolov сказал:

Переходить на серверы НСДИ, конечно же, сумасшествие, они работают ужасно

А в чём ужас? Нормально работают (по крайней мере 6.1 и 7.1), проблем за всё время -- единицы.

 

Мы клиентам выдаём два dnsdist (без кэширования), за ними unbound и bind

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, S.Sokolov сказал:

Переходить на серверы НСДИ, конечно же, сумасшествие, они работают ужасно.

Да не сказал бы.

Может быть поначалу были перебои в их работе, но сейчас работают не хуже других.

Вот графики smokeping за сутки:

dns_ping.thumb.jpg.863bc2e0a4d701460173e83829fa25dc.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 hours ago, S.Sokolov said:

Профит, единственный, в том, что в DNSDist "умеет" отсылать копию DNS-запроса на серверы НСДИ - 195.208.4.1. делается это одной командой в конфигурационном файле.

Вам бы почитать документацию к фаерволам, там тоже копия пакета легко засылается на любые адреса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 31.10.2023 в 22:50, Ivan_83 сказал:

Вам бы почитать документацию к фаерволам, там тоже копия пакета легко засылается на любые адреса.

Шото типа -j TEE?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 hours ago, pppoetest said:

Шото типа -j TEE?

Наверное, в PF это dup-to.

Может и в свичах можно найти такой функционал в ACL.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Цитата

DNSDist "умеет" отсылать копию DNS-запроса на серверы НСДИ

dnsmasq тоже умеет

 

Цитата

но сейчас работают не хуже других

может где-то, когда-то и работают. Но процентов 10-15 запросов оканчиваются ничем, согласно статиcтике dnsmasq. И такое убожество выдавать клиентам как основной DNS желания что-то не возникает

 

dig +short chaos txt servers.bind
"1.1.1.1#53 590550448 0" "8.8.4.4#53 590550448 0" "8.8.8.8#53 590550448 0" "xxx.xxx.5.1#53 590550448 0" "xxx.xxx.4.1#53 590550448 22320091"

 

No comment, imho

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 05.11.2023 в 13:41, myth сказал:

И такое убожество выдавать клиентам как основной DNS желания что-то не возникает

Настройте свой сервер по схеме с 6.1 и 7.1, всё стабильно и трюки никакие не нужны, трафик на РКН минимальный

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Лучше поднимите свои рекурсивные сервера и балансите на них

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.