S.Sokolov Опубликовано 19 октября, 2023 · Жалоба Всем добра! Может быть кто-либо сталкивался с такой ситуацией. Был мной установлен 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 и никаких проблем подобно описанной выше, не было. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
init_ Опубликовано 20 октября, 2023 · Жалоба ну есть предположение что где-то dnsdist закешировал пустую запись (NX) как раз из-за какого то корявого сервера-апстрима (яндекс там и тд), и отдал роутеру его - роутер у себя тоже NX закешировал - получается и роутер в кеше держит у себя NX пустую запись и DNSDIST, когда у DNSDIST прошел ttl, то он снова закешировал - уже запись с данными, но у роутера еще хранится пустая запись. Как решить это говно хз :) по идее вырубить корявый апстрим сервер Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 20 октября, 2023 · Жалоба Только сейчас посмотрел, что Mercusys - это саббренд Tp-Link для всяких подсанкционных. А значит железо одно, и софт тот же жопорук пишет, стало быть: Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sheft Опубликовано 20 октября, 2023 · Жалоба только недавно с этим гов тплинком бодался, тоже повалился DNS массово у клиентов, все на тплинках, оказалось два момента - первый, несмотря на прописывание двух ДНСов в настройках, тплинк по факту умеет работать только с одним, если он протух... пресловутый 8.8.8.8, всё, абонент сосёт и второй момент, хз, откуда, но... независимо от того что прописано на интерфейсе в ДНСах, роутер ещё может отдавать другие ДНСы из настроек DHCP, и там оказался какой то левак из подсети 64.что.то.там Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 октября, 2023 · Жалоба 18 hours ago, jffulcrum said: Только сейчас посмотрел, что Mercusys - это саббренд Tp-Link Когда выбирал себе WiFi6 железку домой то меркурисис показался менее качественным в инженерном плане. Насчёт подсанкционности - я бы не сказал, продают так же везде. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
S.Sokolov Опубликовано 23 октября, 2023 · Жалоба Я склоняюсь к тому мнению, что слишком длинный пакет ответа 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 я такого не нашел. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 23 октября, 2023 · Жалоба 12 hours ago, S.Sokolov said: В программировании не силен, чтобы дотюнить тот же DNSDist, чтобы тот присылал как можно более урезанную версию DNS-ответов. Так вы как админ должны просто смигрировать на правильный софт :) Я не вижу профита от DNSDist в сравнении с Unbound. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
S.Sokolov Опубликовано 31 октября, 2023 · Жалоба Профит, единственный, в том, что в DNSDist "умеет" отсылать копию DNS-запроса на серверы НСДИ - 195.208.4.1. делается это одной командой в конфигурационном файле. Теоретически получается, что и овцы целы и волки сыты. Переходить на серверы НСДИ, конечно же, сумасшествие, они работают ужасно. Но директивы Роскомнадзора никто не отменял и рано или поздно перейти придется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 31 октября, 2023 · Жалоба 11 минут назад, S.Sokolov сказал: Переходить на серверы НСДИ, конечно же, сумасшествие, они работают ужасно А в чём ужас? Нормально работают (по крайней мере 6.1 и 7.1), проблем за всё время -- единицы. Мы клиентам выдаём два dnsdist (без кэширования), за ними unbound и bind Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 31 октября, 2023 · Жалоба 1 час назад, S.Sokolov сказал: Переходить на серверы НСДИ, конечно же, сумасшествие, они работают ужасно. Да не сказал бы. Может быть поначалу были перебои в их работе, но сейчас работают не хуже других. Вот графики smokeping за сутки: Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 31 октября, 2023 · Жалоба 9 hours ago, S.Sokolov said: Профит, единственный, в том, что в DNSDist "умеет" отсылать копию DNS-запроса на серверы НСДИ - 195.208.4.1. делается это одной командой в конфигурационном файле. Вам бы почитать документацию к фаерволам, там тоже копия пакета легко засылается на любые адреса. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 2 ноября, 2023 · Жалоба В 31.10.2023 в 22:50, Ivan_83 сказал: Вам бы почитать документацию к фаерволам, там тоже копия пакета легко засылается на любые адреса. Шото типа -j TEE? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 2 ноября, 2023 · Жалоба 13 hours ago, pppoetest said: Шото типа -j TEE? Наверное, в PF это dup-to. Может и в свичах можно найти такой функционал в ACL. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
myth Опубликовано 5 ноября, 2023 · Жалоба Цитата 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 7 ноября, 2023 · Жалоба В 05.11.2023 в 13:41, myth сказал: И такое убожество выдавать клиентам как основной DNS желания что-то не возникает Настройте свой сервер по схеме с 6.1 и 7.1, всё стабильно и трюки никакие не нужны, трафик на РКН минимальный Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
swsn Опубликовано 15 ноября, 2023 · Жалоба Вообще клиентов форвардить на публичные dns плохая практика, там не исключены ограничения запросов с одного айпишника. Лучше поднимите свои рекурсивные сервера и балансите на них Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...