インターネットの裏側、覗いてみませんか?
こんにちは!「リナックス先生」です。
今回から全12回にわたり、Linuxサーバー構築の王道にして最難関、「DNSサーバー(BIND9)」の完全攻略コースをスタートします。
皆さんは普段、何気なくスマホやPCでWebサイトを見ていますよね。
「ネットに繋がるのは当たり前」と思っているかもしれません。
しかし、その「当たり前」を裏で支えているのがDNS(ディー・エヌ・エス)というシステムです。
はっきり言います。DNSを理解することは、インターネットそのものを理解することと同じです。
Webサーバーやメールサーバーを作れても、DNSが分かっていないエンジニアは「半人前」と言われてしまうことすらあります。
この講座では、世界で最も使われているDNSソフトウェア「BIND9(バインド・ナイン)」を使って、あなた自身の手でこの「インターネットの水先案内人」を構築します。
少し難しい概念もありますが、ここを乗り越えた先には、ネットワーク全体を俯瞰できる「エンジニアとしての新しい視界」が待っていますよ!
先生、いきなり熱血ですね…!
でも正直、DNSって地味なイメージです。「設定ファイルが複雑で、間違えるとネットが繋がらなくなる怖いヤツ」って先輩が言ってました。
初心者の僕でも、本当に作れるようになるんでしょうか?
その「怖い」という感覚は正しいわ。DNSが止まれば、GoogleもYouTubeも、世界中のサービスが(見かけ上)停止するの。
だからこそ、DNSを扱えるエンジニアは市場価値が高いのよ。
第1回は設定ファイルには触れず、まずは「DNSの世界地図」を頭の中に描くところから始めましょう。ここさえ分かれば、設定なんて怖くないわ!
1. DNSがなければ、ネットは「数字の羅列」になる
DNS(Domain Name System)の役割を一言で表すと、「人間語と機械語の通訳」です。
1-1. コンピュータは「名前」が分からない
インターネット上のすべてのサーバーには、IPアドレスという「住所(数字)」が割り当てられています。
例えば、Googleのサーバーの住所は 142.250.196.14 です(※変動します)。
コンピュータ同士は、この数字さえあれば通信できます。
しかし、私たち人間はどうでしょう?
「ねえ、昨日の面白かった動画、192.0.2.15 で見たよ!」なんて会話、絶対にしませんよね?
- 人間: 数字なんて覚えられない!
google.comっていう名前でアクセスしたい! - 機械: 名前なんて分からない! 数字(IPアドレス)で命令してくれないと動けない!
この両者の間に入り、「google.com ですね? それは 142.250.196.14 のことですよ」と教えてくれるシステム。
それがDNSです。この変換作業を専門用語で「名前解決(Name Resolution)」と呼びます。
1-2. もしDNSが世界から消えたら?
想像してみてください。ある日突然、世界中のDNSサーバーが停止したらどうなるでしょうか?
- ブラウザにURLを入れても「サーバーが見つかりません」と表示される。
- LINEもTwitterもInstagramも、アプリを開いても読み込めない。
- メールを送ろうとしても、宛先のサーバーがどこにあるか分からず届かない。
実は、回線そのものは生きています。IPアドレスを直接打ち込めば繋がります。
しかし、誰もIPアドレスなんて覚えていません。
つまり、DNSが止まるということは、事実上インターネットが使い物にならなくなるということなのです。
2. ドメインの階層構造と「ドット」の秘密
DNSを理解する上で避けて通れないのが、ドメイン名の構造です。
普段見ているURL、実は「後ろから読む」のが正解だということを知っていましたか?
インターネットの根っこ「ルート」
www.example.com というドメインを例にしましょう。
実はこれ、正式には最後にドットがついて www.example.com. なのです。
- . (ルート): 一番右端にある、普段は省略されている「根っこ」。インターネットの神様的な存在。
- .com (トップレベルドメイン): ルートの下にある、「商用(com)」や「日本(jp)」などの大分類。
- .example (第2レベルドメイン): 組織名や会社名を表す部分。
- www (ホスト名): その組織の中にある、具体的なサーバーの名前。
バケツリレーで答えを探す
PCが名前解決をする時、DNSの世界では壮大な「たらい回し(バケツリレー)」が行われています。
PC:「www.example.com のIP教えて!」
① ルートサーバー:「知らん!でも .com を管理してる人の住所なら知ってるから、そっちで聞いて!」
② .comサーバー:「詳しいことは知らん!でも example.com を管理してるサーバーなら知ってるから、そっちへ行け!」
③ example.comサーバー:「おう、それはウチのWebサーバーだな。IPは 93.184.216.34 だ!」
PC:「やっと分かった…ありがとう!」
この一連の流れを、わずか0.1秒足らずの間に処理しているのです。
今回私たちが構築するBIND9は、このバケツリレーの登場人物のどれにでもなれる、すごいソフトなんです。
3. なぜ「BIND9」を選ぶのか?
DNSサーバーソフトには、BIND以外にも「Unbound」「NSD」「PowerDNS」などがあります。
しかし、初心者が学ぶなら圧倒的にBIND(Berkeley Internet Name Domain)一択です。
理由①:圧倒的なシェアと歴史
BINDは1980年代から存在する、インターネットの歴史そのものと言えるソフトウェアです。
「DNSの設定方法」をググれば、出てくる情報の9割はBINDのものです。
情報が多いというのは、学習において最強の武器になります。
理由②:万能型であること
他のソフトは「高速化に特化」「管理のしやすさに特化」など役割が限定されていることが多いですが、BINDは「DNSにできることは全部できる」万能選手です。
BINDを覚えておけば、将来ほかのソフトを使うことになっても知識をそのまま応用できます。
理由③:AlmaLinux 9の標準採用
企業のサーバーOSとして大人気のRHEL 9 / AlmaLinux 9でも、標準パッケージとして採用されています。dnf install bind と打つだけで、最も信頼性の高いバージョンが手に入ります。
なるほど…。
「とりあえずBINDを覚えておけば、どこに行っても通用するエンジニアになれる」ってことですね!
少しやる気が出てきました!
4. 初心者が必ずハマる「2つの役割」
さて、ここが第1回のハイライトです。
「DNSサーバーを作りたい」と言ったとき、実は全く異なる2種類のサーバーのどちらか(あるいは両方)を指しています。
ここをごちゃ混ぜに理解していると、設定ファイルの作成で100%挫折します。
役割①:キャッシュサーバー(フルリゾルバ)
「ユーザーの代わりに答えを探してきてあげる執事」です。
- 主な仕事: 社内や家庭内のPCから「このサイト見たい」と言われたら、ルートサーバーから順に問い合わせを行い、結果を教えてあげる。
- 特徴: 一度調べた結果は一時保存(キャッシュ)し、次に同じ質問が来たら即答する。
- 例: Google Public DNS (8.8.8.8)、プロバイダのDNSサーバー。
- 誰のために?: 「身内(社内・自宅)」のために働く。
役割②:権威サーバー(コンテンツサーバー)
「自分の知っていることだけを答える頑固オヤジ」です。
- 主な仕事: 自分が管理しているドメイン(例:
myserver.com)のIPアドレスだけを管理する。 - 特徴: 自分が知らないドメイン(google.comとか)のことを聞かれても、「知らん、他を当たれ」と無視する。
- 例: お名前.comのDNS、AWS Route53など。
- 誰のために?: 「世界中(外部)」のために働く。
BIND9は、設定次第で「執事」にも「頑固オヤジ」にもなれます。
昔は1台で両方兼任させていましたが、セキュリティ上、現在は機能を分けるのが鉄則です。
この講座でも、回を分けてそれぞれ別々に構築していきます。
5. 自分でDNSサーバーを建てるメリット
「プロバイダのDNSや8.8.8.8を使えばいいじゃん」と思うかもしれません。
それでも、エンジニアが自前のBINDサーバーを構築するのには大きな理由があります。
メリット①:高速化と安定化
自前のキャッシュサーバーをLAN内に置けば、2回目以降のアクセスは爆速になります。
プロバイダのDNSが障害で落ちても、自分のサーバーが生きていればネットサーフィンを続けられます。
メリット②:自由に名前をつけられる
これこそが醍醐味です。
例えば、自宅のプリンターやWebカメラに camera.myhome.lan といった好きな名前をつけてアクセスできるようになります。
IPアドレスを覚える生活とはおさらばです。
メリット③:ログによる可視化
「誰が」「いつ」「どのサイトを」見ようとしたかが全てログに残ります。
子供が怪しいサイトにアクセスしていないかチェックしたり、不審な通信(マルウェア)を早期発見したりするセキュリティ対策としても最強です。
6. 本講座のロードマップ
全12回で、あなたはDNSマスターになります。
以下のようなステップで進めていきます。
- 第1回〜第3回: 基礎知識とキャッシュサーバーの構築
(まずはLAN内を快適にする「執事」を作ります) - 第4回〜第7回: 権威サーバーの構築とゾーンファイルの書き方
(自分だけのドメインkou-house.lanを作って操ります) - 第8回〜第12回: セキュリティと応用技術
(スレーブ連携、アクセス制御、内と外で答えを変えるView機能など)
かなり長い道のりですが、ステップ・バイ・ステップで進むので安心してください。
どう?「DNSって面白そう!」って思えてきた?
次回は、いよいよ黒い画面(ターミナル)を開いて、BIND9のインストールと初期設定に挑戦するわよ。
OSはAlmaLinux 9を用意して待っていてね!
まとめ:DNSはネットの根幹である
第1回は、DNSという壮大なシステムの全体像をお話ししました。
- DNSはインターネットの住所録(名前解決)システム。
- BIND9は、そのための世界標準ソフトウェア。
- 「キャッシュ(調べる人)」と「権威(答える人)」の役割の違いを区別することが最重要。
- 自前で構築すれば、ネットワークを自由にコントロールできる。
次回は「【BIND9講座 第2回】コマンド一発!BIND9のインストールと、絶対間違えない設定ファイルの初期化」です。
いよいよ実践編スタート。お楽しみに!
▼DNS学習に最適なVPS環境
DNSサーバーを構築するには、IPアドレスが固定されている環境が必須です。
自宅サーバーだとルーター設定が大変ですが、VPSなら最初から固定IPが付与され、すぐにBINDの実験が始められます。AlmaLinux 9が選べるおすすめVPSはこちら。


コメント