
Я пытаюсь использовать dig, команду bash в Ubuntu 18.04LTS, чтобы извлечь все записи txt из домена с именемzhihu.com, и это дает мне непоследовательные результаты.
Я использую следующую команду:
dig @8.8.8.8 SOA +short -t txt zhihu.com
Этот результат мне кажется хорошим:
root@mx:/var/www/html/server# dig @8.8.8.8 SOA +short -t txt zhihu.com
;; Warning, extra type option
"m5g7qjk31l5d1hkq6m3zvcf6lg2f0h16"
"google-site-verification=q42VyLbU7bjRv5xb2279AX9jJ3Vuxp-e4XG_f1EQRGk"
"v=spf1 include:_spf.google.com include:cust-spf.edmsphere.com -all"
Однако в следующую секунду я запускаю его и получаю:
root@mx:/var/www/html/server# dig @8.8.8.8 SOA +short -t txt zhihu.com
;; Warning, extra type option
e4094fc1d98c915a.ksyunad.com.
И e4094fc1d98c915a.ksyunad.com
дело оказывается в значении записи CNAME наzhihu.comв DNS.
Что тут происходит?
решение1
Во-первых, вы запрашиваете и запись SOA
и TXT
. TXT
Запрос отправляется и выдается предупреждение.
Основная проблема в том, что домен zhihu.com
неправильно настроен:
- поскольку это делегированный домен, ему нужны
SOA
иNS
записи, - существование записи
CNAME
несовместимо почти со всеми другими записями (кроме DNSSEC)
Следовательно, у вас есть непоследовательное поведение: каждый DNS-резолвер может разрешить эту несовместимость так, как ему хочется. 8.8.8.8
— это адрес anycast: каждый раз вы подключаетесь к потенциально другому серверу.