Кратко

  • George Michaelson написал, что резерв его домашнего DNS существовал лишь в теории; перезапуск «основного» сервиса показал, что экземпляр был единственным.
  • DHCP и объявления IPv6-маршрутизатора могут передать несколько адресов резолверов, но список не доказывает, что клиенты сохранили и применили альтернативу.
  • Короткий акт переключения должен раздельно фиксировать рабочий endpoint, область отказа, выданную конфигурацию, состояние клиентов, полезный ответ, совпадение правил и откат.

9 сентября George Michaelson рассказал в блоге APNIC, как использовал Pi-hole и AdGuard в качестве внутреннего DNS дома. Это не сообщение об инциденте в производственных сервисах APNIC: страница прямо относит взгляды к автору. Ценность эпизода — в простой проверке реальности. Michaelson считал, что у него есть резервный план, но не воплотил его. Когда он перезапустил сервис, который называл основным, зависимые устройства перестали работать. Оказалось, что «основной» был не первым из двух, а единственным.

Источник не содержит длительности сбоя, полной схемы, перечня устройств, трасс пакетов или сведений об ущербе безопасности. Эти пробелы не следует заполнять догадками. Опубликованного достаточно, чтобы разделить намерение и исполняемое состояние. Второй резолвер может быть нарисован, но не запущен. Он может работать, но его адрес не будет выдан. Два адреса могут быть выданы, но не сохранены каждым клиентом. Наконец, запасной сервис может отвечать на обычные имена и не повторять локальные блокировки или перенаправления.

Разрыв появился раньше перезапуска

Перезапуск проявил сбой, но отсутствие резерва существовало до него. Для решения о техобслуживании это принципиально. Если администратор уверен в проверенной альтернативе, остановка одного endpoint выглядит ограниченным действием. Если альтернатива живёт только в плане, то же действие становится проверкой зависимостей на действующих пользователях.

Michaelson пишет, что перезапуск DNS останавливал другие домашние функции, изменение маршрутизатора могло отключить Wi‑Fi, а изменение DNS-настроек маршрутизатора затрагивало DHCP. Поэтому его три вопроса относятся к зависимым устройствам, фактическому переходу сети на альтернативу и возможности вернуть прежнее состояние.

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

Выданный список не равен поведению клиента

RFC 2132 позволяет опции 6 DHCPv4 передавать упорядоченный по предпочтению список DNS-серверов. RFC 3646 определяет для DHCPv6 один или несколько IPv6-адресов рекурсивных серверов. RFC 8106 позволяет передавать адреса RDNSS в объявлениях IPv6-маршрутизатора и задавать срок их действия; нулевой срок прекращает использование адреса.

Эти механизмы доказывают намерение стороны, выдающей конфигурацию. Запись DHCP или Router Advertisement показывает, что отправлялось в конкретный момент. Она не показывает, что сохранили и выбрали телевизор, телефон, ноутбук или датчик. RFC 6419 зафиксировал небольшую общность практик систем с несколькими интерфейсами: списки на интерфейс или один системный список, разные способы выбора при получении нескольких наборов, разные варианты возврата к запасному серверу. Это исторический документ, а не обследование дома Michaelson. Но он не позволяет принимать экран маршрутизатора за состояние всех клиентов.

RFC 9520 допускает, что stub-резолвер настроен на несколько рекурсивных адресов и повторяет запрос к другому серверу или по другому транспорту. Это не гарантия для конкретного устройства и срока. Ошибка разрешения возникает лишь тогда, когда ни один доступный сервер не даёт полезных данных для запроса. Между «объявлены два адреса» и «пользователь получил полезный ответ при отказе» остаётся поведение, которое нужно наблюдать.

Связность может вернуться без локальных правил

Домашний DNS из заметки был не только пересылкой запросов. Автор перенаправлял некоторые известные имена на адреса вне корневой системы. Поэтому в проверку входит совпадение политики. Запасной резолвер может разрешать обычные имена, но не повторять локальный ответ или блокировку. Интернет снова работает, а цель самостоятельной эксплуатации исчезает.

Источник не доказывает реального обхода политики или инцидента безопасности. Вывод уже: отдельно проверять продолжение разрешения и сохранение ожидаемых локальных правил. Если проходит только первое, это частичный успех.

Домашний акт вместо корпоративной процедуры

Сильнейшее возражение — соразмерность. Сам автор отмечает, что большинству домов допустим редкий сбой и не нужна корпоративная избыточность. Содержать два сервиса, синхронизировать правила и проверять разные устройства может быть дороже короткого перерыва.

Достаточно небольшой записи: резолверы A и B, место запуска и общие зависимости; адреса и сроки, выданные DHCPv4, DHCPv6 или RDNSS; состояние нескольких разных клиентов; краткое контролируемое отключение предпочтительного сервиса; обычный запрос и запрос с локальным правилом; ответивший endpoint, если он наблюдаем; затем восстановление прежней конфигурации.

Такая проверка не охватывает каждое устройство, запрос и вид отказа. Она закрывает ограниченный случай и называет непроверенное. Альтернатива превращает план в резерв, когда запущена; резерв становится отказоустойчивостью, когда им пользуются клиенты; отказоустойчивость становится управляемой, когда проверен откат.

Источники