ENDS Options in dig
以下のバージョンを使ってます。
$ dig -v
DiG 9.11.0rc1ちょっと違うけど以下も参考になる。
Release Notes for BIND Version 9.11.0b3 http://ftp.swin.edu.au/isc/bind9/9.11.0b3/RELEASE-NOTES-bind-9.11.0b3.html
$HOME/.digrc には +nocookie だけ書いてる。
(COOKIE が入っているものは、 .digrc を書き換えていなかったときのもの)
+bufsize=###
EDNS による UDP ペイロードサイズの拡張。 TCP フォールバックせずに大きいサイズの応答を受け取れる。
+[no]edns[=###]
(EDNS バージョンを指定して) EDNS クエリを投げる。
edns=1 を指定
$ dig yokohei.com +qr +edns=1
; <<>> DiG 9.11.0rc1 <<>> yokohei.com +qr +edns=1
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45859
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 1, flags:; udp: 4096
;; QUESTION SECTION:
;yokohei.com. IN A
;; QUERY SIZE: 40
...バージョン未指定
version 0 が使われる。
+ednsflags=###
EDNS Flag bit を指定。
6.1.4. Flags https://tools.ietf.org/html/rfc6891#section-6.1.4
DO DNSSEC OK bit as defined by [RFC3225].
Z Set to zero by senders and ignored by receivers, unless modified in a subsequent specification.
この Z に値を入れるみたい。 DO を指定するためのオプションではない。
pcap 結果はこんな感じ
+[no]ednsnegotiation
EDNS バージョンネゴシエーションを有効化するか否か。
+ednsneg のとき、 EDNS0 でリトライする。
+noednsneg のとき、 EDNS0 でリトライしない。
リトライの挙動を理解するため dig の実装を読む。
newedns を使ってリクエリ。 newedns とは何か、というと BADVERS を返すときに使われた EDNS バージョン。 なるほど。
+ednsopt=###[:value]
EDNS Option Code の指定。
DNS EDNS0 Option Codes (OPT) https://www.iana.org/assignments/dns-parameters/dns-parameters.xml#dns-parameters-11
例えば opt code 3 の nsid を指定すると、以下のようになる。
pcap 結果
Last updated