dig +short не работает при запросе корневого DNS-сервера?

Я обнаружил, что если я напрямую запрашиваю корневой DNS-сервер в Великобритании (например, 195.66.240.130), он дает результат в 2-5 мс по сравнению с запросом обычного DNS-сервера, который занимает 15-40 мс.

Однако по какой-то причине опция +short не работает при запросе 195.66.240.130.

Работает: dig @8.8.8.8 example.co.uk NS +short

Не работает: dig @195.66.240.130 example.co.uk NS +short

Кто-нибудь знает, почему?

Если я удалю +short, то будет показана вся соответствующая информация, но я пытаюсь получить чистый вывод.


person Stevie    schedule 22.12.2010    source источник


Ответы (1)


Опция +short предназначена для печати раздела ОТВЕТ из ответа, который может быть пустым (в случае реферальных ответов), как вы можете видеть из примера ниже:

[vitalie@silver ~]$ dig @195.66.240.130 bbc.co.uk NS

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> @195.66.240.130 bbc.co.uk NS
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63811
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;bbc.co.uk.                     IN      NS

;; AUTHORITY SECTION:
bbc.co.uk.              172800  IN      NS      ns1.thdo.bbc.co.uk.
bbc.co.uk.              172800  IN      NS      ns1.rbsov.bbc.co.uk.
bbc.co.uk.              172800  IN      NS      ns1.thls.bbc.co.uk.
bbc.co.uk.              172800  IN      NS      ns1.bbc.co.uk.

;; ADDITIONAL SECTION:
ns1.bbc.co.uk.          172800  IN      A       132.185.132.21
ns1.thdo.bbc.co.uk.     172800  IN      A       212.58.224.21
ns1.thls.bbc.co.uk.     172800  IN      A       132.185.240.21
ns1.rbsov.bbc.co.uk.    172800  IN      A       212.58.227.48

;; Query time: 57 msec
;; SERVER: 195.66.240.130#53(195.66.240.130)
;; WHEN: Wed Dec 22 15:12:29 2010
;; MSG SIZE  rcvd: 179
person vitalie    schedule 22.12.2010
comment
Виталий, спасибо за это. Таким образом, я предполагаю, что информация есть, как и должна быть, но она просто не в том формате, в котором dig может экспортировать ее как +short. Знаете ли вы, есть ли какие-либо недостатки в таком запросе корневых DNS-серверов? (при условии, что все домены, конечно, .uk). Я думаю, что могу сделать какую-нибудь магию grep или что-то в этом роде, чтобы экспортировать NS. - person Stevie; 22.12.2010
comment
копать @ 195.66.240.130 bbc.co.uk | grep -v '^;' | grep NS — это работает хорошо, мне просто нужно улучшить его, чтобы тянуть ТОЛЬКО серверы NS, а не гумп перед ним. - person Stevie; 22.12.2010
comment
Окончательно. Итак, для тех, кто хочет запрашивать корневые DNS-серверы и не использует функцию +short. Вы можете использовать это: dig @195.66.240.130 bbc.co.uk | grep -v '^;' | grep НС | awk '{напечатать $5}' - person Stevie; 22.12.2010
comment
@Stevie Я думаю, что ваша окончательная версия нуждается в небольшом улучшении, так как я не получил никаких результатов. Я добавил ns, и все заработало, поэтому я думаю, что окончательная версия будет dig @1.1.1.1 ns bbc.co.uk | grep -v '^;' | grep NS | awk '{print $5}'. - person To Ka; 27.02.2019