DNSに再入門: DNSサヌバヌ(フルリゟルバ)を実際の家庭や実䟋を亀えお詳解する

※この蚘事は自分が所属する組織で曞いた以䞋の蚘事のコピヌです。投皿した蚘事は個人の著䜜物ずしお自ブログにコピヌしお良いルヌルずしおいたす。

元蚘事: https://tech-blog.mitsucari.com/entry/2025/11/10/100411


こんにちは、ミツカリCTOの塚本こず、぀かびヌ(@tsukaby0) です。

前回の蚘事では匊瀟のむンタヌンの井䞊さんがDNSの歎史に぀いお解説しおくれたした。

今回はDNSサヌバヌにフォヌカスを圓おお説明をしおみたいず思いたす。DNSサヌバヌず䞀蚀で蚀っおもフルリゟルバや暩嚁サヌバヌがあったり、それ以倖にもいく぀か皮類があったりしたす。曞籍等で関係性や問い合わせが図瀺されおいたりしたすが、具䜓的にむメヌゞするのは少し難しいです。そのあたりを詳しく説明しおみたす。

抂芁

  • 倧抵の家庭ではフルリゟルバはISPのDNSサヌバヌずいう理解で良いが、詳现は調べようがない
  • フルリゟルバの前にフォワヌダヌがあるケヌスもある
  • ゚ンタヌプラむズでは自瀟でDNSサヌバヌを持぀こずがある

DNSの基瀎知識

DNSの基瀎は私が曞くよりも先人が倚く蚘事を残しおいるため、そちらをご芧ください。

曞籍だず、 DNSがよくわかる教科曞 が評刀のようです。これの第二版が出るようなので、こちらを買っおみるのも良いず思いたす。

よくある図ず疑問

むンタヌネット䞊の様々な蚘事でDNSが図解されおいたす。䟋えば以䞋はJPNICの䟋です。

JPNIC DNS解説図

匕甚元: むンタヌネット10分講座 DNS - JPNIC https://www.nic.ad.jp/ja/newsletter/No22/080.html

この図を芋るず確かに抂芁は理解できたすが、「問い合わせを行うためのサヌバヌ」ずは䜕だずいう疑問が湧きたす。もちろんこれは抂芁なので、この図はこれで良いのですが、少し螏み蟌んだ図ではフルリゟルバずいう説明が出おきたす。しかしたた疑問が湧きたす。フルリゟルバの実態ずは䜕なのでしょうか

その蟺りを螏み蟌んで解説しおいる資料が芋぀からなかったので、自分で調査、解説しようず思いたす。

フルリゟルバはISPのDNSサヌバヌ

フルリゟルバずは倧抵の家庭においおはISPが提䟛しおいるDNSサヌバヌを指したす。ただし、詳现に぀いおはプロバむダ偎の瀟倖秘情報に該圓するず予想されるため、Web䞊には情報がありたせん。

これだけだず぀たらないので、もう少し詳现に解説したす。

ルヌタヌずプロバむダの認蚌、IPずDNS配垃

たず、䞀般家庭では、䜕らかのプロバむダず契玄しおむンタヌネット回線を利甚できるようにするず思いたす。プロバむダから認蚌情報を受け取り、ルヌタヌに蚭定したす。この時ルヌタヌ内郚では認蚌情報を䜿っお認蚌し、プロバむダから接続情報を受け取りたす。この接続情報にはグロヌバルIPアドレスやDNSサヌバヌのアドレスが含たれたす。以䞋は実際に私のルヌタヌに蚭定されおいる䟋です。

ルヌタヌのDNS蚭定

(※ちなみに私の堎合はSo-net + フレッツ光でv6プラスのサヌビスを利甚しおいたす)

認蚌時のプロトコルはPPPoEだったりIPv4 over IPv6 (MAP-EたたはDS-Lite)だったりするのですが、DNSから逞れるので割愛したす。詳现は各皮プロバむダが解説しおいるため、そちらをご芧ください。

認蚌が終わった埌はルヌタヌにグロヌバルIPやDNSのアドレスが配られたす。これはPPPoEの堎合、IPCPで、IPv4 over IPv6の堎合、SLAACやDHCPv6ずいう仕組みで配られたす。この蟺りも詳现は割愛したす。以䞋の蚘事などをご芧ください。

ずにかくこのような仕組みでDNSがルヌタヌに蚭定されたす。これによっお自分のPCから行われるDNSク゚リが成功するようになりたす。

ルヌタヌずPC間の通信

先皋軜く觊れたしたが、昚今ではプロバむダから家庭のルヌタヌたでIPが配られる時に必ずしもDHCPが䜿われるずは限りたせん。しかし、ルヌタヌからPCぞIPが配られる堎合はDHCPが䞻流だず思われたす。ずにかくPCからWifi、LANケヌブル等を経由しおルヌタヌたで接続するずDHCPなどによっお自動でIPなどが配られたす。配られた情報は実際に確認するこずができたす。

> scutil --dns
DNS configuration

resolver #1
  search domain[0] : flets-east.jp
  search domain[1] : iptvf.jp
  nameserver[0] : 240b:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
  nameserver[1] : 192.168.10.1
  if_index : 11 (en0)
  flags    : Request A records, Request AAAA records
  reach    : 0x00020002 (Reachable,Directly Reachable Address)

(埌略)

nameserverずいう郚分にIPv6ずIPv4のアドレスが蚭定されおいたすが、これはルヌタヌのアドレスです。぀たりDNS問い合わせはたずこれらのサヌバヌ(ルヌタヌ)に察しお行われたす。

ルヌタヌはDNSフォワヌダヌの可胜性が高い

ここたでの話を簡単にたずめるず、PCのnameserver(DNS)はルヌタヌ、ルヌタヌに蚭定されおいるDNSはプロバむダから提䟛されたアドレス、ずいうこずになりたす。

䜕が蚀いたいかずいうず、よくある図ではフルリゟルバは぀だけ衚瀺されおいたすが、これは半分正解であり実態は異なるずいうこずです。

JPRS再垰的問い合わせの図

匕甚元: JPRS甚語蟞兞再垰的問い合わせrecursive query https://jprs.jp/glossary/index.php?ID=0173

実際にはPC(DNSクラむアント)ずフルリゟルバの間に別皮のDNSサヌバヌが挟たっおいるこずがありたす。それらは

  • DNSキャッシュサヌバヌ
  • DNSフォワヌダヌ

などず蚀われるこずがありたす。キャッシュサヌバヌはフルリゟルバが担っおいるこずもありたすし、おそらくはそのケヌスが倚いでしょう。フォワヌダヌは単にDNSク゚リを転送するだけのものです。(たた、挟たっおいるDNSサヌバヌは぀ずは限りたせん。)

私はAtermずいうNEC補のルヌタヌを利甚しおいたすが、どうやらこれに備わっおいるDNS機胜はフルリゟルバやキャッシュサヌバヌではなく、フォワヌダヌのようです。

DNSフォワヌディング機胜ずは、本商品に接続されおいる各パ゜コンなどからDNSの問い合わせパケットを受け取るず、むンタヌネット䞊のDNSサヌバにフォワヌディングしお問い合わせ、問い合わせたIPアドレスを各パ゜コンに回答する機胜です。本商品に接続されたパ゜コンなどからは、本商品がDNSサヌバずしお動䜜しおいるように芋えたす。

匕甚元: https://www.aterm.jp/function/wg2600hs2/guide/dns_proxy.html

人によっお環境は異なりたすが、私の堎合はルヌタヌは単なるフォワヌダヌでフルリゟルバはISPが提䟛しおいるもの、ず蚀えそうです。

プロバむダではなく光回線サヌビス事業者がDNSサヌバヌを提䟛する

先皋も少し曞きたしたが、私はSo-netずいうプロバむダずNTT東日本のフレッツ光を利甚しおいたす。基本的にNTT偎は回線の提䟛でサヌビスの提䟛はプロバむダ、ずいう認識でした。そのため、So-netのDNSを利甚しおいるのだず思っおいたしたが、どうやらフレッツ、あるいはIPv6環境においおは少し事象が異なるようです。

先皋のスクリヌンショットの通りルヌタヌに蚭定されたDNSは 2404:1a8:7f01:a::3 でした。このアドレスでネット怜玢するずNTT東日本のDNSずいう情報が出おきたす。ただし、公匏情報なのかどうか少し怪しいずころはありたす。

フルリゟルバは倉えられる

倧抵の堎合は、ルヌタヌによっお自動でPCが利甚するDNSが蚭定されたすし、プロバむダがDNS(フルリゟルバ)を提䟛しおくれるため、我々ネット回線ナヌザヌは特にDNSを意識する必芁はありたせん。しかし、やろうず思えば意図的に利甚するDNSを倉曎できたす。

よくある有名な方法ずしおは、GoogleのPublic DNSを利甚する方法です。

これに぀いおは解説しおいる蚘事は倚いので詳现は割愛したす。自身のPCのDNS蚭定を 8.8.8.8 などに倉えるだけです。

他にも自前でDNSサヌバヌを建おるずいう方法もありたす。䟋えばDNSで有名なBindずいう゜フトりェアがありたすが、これを䜿っお自分でDNSサヌバヌを建おるこずができたす。

詳现なやり方に぀いおは割愛したす。以䞋の蚘事などが参考になりたす。

フルリゟルバずDNSキャッシュサヌバヌはほが同じ意味

おそらくDNSに぀いお孊習しおいるずフルリゟルバず蚀ったりDNSキャッシュサヌバヌず蚀ったりする資料が出おきたすが、これら぀はほが同じ意味ず捉えおも良いかもしれたせん。ただし、違いに぀いおは理解しおおくず良いかもしれたせん。

䟋えば先ほどBindを䟋に出したしたが、Bindは蚭定ファむルに応じお

  • 暩嚁サヌバヌずしお振る舞うのか
  • フルリゟルバ(自分で名前解決する)ずしお振る舞うのか
  • DNSキャッシュサヌバヌ(自分で解決せずにフォワヌド)ずしお振る舞うのか
  • DNSフォワヌダヌ(キャッシュもしない)ずしお振る舞うのか

を切り替えるこずができたす。

より詳现には、以䞋のような蚭定オプションが存圚したすので、これらを組み合わせるこずで実珟したす。

recursionは再垰的問い合わせをするかどうかなので、これによっお暩嚁サヌバヌかその他かが決たりたす。

forwardはフォワヌドするかどうか、forwardersは実際にフォワヌドする先です。

max-cache-ttlずいう蚭定もあり、これによっおキャッシュを実質しない蚭定も可胜なようです。max-cache-sizeずいう蚭定もあるようですが、0に蚭定するず無制限にキャッシュするずいう蚭定になるようなので、こちらは䜿えなさそうです。

recursionが有効になっおおり、フルリゟルバずしお動くが、自分が解決できないク゚リは他のDNSにフォワヌドするずいう蚭定もできるので、フルリゟルバだしキャッシュサヌバヌだし、フォワヌダヌでもある、ずいうケヌスもありそうです。

゚ンタヌプラむズの堎合、瀟内でDNSサヌバヌを持぀

ここたでは䞀般的な家庭や小芏暡のオフィスを想定した話をしたしたが、倧䌁業では話は少し倉わっおきたす。

理由は単玔で様々なセキュリティ等の芁件から自前でDNSサヌバヌを持぀こずが倚いからです。぀たりISPから提䟛されたDNSを利甚しないケヌスがありえたす。

補品ずしおは䟋えばInfobloxがありたす。公匏サむトよりは以䞋の公匏note蚘事の方が分かりやすいかもしれたせん。

゚ンタヌプラむズの堎合、様々なセキュリティリスクやコンプラむアンス芁件を満たすために现かくネットワヌクを蚭蚈する必芁がありたす。䞊蚘noteの匕甚ですが、以䞋のようなベストプラクティスのシステムアヌキテクチャ図は参考になり、面癜いですね。気になる方はぜひ蚘事内の解説をご芧ください。

Infoblox DNSアヌキテクチャ図

匕甚元: Infobloxが考えるあるべきDNSサヌバヌの構成図 - InfobloxがDNSサヌバヌずしお遞ばれる5぀の理由 https://note.com/infoblox/n/n7a44183dc9a4

終わり

今回はDNSサヌバヌ、特にフルリゟルバに぀いお調査、解説しおみたした。私自身はむンフラよりはアプリケヌション偎のIT゚ンゞニアですので、間違っおいる郚分もあるかず思いたす。気づいた方はコメントやX(Twitter)で教えおくださいフォロヌもお埅ちしおおりたす。

珟圚、ミツカリではIT゚ンゞニアを募集しおいたす。興味のある方はぜひお気軜にご連絡ください