
DNSã«åå ¥é: NS, AAAAã¬ã³ãŒãã®å¿ èŠæ§ãæŽçãã
â»ãã®èšäºã¯èªåãæå±ããçµç¹ã§æžãã以äžã®èšäºã®ã³ããŒã§ããæçš¿ããèšäºã¯å人ã®èäœç©ãšããŠèªããã°ã«ã³ããŒããŠè¯ãã«ãŒã«ãšããŠããŸãã
å èšäº: https://tech-blog.mitsucari.com/entry/2025/12/08/184720
ããã«ã¡ã¯ãããã«ãªCTOã®å¡æ¬ããšãã€ãã³ãŒ(@tsukaby0) ã§ãã
DNSã¯æšä»ã®Webãæ¯ããæè¡ã§ãã
ååã¯DNSãµãŒããŒãRoute53ããCloudflareã«ç§»è¡ãããšããèšäºãæžããŸããã

ä»åã¯ç§»è¡äžã«çããçåãããŒã¹ã«ãåçš®ã¬ã³ãŒãã®èªèãçãéšåãæŽçããŠã¿ãŸããã
æŠèŠ
- èªãã¡ã€ã³(èªåã®DNS)ã«ãNSã¬ã³ãŒãã¯å¿ èŠã§ãããæš©åšã衚æããŠãã
- AAAAã¬ã³ãŒãã¯éä¿¡é«éåã®ããã«ã¯å¿ èŠã ããå¿ é ã§ã¯ãªã
解説ããªãã¬ã³ãŒã
以äžã®ã¬ã³ãŒãã¯ä»åã®å¯Ÿè±¡ç¯å²ããã¯é€å€ããŸãã
- Aã¬ã³ãŒã
- ãã¡ã€ã³ãšIPv4ã¢ãã¬ã¹ã®å¯Ÿå¿
- CNAMEã¬ã³ãŒã
- ãšã€ãªã¢ã¹ãå¥å
- TXT
- äžå®ã®ããã¹ããä¿åããããã®ãã®ãSPF/DKIM/DMARCãªã©ããã®ä»èªèšŒã§å©çš
- MX, CAA, PTR, ALIAS, etc
NSã¬ã³ãŒãã¯èªåã®ãŸãŒã³ã«ãå¿ èŠãªã®ãïŒ
ååã®èšäºã§ã¯äžäœã®æš©åšDNSãµãŒããŒã«èªåã®ãã¡ã€ã³ã®DNSãµãŒããŒã®å Žæ(NSã¬ã³ãŒã)ãèšé²ãããŠãããšãã話ãããŸããã
Amazon Route53ã§ã¯ãã¹ããããŸãŒã³ãäœæãããšèªåã§NSã¬ã³ãŒããäœæãããŸããèšå®å€ã¯Route53ã®ãµãŒããŒã§ããããã¯å ¬åŒããã¥ã¡ã³ãã«ããããšãããRoute53ã®ä»æ§ã§ãã
ããã§ïŒã€çåãçãŸããŸããäŸãã°èªèº«ãæã£ãŠãã example.com ãã¡ã€ã³ã®DNSãµãŒããŒ(NS)ãæãNSã¬ã³ãŒã㯠com ã®æš©åšDNSãµãŒããŒã«ç»é²ãããŸããããã«ãã£ãŠDNSã¯ãšãªãæããããæã¯ example.com ã«ã€ããŠã¯æå®ã®NSã«åãåãããŠãããšããå§ä»»ãã§ããããã«ãªãããã§ããã€ãŸããDNSã¯ãšãªã®ãããŒã ããèãããšèªåã®DNSãµãŒããŒã«ã¯NSã¬ã³ãŒãã¯ç»é²ããªããŠãè¯ãã®ã§ã¯ïŒãšæããŸãã
ãããã©ãããŠRoute53ã§ã¯NSã¬ã³ãŒããèªåã§äœãããã®ã§ããããã
ãŸããCloudflareã§ã¯Route53ãšã¯ç°ãªãNSã¬ã³ãŒãã¯èªåã§ã¯äœæãããŸããã

