Comments 8
Спасибо, хоть я и подзапутался к концу статьи, что вообще происходит, но было интересно) Ждём 3-ю часть
Нужно взять эти разбросанные по всему стеку точки кеширования, и заменить на один единый кеш DNS, где его разместить - это вопрос. Получим N+1 точку кеширования.
А потом сделать то же самое с Windows, macOS, Android (терзают меня смутные сомнения что там не просто сочетание Linux+Java из статьи а что-то еще накручено)...
DNS изначально придуман с кэшированием на всех уровнях. Даже если вы в пределах своей инфраструктуры объедините вообще всё, окажется, что на промежуточных уровнях может что-то кэшироваться по-своему (стреляет, например, когда вы меняете NSы для вашего базового домена).
Ядро Linux может опосредованно “кэшировать” DNS-трафик через подсистему netfilter/conntrack, если используется stateful-фильтрация.
Ну это натягивание совы на глобус )
Сейчас из-за этого кэширования получается неравномерное время запросов, что стреляет в некоторых случаях и даёт неровную работу сервисов. Но нет возможности сказать типа "раз у тебя осталось на эту запись TTL<60, обнови её сейчас принудительно вслед моему запросу". Вот за исправление этого многие сказали бы "спасибо".
Столкнулся недавно с тем, что еще и роутеры тоже имеют DNS-кэш. Мигрировался на другой VPS, вроде все запущено верно, уже проверил всех поставщиков DNS все обновилось, очистил везде кэш, а nslookup все равно показывал старый ip. Cлучайно зашел с телефона без Wi-Fi и тогда понял кто виноват :)
Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования