それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

digコマンドでプロトコルを指定する(HTTPS/TLS/TCP)

dig コマンドでプロトコルを指定する。

dig コマンドは UDP/53以外にもTCP / TLS(DoT) / HTTPS (DoH ) を指定できる。

dig g.co @dns.google +https
dig gco @dns.google +tls
dig g.co @dns.google +tcp

それぞれ、プロトコル+オプションで付与してあげると通信ができて便利。

TCPの例

TCP で通信する例である。

; <<>> DiG 9.18.11 <<>> g.co @dns.google +tcp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31758
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;g.co.                          IN      A

;; ANSWER SECTION:
g.co.                   300     IN      A       142.250.207.110

;; Query time: 49 msec
;; SERVER: 8.8.8.8#53(dns.google) (TCP)
;; WHEN: Fri Jun 23 02:50:41 JST 2023
;; MSG SIZE  rcvd: 49

DoTで通信する例である

; <<>> DiG 9.18.11 <<>> g.co @dns.google +tls
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40964
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;g.co.                          IN      A

;; ANSWER SECTION:
g.co.                   300     IN      A       142.250.207.110

;; Query time: 69 msec
;; SERVER: 8.8.4.4#853(dns.google) (TLS)
;; WHEN: Fri Jun 23 02:52:22 JST 2023
;; MSG SIZE  rcvd: 49

HTTPS(DoH)の場合

httpsでは、GETとPost(DoH)とプレーンがある。

$ dig g.co @192.168.2.2 +https
$ dig g.co @192.168.2.2 +https-get 

実行例

$ dig g.co +https-get @192.168.2.2

; <<>> DiG 9.20.15 <<>> g.co +https-get @192.168.2.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62431
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;g.co.                          IN      A

;; ANSWER SECTION:
g.co.                   534     IN      A       142.250.207.110

;; Query time: 9 msec
;; SERVER: 192.168.2.2#443(192.168.2.2) (HTTPS-GET)
;; WHEN: Sun Dec 14 04:51:10 JST 2025
;; MSG SIZE  rcvd: 49

あと重ねがけで、TLSとつかえるっぽいけど、これはどういう問い合わせなんだろうか

dig g.co +tls  +http-plain @192.168.2.2

たんなるTLSなのかな?

DoQ について

DoTとDoQは次のような関係になっている。

  • DoT: TCP /ポート 853 / over TLS
  • DoQ: UDP / ポート 853 ( or 784 ) / over TLS

なので、TCPUDPの違いがあり、同時にリッスンが可能。ポートを分ける必要はない。 dig ( dnsutils-dige )では、現在(2025-12-14) で DoQをサポートをしておらず、実験には kdig を使う ( kdig を使うと dig と同じ使い方でわかりやすい。

takuya@:~$ kdig  @192.168.2.2 +quic g.co
;; QUIC session (QUICv1)-(TLS1.3)-(ECDHE-X25519)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 0
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: NOERROR

;; QUESTION SECTION:
;; g.co.                        IN      A

;; ANSWER SECTION:
g.co.                   420     IN      A       142.250.206.238

;; Received 49 B
;; Time 2025-12-14 05:08:49 JST
;; From 192.168.2.2@853(UDP) in 28.3 ms

DoQも使えることがわかる。

ちょっと便利。

dot で通信(853)とかで疎通がするのがわかるのがちょっと楽しい。

2025-12-14 追記

  • https と http に付いて追記
  • DoQ に付いて追記