ãããçåç¹ã®ïŒã€ã§ãã
ã©ãããŠãããªã£ãŠããã®ãïŒNSã¬ã³ãŒãã¯å¿ èŠãªã®ãïŒã調æ»ããŠã¿ãŸããã
Cloudflareã¯UIäžèŠããŠããªãã ãã§ãèªåã§ç»é²ãããŠãã
Cloudflareã§ãããããã¯GUIäžã§NSã¬ã³ãŒããç»é²ãããŠããªãããã«èŠããã ãã§å®éã«ã¯è£ã§èªåã§ç»é²ãããŠããããã§ãã
dig @èªãã¡ã€ã³ã®DNSãµãŒã㌠foo.com NS ãšããã³ãã³ãã§çµæãè¿ã£ãŠããã®ã§èªåã§ç»é²ãããããšã確èªã§ããŸãã
> dig @oswald.ns.cloudflare.com foo.com NS
(åç¥)
;; ANSWER SECTION:
foo.com. 86400 IN NS oswald.ns.cloudflare.com.
foo.com. 86400 IN NS treasure.ns.cloudflare.com.
(åŸç¥)
èªãã¡ã€ã³ã®NSã¬ã³ãŒãã¯æš©åšè¡šæã®ããã«ååšãã
以äžã®JPRSã®æ£®äžãããå ããã®ã¹ã©ã€ããåèã«ãªããŸããããã®æ å ±ã®è£ä»ãã¯åããŠãŸããããå°éå®¶ãªã®ã§ããããæ£ããã§ãããã
ãŸããNSã¬ã³ãŒãã¯ããããå§ä»»ã®ããã«ãããã®ã§ããããããããã (root) -> com -> foo.com ãšããããã«èŸ¿ããããã§ããã .co.jp ã¯jpã®ãµããã¡ã€ã³ã ãã©ãããã¯å§ä»»ãããŠããªããšããã®ã¯ç¥ããŸããã§ããã確ãã«èªåãã¡ã§ tech-blog.foo.com ãªã©ã®ãµããã¡ã€ã³ãäœãããšããããŸãããNSãå¥ã«ç«ãŠãŠå§ä»»ãããšã¯éããŸãããã
芪åŽ(.com)ã®NSã¬ã³ãŒãã¯å§ä»»ã®è¡šæã§ãããååŽ(foo.com)ã®NSã¬ã³ãŒãã¯æš©åšã®è¡šæã§ããããšãæžãããŠããŸãã
èªãã¡ã€ã³ã®ããŒã ãµãŒããŒãèªãã¡ã€ã³ã®NSã¬ã³ãŒããšããŠç»é²ãããšã«ãŒããã
以äžã¯RFC1034ãJPRSã翻蚳ããŠãããã®ã§ããã以äžã®ãããªèšè¿°ããããŸãã
4.2.2. 管çã«é¢ããèæ ®ç¹
ããçµç¹ãèªèº«ã®ãã¡ã€ã³ã管çããããšæãå Žåããã®ç¬¬äžæ®µéã¯ãé©åãªèŠªãŸãŒã³ãç¹å®ãã芪ãŸãŒã³ã®ææè ãšç®¡çã®å§ä»»ã«é¢ããåæãåãä»ããããšã§ããã管çãå§ä»»ã§ããããªãŒã®äœçœ®ã«é¢ããŠæè¡é¢ã§ã®å ·äœçå¶çŽã¯äœããªããããããã¬ãã«ã®çµç¹åã«å¯Ÿå¿ãã管çäžã®ã°ã«ãŒãåãã«é¢ããŠã¯[RFC-1032]ã§è°è«ãããŠãããäžéã¬ãã«ã®ãŸãŒã³ã«é¢ããŠã¯ãç¬èªã®ã«ãŒã«ãèªç±ã«äœæã§ãããäŸãã°ããã倧åŠã¯åäžã®ãŸãŒã³ã®äœ¿çšãéžæãããããããªãããå¥ã®å€§åŠã¯åã ã®åŠéšãŸãã¯åŠç§å°çšã«èšãããããµããŸãŒã³ã«ããæ§æãéžæãããããããªãã[RFC-1033]ã¯ãå©çšå¯èœãªDNSãœãããŠã§ã¢ãšç®¡çäžã®æç¶ããåæããŠããã
æ°ãããµããŸãŒã³ã®é©åãªååãéžæãããæç¹ã§ãæ°ããææè ã¯åé·ãªããŒã ãµãŒããŒã®ãµããŒããå®èšŒããããšãèŠæ±ãããã¹ãã§ããããŸãŒã³ã®ãµãŒããŒãããã®ãã¡ã€ã³ã«å±ããååã®ãã¹ãã§ãªããã°ãªããªããšããèŠä»¶ã¯ååšããªãããšã«æ³šæãããå€ãã®å ŽåããŸãŒã³ã®ãµãŒããŒã¯ããŸãŒã³ç®¡ççµç¹ã管çããç©çæœèšå ã«ããããã¯ãåºåã«åæ£é 眮ããæ¹ãå šäœãšããŠã€ã³ã¿ãŒããããžã®ã¢ã¯ã»ã¹æ§ã¯ããåäžããã ãããäŸãã°çŸåšã®DNSã§ã¯ãè±åœãŸãã¯UKãã¡ã€ã³ã®ããŒã ãµãŒããŒã¯ã¢ã¡ãªã«åè¡åœ(US)ã«ãããããã«ãããUSã®ãã¹ãã¯å€§éžéãæšªæããéå®ããã垯åã䜿çšããããšãªããUKã®ããŒã¿ãååŸã§ããããã«ãªã£ãŠããã
å°å ¥ã®æçµæ®µéãšããŠãå§ä»»ãæå¹ã«ããããã«å¿ èŠãªå§ä»»ã®NS RRãšã°ã«ãŒRRã芪ãŸãŒã³ã«è¿œå ãããã¹ãã§ãããäž¡ãŸãŒã³ã®ç®¡çè ã¯ãã«ããã®äž¡åŽãããŒã¯ããNSãšã°ã«ãŒRRã«äžè²«æ§ãããããšãä¿èšŒãããŸããããç¶æãç¶ããã¹ãã§ããã
åŒçš: https://jprs.jp/tech/material/rfc/RFC1034-ja.txt
äž¡ãŸãŒã³ã®ç®¡çè ã¯ãã«ããã®äž¡åŽãããŒã¯ããNSãšã°ã«ãŒRRã«äžè²«æ§ãããããšãä¿èšŒãããŸããããç¶æãç¶ããã¹ãã§ããã
ãšèšã£ãŠããŸãããŸãRRã¯Resource recordã®ããšãªã®ã§åçŽã«ã¬ã³ãŒãã®ããšã§ããã°ã«ãŒRRãšããã®ã¯ä»¥äžãåèã«ãªããŸãã
å ã»ã©ãŸã§ã®ç§ã®äŸã ãšfoo.comã®NSã¯oswald.ns.cloudflare.comãªã®ã§ããã¡ã€ã³ãç°ãªããŸãããã®å Žåã¯åé¡ããªãã®ã§ãããåäžãã¡ã€ã³ã«NSãããå Žåã¯ã«ãŒããçºçããŠããŸããŸãã
äžèšã®èšäºãšåãã§ãããäŸãã°example.jpã®ããŒã ãµãŒããŒãns1.example.jpã ãšããŸãã
- ãexample.jpã®IPã¢ãã¬ã¹ã¯ïŒããšåãåããã
- 芪(.jp)ããns1.example.jpã«èããŠããšçãã
- ãns1.example.jpã®IPã¢ãã¬ã¹ã¯ïŒããšåãåããã
- ãexample.jpã®ããŒã ãµãŒããŒ(ns1.example.jp)ã«èããŠã(ç¡éã«ãŒã)
ãšããããã«ãªã£ãŠããŸããŸããããã§Aã¬ã³ãŒãã远å ããŠns1.example.jpã®IPã¢ãã¬ã¹ãå¿çãããããšã§ã«ãŒããåé¿ã§ããŸãã
ãŸãã
äžè²«æ§ãããããšãä¿èšŒãããŸããããç¶æãç¶ããã¹ãã§ãã
ãšããäžæããããŸãããããããã¯ãããããããèªãã¡ã€ã³ã®DNSãµãŒããŒã«ãNSã¬ã³ãŒããç»é²ããŠäžè²«æ§ãä¿ã£ãŠãã(æš©åšã衚æããŠãã)ã®ã§ãããããäœæ³ãªã®ããªãšæããŸããããã®ãããã®çµç·¯ã¯ããå°ãæ·±ã調æ»ããªããšåãããŸãããRFCã ãããšãã£ãŠäœã§ãåããããã§ã¯ãªããã¯ãèæ¯æ å ±ãªã©ã¯æãèœã¡ãŠããŸããã¡ã§ããã
AAAAã¬ã³ãŒããèšå®ããå¿ èŠããããïŒ
Aã¬ã³ãŒãã¯IPv4ã¢ãã¬ã¹çšã§ãããAAAAã¬ã³ãŒãã¯IPv6ã¢ãã¬ã¹çšã§ãã
ãã åã«ããã ããªã®ã§ãããæã ã®ãããªäœããã®ãµãŒãã¹ãéå¶ããŠããäºæ¥è ç®ç·ã§ã¯ã©ããªãã®ã§ãããããAAAAã¯å¿ èŠãªã®ãæ°ã«ãªããŸãã
çµè«ãšããŠã¯ãç¡ããŠãè¯ããããã£ãæ¹ãããããšããæãããªãšæã£ãŠããŸãã
ISPãªã©ããIPv6ã®ã¢ãã¬ã¹ãé ãããŠãã端æ«ããIPv4ã®ãµãŒããŒã«ã¢ã¯ã»ã¹ããããšããå ŽåãNAT64ã§IPv6=>IPv4倿ãè¡ãããŸãã倿ããããšããããšã¯åœç¶äœèšãªãªãŒããŒããããçºçãããšããããšã§ãããµãŒããŒåŽãIPv6ãæã£ãŠãããšããã倿ãåé¿ããããšãã§ããŸããã€ãŸãé«éã«æ¥ç¶ã§ããŸãã
ãã®ãããæã ã®ãããªäºæ¥è ã¯IPv6察å¿ããæ¹ãè¯ãããå¥ã«ãªããŠããµãŒãã¹æäŸã¯å¯èœã§ããããšãããããªçµè«ã«ãªããŸãã
å¿è«ãã£ãã»ããè¯ãã®ã¯ãããªã®ã§ããããã£ãæ¹ãè¯ããããããšããããã«ã¯è¡ããŸãããéçºã«éããããããä»äºã¯äŸ¡å€ãããããšã«éäžãã¹ãã§ããIPv6ã¯æ¬åœã«é«éåã«è²¢ç®ããã®ã§ããããïŒ(IPv4æ¯æžåé¡ã¯çœ®ããšããŠãæã äºæ¥è ã«ãšã£ãŠ)䟡å€ãããã®ã§ããããïŒ
ããã§å®éšããŠã¿ãããšã«ããŸãã
IPv4çµç±ãšIPv6çµç±ã®é床æ¯èŒ
ç§ã®èªå® ç°å¢ã¯ISPããIPv4ãšIPv6ãé ãããŠããŸãããã®ç¶æ³ã§IPv4ã䜿ã£ãŠãšããWebããŒãžã«æ¥ç¶ããã±ãŒã¹ãšIPv6ã䜿ã£ãŠWebããŒãžã«æ¥ç¶ããã±ãŒã¹ã§éåºŠãæ¯èŒããŠã¿ãŸãã
èšæž¬ã«ã¯curlã䜿ããŸããcurlã«ã¯ -4 ãš -6 ãšãããªãã·ã§ã³ããããããã䜿ããšãã¹ãå解決æã«IPv4ãŸãã¯IPv6ããããã䜿ãããŸãããã ããcurlã¯å
éšçã«ãã©ãŒã«ããã¯ããä»çµã¿ãããã®ã§ãä»®ã«æ¥ç¶å
ãAAAAãæäŸããŠããªãç¶æ
ã§ -6 ãä»ãããšããŠãcurlã³ãã³ãã¯æåããŸã(IPv4ã«ãã©ãŒã«ããã¯ããŸã)ãããã§curlãå®è¡ããåã«å¯Ÿè±¡ã®ãµãŒãã¹(ç§ãæã£ãŠãããã®)ãæ¬åœã«IPv6çµç±ã§æ¥ç¶ã§ããã®ãã確èªããŸãã
dig +short foo.com AAAA
2606:...
2606:...
(â»å®éã«ã¯foo.comã§ã¯ãªãå¥ã®ãã¡ã€ã³ã§ã)
ãã®å¯Ÿè±¡ãµãŒãã¹ã¯Cloudflareã§é ä¿¡ããŠããŸãããAAAAã¬ã³ãŒããç»é²ãããŠããIPv6ã«å¯Ÿå¿ããŠããŸãããã¡ããAã¬ã³ãŒããè¿ã£ãŠããŸãã
ãã®ç¶æ ã§ä»¥äžã®ãããªã³ãã³ããå®è¡ããŠã¿ãŸãã
for i in {1..10}; do
curl -4 -o /dev/null -s -w "%{time_total}\n" https://foo.com
done | awk '{sum += $1} END {if (NR>0) print sum/NR}'
-4 ãš -6 ã®2ãã¿ãŒã³ã§å®è¡ããçµæã以äžã§ãã
-4ã®å Žå:0.0977467-6ã®å Žå:0.110404
äºæ³ã«åããŠIPv4ã®æ¹ãæ©ããšããçµæãåºãŸããã
ç§ããããã€ãããIPv6ããé ãããŠããªãå Žåã¯ãŸã話ãå€ãã£ãŠãããã§ãããæ°ããèŠæ Œã§ããIPv6ã®æ¹ãéä¿¡ãé ãã®ã¯ãªãã§ããããã
ããã§traceroute, traceroute6ã®ïŒã€ã®ã³ãã³ãã䜿ã£ãŠã¿ãŸãããããã¯éä¿¡çµè·¯ãå¯èŠåããã³ãã³ãã§ãã
> traceroute foo.com
traceroute: Warning: foo.com has multiple addresses; using 104.21.50.xxx
traceroute to foo.com (104.21.50.xxx), 64 hops max, 40 byte packets
1 aterm.me (192.168.10.xxx) 18.907 ms 3.914 ms 4.069 ms
2 *.kddnet.ad.jp (118.155.198.xxx) 9.643 ms 8.185 ms 9.284 ms
3 27.86.120.xxx (27.86.120.xxx) 11.028 ms 9.657 ms 8.886 ms
4 27.86.45.xxx (27.86.45.xxx) 9.923 ms
27.85.137.xxx (27.85.137.xxx) 9.950 ms
27.86.45.xxx (27.86.45.xxx) 9.977 ms
5 * 27.85.134.xxx (27.85.134.xxx) 14.850 ms *
6 103.22.201.xxx (103.22.201.xxx) 13.507 ms
103.22.201.xxx (103.22.201.xxx) 10.323 ms
103.22.201.xxx (103.22.201.xxx) 12.304 ms
7 104.21.50.xxx (104.21.50.xxx) 10.801 ms 8.552 ms 8.065 ms
> traceroute6 foo.com
traceroute6: Warning: foo.com has multiple addresses; using 2606:4700:3031::ac43:****
traceroute6 to foo.com (2606:4700:3031::ac43:****) from 240b:10:3fc2:6100:****:****:****:****, 64 hops max, 28 byte packets
1 aterm.me 6.277 ms 4.044 ms 4.212 ms
2 240b:10:1f1f:ffff::**** 9.566 ms 44.705 ms 11.520 ms
3 * * *
4 * * *
5 2404:9200:225:7::**** 10.346 ms 24.402 ms 20.898 ms
6 * *
2001:268:fa02:1b6::**** 16.905 ms
7 *
2001:268:fa02:1d5::**** 17.297 ms
2001:268:fa02:173::**** 12.623 ms
8 2001:de8:8::1:3335:**** 15.008 ms 15.001 ms 24.475 ms
9 2400:cb00:382:3::**** 24.064 ms
2400:cb00:448:3::**** 11.538 ms
2400:cb00:382:3::**** 15.904 ms
10 2400:cb00:448:1024::ac46:**** 12.683 ms
2400:cb00:763:1024::ac47:**** 12.599 ms
2400:cb00:1009:1024::ac40:**** 9.903 ms
(â»çµæã¯äžéšãã¹ã¯ããŠããŸã)
ãã®çµæããIPv6æ¥ç¶ã®å Žåã¯çµç±ãããããã¯ãŒã¯ããŒãã10åååšããããšãåãããŸã(IPv4ã¯7å)ã
ã©ãããŠãããªã£ãŠããã®ãã¯åãããŸãããããããããããåå ã ãšæããŸããç§ã®éä¿¡ç°å¢ã«ãããŠã¯ïŒæ¥ç¶å ã«ããããŸããïŒIPv6ã«å¯Ÿå¿ããŠãããµã€ãã¯ããŸãæå³ãªããšèšãããã§ãã
ãšã¯ãããããŸã§ããã¯ç§å人ã®è©±ã«éããŸããåœå€ã§ãã£ãããåœå ã§ãå¥ã®éä¿¡ç¶²ïŒç§ã®å Žåã¯KDDIã®æ§åïŒã®å Žåã¯IPv4ããIPv6ã®éä¿¡ç¶²ã®æ¹ãé«éåãã€æé©åãããŠããå¯èœæ§ã¯ãããŸããå®éãååã«ãåãæ€èšŒãããŠããã£ããšãããååã®ç°å¢ã§ã¯IPv6ã®ã»ããæ©ããšããçµæã«ãªããŸãããv4ãšv6ã©ã¡ããæ©ããã¯ç°å¢æ¬¡ç¬¬ãšèšãããã§ãã
ãããã®çµæããIPv6察å¿(AAAAã¬ã³ãŒãã®çšæ)ã¯æå³ãããããšã ãšã¯æããŸãããã ã䟡å€ããããã¯å°ã埮åŠãªãšããã§ãã
ä»åãååã«ç¶ããŠDNSã«ã€ããŠèª¿ã¹ãŠã¿ãŸãããä»åŸãæ°ã®åããŸãŸã«æ°ã«ãªã£ãããšã調ã¹ãããå®éšããããäœã£ãŠãããããšæããŸãã
çŸåšãããã«ãªã§ã¯ITãšã³ãžãã¢ãåéããŠããŸããèå³ã®ããæ¹ã¯ãã²ãæ°è»œã«ãé£çµ¡ãã ããïŒ