Почему dig Отвечать на мои вопросы по-другому?
Я не могу понять, почему существует разница в том, как dig отвечает на мои запросы в клиенте. Я настроил файл зоны, как показано ниже в DNS
$ORIGIN mail.lab.example.com.
$TTL 0
@ IN SOA colombo root.mail.lab.example.com. (
2003022720 ; Serial
56800 ; Refresh
14400 ; Retry
3600000 ; Expire
2h ) ; Min
@ IN NS mail.lab.example.com.
@ IN A 198.51.100.157
;NAPTR Records
pcr20718 IN NAPTR 10 34 "s" "SIP+D2U" "" _sip._udp.pcr20718
;SRV Records
_sip._udp.pcr20718 IN SRV 9 17 15103 pcr20718
;A Records
pcr20718 IN A 10.54.80.7
pcr20718 IN AAAA fd00:10:6b50:4500::9b
$ORIGIN webmail.mail.lab.example.com.
@ IN NS ns1.webmail.mail.lab.example.com.
ns1 IN A 198.51.100.156
@ IN NS ns2.webmail.mail.lab.example.com.
ns2 IN A 198.51.100.155
@ IN NS ns3.webmail.mail.lab.example.com.
ns3 IN A 198.51.100.154
@ IN NS ns4.webmail.mail.lab.example.com.
ns4 IN A 198.51.100.153
@ IN NS ns5.webmail.mail.lab.example.com.
ns5 IN A 198.51.100.152
@ IN NS ns6.webmail.mail.lab.example.com.
ns6 IN A 198.51.100.151
@ IN NS ns7.webmail.mail.lab.example.com.
ns7 IN A 198.51.100.150
@ IN NS ns8.webmail.mail.lab.example.com.
ns8 IN A 198.51.100.147
@ IN NS ns9.webmail.mail.lab.example.com.
ns9 IN A 198.51.100.146
@ IN NS ns10.webmail.mail.lab.example.com.
ns10 IN A 198.51.100.145
@ IN NS ns11.webmail.mail.lab.example.com.
ns11 IN A 198.51.100.144
@ IN NS ns12.webmail.mail.lab.example.com.
ns12 IN A 198.51.100.143
@ IN NS ns13.webmail.mail.lab.example.com.
ns13 IN A 198.51.100.142
@ IN NS ns14.webmail.mail.lab.example.com.
ns14 IN A 198.51.100.141
@ IN NS ns15.webmail.mail.lab.example.com.
ns15 IN A 198.51.100.140
@ IN NS ns16.webmail.mail.lab.example.com.
ns16 IN A 198.51.100.148
@ IN NS ns17.webmail.mail.lab.example.com.
ns17 IN A 198.51.100.149
@ IN NS ns18.webmail.mail.lab.example.com.
ns18 IN A 198.51.100.157
Когда я запускаю dig на DNS-сервере, я получаю ответы правильно
colombodns2:/var/lib/named # dig webmail.mail.lab.example.com. NAPTR
; <<>> DiG 9.9.5-rpz2+rl.14038.05-P1 <<>> webmail.mail.lab.example.com. NAPTR
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20175
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 18, ADDITIONAL: 19
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;webmail.mail.lab.example.com. IN NAPTR
;; AUTHORITY SECTION:
webmail.mail.lab.example.com. 0 IN NS ns9.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns18.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns11.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns2.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns4.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns8.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns10.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns17.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns12.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns3.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns6.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns14.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns16.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns15.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns7.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns1.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns5.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns13.webmail.mail.lab.example.com.
;; ADDITIONAL SECTION:
ns1.webmail.mail.lab.example.com. 0 IN A 198.51.100.156
ns2.webmail.mail.lab.example.com. 0 IN A 198.51.100.155
ns3.webmail.mail.lab.example.com. 0 IN A 198.51.100.154
ns4.webmail.mail.lab.example.com. 0 IN A 198.51.100.153
ns5.webmail.mail.lab.example.com. 0 IN A 198.51.100.152
ns6.webmail.mail.lab.example.com. 0 IN A 198.51.100.151
ns7.webmail.mail.lab.example.com. 0 IN A 198.51.100.150
ns8.webmail.mail.lab.example.com. 0 IN A 198.51.100.147
ns9.webmail.mail.lab.example.com. 0 IN A 198.51.100.146
ns10.webmail.mail.lab.example.com. 0 IN A 198.51.100.145
ns11.webmail.mail.lab.example.com. 0 IN A 198.51.100.144
ns12.webmail.mail.lab.example.com. 0 IN A 198.51.100.143
ns13.webmail.mail.lab.example.com. 0 IN A 198.51.100.142
ns14.webmail.mail.lab.example.com. 0 IN A 198.51.100.141
ns15.webmail.mail.lab.example.com. 0 IN A 198.51.100.140
ns16.webmail.mail.lab.example.com. 0 IN A 198.51.100.148
ns17.webmail.mail.lab.example.com. 0 IN A 198.51.100.149
ns18.webmail.mail.lab.example.com. 0 IN A 198.51.100.157
;; Query time: 27 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Oct 17 11:02:49 IST 2017
;; MSG SIZE rcvd: 678
Когда я работаю с клиента, я не вижу tc (бит усечения), установленный в моих запросах. Будет ли работать усечение для NS Queries?
dig @203.0.113.1 webmail.mail.lab.example.com. NAPTR +edns=0 +bufsize=512
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> @203.0.113.1 webmail.mail.lab.example.com. NAPTR +edns=0 +bufsize=512
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20571
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 18, ADDITIONAL: 8
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;webmail.mail.lab.example.com. IN NAPTR
;; AUTHORITY SECTION:
webmail.mail.lab.example.com. 0 IN NS ns8.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns12.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns13.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns14.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns1.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns16.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns9.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns3.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns10.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns18.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns5.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns11.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns2.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns6.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns7.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns17.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns15.webmail.mail.lab.example.com.
webmail.mail.lab.example.com. 0 IN NS ns4.webmail.mail.lab.example.com.
;; ADDITIONAL SECTION:
ns1.webmail.mail.lab.example.com. 0 IN A 198.51.100.156
ns2.webmail.mail.lab.example.com. 0 IN A 198.51.100.155
ns3.webmail.mail.lab.example.com. 0 IN A 198.51.100.154
ns4.webmail.mail.lab.example.com. 0 IN A 198.51.100.153
ns5.webmail.mail.lab.example.com. 0 IN A 198.51.100.152
ns6.webmail.mail.lab.example.com. 0 IN A 198.51.100.151
ns7.webmail.mail.lab.example.com. 0 IN A 198.51.100.150
;; Query time: 1 msec
;; SERVER: 203.0.113.1#53(203.0.113.1)
;; WHEN: Tue Oct 17 11:40:31 2017
;; MSG SIZE rcvd: 502
Это связано с моим DNS-сервером, который не может установить бит усечения? Я хочу, чтобы бит Trucation был установлен и выполнял откат по TCP. Но это, похоже, не удалось
Что я могу делать не так?
1 ответ
Ответ не был достаточно большим, чтобы быть усеченным.
Бит TC не устанавливается, когда дополнительная секция не помещается полностью - RFC 2181:
Бит TC должен быть установлен в ответах только тогда, когда RRSet требуется как часть ответа, но не может быть включен во всей его полноте. Бит TC не должен устанавливаться только потому, что могла быть включена некоторая дополнительная информация, но места было недостаточно. Это включает в себя результаты дополнительной обработки раздела. В таких случаях весь RRSet, который не помещается в ответ, должен быть пропущен, а ответ отправлен как есть, с битом TC очищенным. Если получателю ответа требуются пропущенные данные, он может создать запрос для этих данных и отправить его отдельно.
Кроме того, клиент dig поддерживает EDNS0 и согласовывает значительно больший размер пакета - вместо 512 байт он может получить до 4 кБ.