Задача: доказать, что резолвер отвечает из локальной зоны, а не обращается к авторитетным серверам iana.org.
Когда Unbound получает запрос по домену, для которого настроена local-zone: static, он отвечает немедленно из локальной базы — не отправляя ни одного пакета в интернет. Это можно доказать тремя способами:
ad и записей RRSIG.dig +trace показывает полный рекурсивный путь от корня до авторитетных серверов, который наш резолвер не проходит.Запрашиваем iana.org A с флагом +dnssec чтобы увидеть DNSSEC-статус:
dig @127.0.0.1 iana.org A +dnssec
В ответе:
ad — данные не аутентифицированы через DNSSECRRSIG в секции ANSWER — данные не подписаныQuery time: 0 msec — ответ пришёл из локальной базы мгновенно
Тот же запрос через Google Public DNS для сравнения:
dig @8.8.8.8 iana.org A +dnssec
В ответе:
ad присутствует — DNSSEC-цепочка проверенаRRSIG присутствуют — данные подписаны ZSK зоны iana.orgQuery time — десятки миллисекунд (сетевой запрос)
Разница в наличии ad и RRSIG доказывает: наш резолвер отдаёт локальные данные, внешний — проверенные данные с авторитетных серверов.
dig +trace выполняет рекурсивный поиск самостоятельно, минуя наш резолвер — начиная с корневых серверов:
dig +trace @8.8.8.8 iana.org A
Трассировка показывает полный путь:
. → корневые серверы
org. → TLD-серверы .org
iana.org. → авторитетные серверы (ns.icann.org, a.iana-servers.net, ...)
Это именно тот путь, который Unbound должен был бы пройти при обычном запросе — но не проходит, так как local-zone: "iana.org." static перехватывает запрос до обращения к сети.
| Наш резолвер (127.0.0.1) | Внешний (8.8.8.8) | |
|---|---|---|
Флаг ad |
нет | есть |
Записи RRSIG |
нет | есть |
| Query time | 0 мс | >0 мс |
| Источник данных | локальная зона | авторитетные серверы |