「誰だお前?」を防ぐための身元証明
こんにちは!「リナックス先生」です。
BIND9講座、第4回へようこそ。
前回は「名前(kou-house.lan)」から「IP(192.168.1.XX)」を調べる正引きの設定を行いました。
これで、人間にとっては非常に使いやすいネットワークになりましたね。
しかし、コンピュータにとってはまだ片手落ちです。
サーバーのアクセスログには 192.168.1.20 といった数字しか残りません。
「この IP、誰のPCだっけ?」と思った時、いちいち管理台帳を見直すのは非効率ですよね。
そこで必要なのが、IPアドレスからホスト名を逆探知する「逆引き(Reverse Lookup)」です。
今回は、DNSの中でも少し特殊なルールで動く、この逆引きゾーンを構築していきましょう。
先生、正直に言います。
正引きがあれば通信はできるんだから、逆引きなんて面倒なだけで要らないんじゃないですか?
僕の家、逆引き設定してませんけど困ったことないですよ?
あら、コウ君。「SSHでサーバーに接続する時、パスワード入力が出るまで数秒待たされる」こと、ない?
あれの最大の原因は、実は逆引き設定のサボりなのよ。
サーバーは「接続してきた君の正体」を確認しようと必死に逆引きDNSを引いて、タイムアウトするまで待ってるの。無駄だと思わない?
1. 逆引きが必要な理由
設定に入る前に、なぜプロは必ず逆引きを設定するのか、その理由を整理しておきましょう。
① ログの可視化とセキュリティ
ファイアウォールやWebサーバーのログには、通常IPアドレスが記録されます。
逆引きが設定されていれば、ログ解析ツールが自動的にホスト名に変換してくれるため、「ああ、これは経理部のPCだな」「これは怪しい海外のサーバーだな」と一目で判断できます。
② 認証遅延の防止(SSHなど)
SSHサーバーや一部のメールサーバーは、セキュリティチェックのために「接続元のIPアドレス」から「ホスト名」を逆引きし、そのホスト名から再度「IPアドレス」を正引きして、矛盾がないかを確認します(Fwd/Rev Check)。
逆引き設定がないと、DNSサーバーが「知りません」と答えるまでの間(またはタイムアウトまで)、ログイン処理が待たされてしまいます。
2. 特殊ドメイン「in-addr.arpa」の謎
逆引きの設定ファイルを書く上で、初心者が最も混乱するのが「IPアドレスを逆さまに書く」というルールです。
例えば、192.168.1.10 というIPアドレスの逆引きを定義したい場合、DNSの世界では以下のようなドメイン名として扱われます。
10.1.168.192.in-addr.arpa
なぜ逆さまなのか?
DNSは「階層構造(ツリー)」でしたね。www.google.com は、.(ルート) → com → google → www と、右から左へ絞り込まれていきます。
一方、IPアドレス 192.168.1.10 は、192(大分類) → 168 → 1 → 10(個別のPC) と、左から右へ絞り込まれます。
この「向きの違い」を合わせるために、DNSでIPアドレスを扱う時は、あえてIPアドレスを逆順に並べ替え、最後に .in-addr.arpa(IPアドレス逆引き用エリア)という特殊なドメインを付けるルールになったのです。
3. named.conf に「逆引きゾーン」を定義する
仕組みが分かったところで、設定に入りましょう。
今回のネットワークは 192.168.1.0/24 です。
これを逆引きゾーン名に変換すると、第4オクテット(ホスト部)を除いた 1.168.192.in-addr.arpa となります。
3-1. named.conf の編集
sudo vi /etc/named.conf
前回の正引きゾーンの下あたりに、以下の記述を追加します。
# 内部向け逆引きゾーン (192.168.1.0/24用)
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.in-addr.arpa.db"; # わかりやすいファイル名にする
allow-update { none; };
};
【プロのポイント】
ファイル名は自由ですが、正引きファイル(kou-house.lan.db)と対になるように、ゾーン名をそのままファイル名にするのが運用上のミスを防ぐコツです。
3-2. 構文チェック
追記したら、必ずチェックします。
sudo named-checkconf
4. 逆引きゾーンファイルの作成
次に、データファイルを作成します。
ここでは PTR(ポインタ)レコード という新しいレコードが登場します。
4-1. 新規ファイルの作成
sudo vi /var/named/1.168.192.in-addr.arpa.db
4-2. 記述内容(完全版)
以下の内容を記述してください。
正引き設定と同じホスト(ns1, router, pc)を登録します。
$TTL 86400
@ IN SOA ns1.kou-house.lan. root.kou-house.lan. (
2026011601 ; Serial (YYYYMMDDnn)
3600 ; Refresh
900 ; Retry
604800 ; Expire
86400 ; Minimum
)
; ネームサーバー(NS)
IN NS ns1.kou-house.lan.
; PTRレコード(IP -> ホスト名)
; 書くのは「第4オクテット」だけ!
10 IN PTR ns1.kou-house.lan.
1 IN PTR router.kou-house.lan.
20 IN PTR pc.kou-house.lan.
4-3. 逆引きファイルの書き方の鉄則
ここで多くの初心者がハマるポイントを解説します。
① 左側は「ホスト部(最後の数字)」だけ書く
ゾーン定義で既に 1.168.192.in-addr.arpa までは指定しているので、ファイルの中では残りの数字(第4オクテット)だけを書けばOKです。10 と書けば、自動的に 10.1.168.192.in-addr.arpa と解釈されます。
② 右側は「FQDN(完全なドメイン名)」で書き、最後にドットを付けるns1.kou-house.lan. のように、フルネームで書き、最後にルートを表すドット . を必ず付けます。
もしドットを忘れて ns1.kou-house.lan と書くと、BINDが気を利かせてゾーン名を後ろにくっつけてしまい、ns1.kou-house.lan.1.168.192.in-addr.arpa という謎のホスト名になってしまいます。
③ CNAME(別名)は登録しない
前回、web というCNAMEを作りましたが、逆引きには登録しません。
IPアドレス(192.168.1.10)の持ち主はあくまで実体である ns1 だからです。
5. 権限設定とチェック、そして反映
作成手順は正引きの時と同じです。
5-1. 所有権の変更
sudo chown root:named /var/named/1.168.192.in-addr.arpa.db
5-2. 構文チェック
逆引き専用のチェックも可能です。
sudo named-checkzone 1.168.192.in-addr.arpa /var/named/1.168.192.in-addr.arpa.db
OK が出ることを祈りましょう。
5-3. 再起動
sudo systemctl restart named
なるほど…IPを逆にするから 1.168.192 なうんですね。
ファイルの中身は意外とシンプル!
よし、これで僕のサーバーもプロ仕様に近づいたぞ。
6. 動作確認:dig -x コマンド
逆引きのテストには、digコマンドに -x オプションを付けます。
IPアドレスをそのまま引数に渡すだけで、自動的に in-addr.arpa 形式に変換して問い合わせてくれます。
テスト実行
ルーターのIP(192.168.1.1)から名前を引いてみましょう。
dig @127.0.0.1 -x 192.168.1.1
▼期待される結果
;; QUESTION SECTION: ;1.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.1.168.192.in-addr.arpa. 86400 IN PTR router.kou-house.lan.
ANSWERセクションに router.kou-house.lan. が表示されれば成功です!
これで、「192.168.1.1 って誰?」という問いに「それは router.kou-house.lan です」とサーバーが答えられるようになりました。
まとめ:正引きと逆引きで1セット
第4回では、プロのネットワーク環境に不可欠な「逆引き」を構築しました。
- 逆引きがないと、ログ解析不能やSSH遅延などの実害が出る。
- IPアドレスは in-addr.arpa ドメインを使って逆順に管理される。
- ゾーンファイルでは PTRレコード を使用する。
- PTRレコードのターゲット(右側)は必ず 末尾にドット を付ける。
これで、LAN内の名前解決に関してはほぼ完璧な環境が整いました。
正引きも逆引きも自在に操れるあなたは、もう立派なDNS管理者です。
さて、次回(第5回)からは少しステップアップします。
今は「1台」で運用していますが、もしこのサーバーが故障したらどうなりますか?
インターネットも社内業務もすべて止まってしまいます。
そこで登場するのが、2台目のDNSサーバー「スレーブサーバー」です。
マスターサーバーのデータを自動的にコピーし、冗長化(二重化)する仕組み「ゾーン転送」について解説します。
実務では絶対に1台で運用することはありません。プロの構成を学びに行きましょう!
▼逆引き設定も自由に試せるVPS
実務レベルのDNS運用を学ぶなら、グローバルIPアドレスに対する逆引き設定(PTRレコード申請など)も経験しておきたいところ。ネットワークの自由度が高いおすすめVPSはこちら。


コメント