
第4回 キャッシュ/逆引きDNSの構築と運用
鶴長 鎮一
2003/3/21
逆引きの仕組みと逆引きDNSの運用
おろそかにされがちな逆引きサーバですが、その効果は意外に大きいものです。WebサーバにしてもFTPサーバにしても、そのサーバの運用者の意図次第で、接続元のIPからドメイン名を検索してログファイルに記録したり、場合によっては逆引きしたドメイン名からIPアドレスを正引きし、同一性を確認する場合があります。
こうした機能はクライアントだけでなく、サービスを提供するサーバやネットワーク側にも多くのコストを要求します。運用側も十分に承知しており、こうした同一性の確認およびIPアドレスの逆引き結果をログファイルに記録するなどの行為は、多くのサイトでは行われていません。それでも接続元の身元を確実にとらえておきたいと意図する運営者や、ログファイルにはホスト名を残したいと思う管理者は少なからず存在します。そのようなサイトにアクセスした場合は、逆引きの効果が大きく左右します。
効果があることは分かっていても、なかなか運用に至れない原因の1つに、割り振られるIPアドレスのレンジの問題があります。第2回で紹介した逆引きはクラスC(注)のアドレスに基づいたものでした。
| 注:「基礎から学ぶWindowsネットワーク IPアドレスのクラス」参照。 |
しかし、実際に手に入れることができる固定IPは、月に数万円のコストを支払ったとしても8〜16個程度で、クラスC未満のCIDR(Classless Inter-Domain Routing:コラム「CIDRとクラス」参照)でしか割り当てられません。クラスC未満の逆引き設定は、契約しているプロバイダやネットワーク事業者に依存するため、一概に論じることはできません。しかし、多くの場合はここで紹介する方法が適用できるはずです。
また、どうしてプロバイダはそのような逆引き設定を強いるのかを知ることも重要です。まず、逆引きそのもののメカニズムを理解しましょう。
|
||||||||
■逆引きの仕組み
逆引きに関するゾーンファイルの記述方法やnamed.confでの指定はすでに第2回で紹介したとおり、とりわけ難しいものではありません。
192.168.10.0/24のIPレンジに対しては、named.conf中に「10.168.192.in-addr.arpa」ゾーンを設けます。上位3オクテットまでを逆に並べて、末尾に「.in-addr.arpa」を付けると機械的に覚えてもいいのですが、仕組みは実に単純です。結果からいってしまえば、逆引きにもちゃんとドメインツリーの仕組みが使われています。example.jp(図2)と192.168.10.0/24のドメインツリー(図3)を見比べてみましょう。
![]() |
| 図2 example.jpのドメインツリー |
![]() |
| 図3 192.168.10.0/24のドメインツリー |
正引きと同じように、「.」(ルート)を起点にドメインツリー検索が行われていることが分かるでしょう。「arpa(arpaTLD)」は、予約された特別なものですが、トップレベルドメイン(TLD)の1つにすぎません。その下にIPv4のアドレス体系を表す「in-addr」ドメインが続くわけです。
IPv4のアドレス体系があるわけですから、当然IPv6も「ip6.arpa」として予約されています。ほかにもIP電話の番号管理を見据えた「e164.arpa」ドメインが定義されています(参考:「DNS導入に向けての予備知識」)。in-addrに続いて、IPアドレスの第1オクテット(この場合は192)、第2オクテット(168)と連なり、最後にホストのアドレスに到達します。ホストのIPアドレスを探し出すまでにたどる道筋は、まさにドメインツリーです。
■クラスC未満での逆引き設定
上記の逆引きドメインツリーでは、IPアドレスの第3オクテット以下を分割することはできません。1(または0)から255までを1つのゾーンファイルに収める必要があります。しかし、これではクラスC未満でIPアドレスを割り当てられた場合は、割り当てIPをクラスC単位で管理するネットワーク事業者にいちいち修正依頼することになります。
![]() |
| 図4 クラスCの分割割り当て時の運用 |
そこで、クラスCの逆引きを管理するネットワーク事業者側の逆引きゾーン情報にサブドメインとCNAMEを用いることで、見かけ上はクラスC未満で割り振られた各契約者側で逆引き情報を管理できます。
まず、ネットワーク事業者側のnamed.confファイルおよびゾーンファイルから見ていきましょう。
zone "20.168.192.in-addr.arpa" { |
| ネットワーク事業者のnamed.confに追加される記述 |
$TTL 86400 |
| ネットワーク事業者のexample.rev |
named.confは、一般的なクラスCでの逆引き定義と変わりません。「file」には、それぞれのルールに合わせて任意のファイル名を指定します。
ここで指定されたゾーンファイルexample.revを見てみると、IPアドレスに対するホスト名の指定に用いられるPTRの行があり、各顧客に割り当てているIPレンジにはCNAMEが使われています。そのCNAMEで指定された先に、IPアドレスの第4オクテット目「.sub-a.20.168.192.in-addr.arpa.」が指定されています。通常のin-addr.arpa.の使い方ではクラスCまでしか指定できないため、独自にサブドメインを設け、見かけ上クラスC未満のアドレスをそれぞれのIP割り当て先(この場合は顧客Aや顧客B、C)のDNSに委譲しています。その際、サブドメインに対する「NS」をそれぞれ顧客のDNSに向けているわけです。
![]() |
| 図5 サブドメインによる分割 |
では、クラスC未満の逆引きを委譲された側(この場合は顧客A)のnamed.confや逆引きゾーンファイルを見てみましょう。
zone "sub-a.20.168.192.in-addr.arpa" { |
| 顧客Aのnamed.conf |
$TTL 86400 |
| 顧客Aのexample-a.rev |
named.confのゾーンの指定は、ネットワーク事業者が決めたサブドメイン(sub-a)付きのもので指定されています。逆引き用のゾーンファイル(example-a.rev)は至って一般的なものです。ここにきて、ようやく192.168.20.1のIPアドレスに対するホスト名が解決されるわけです。
digコマンドを使って確認してみましょう。1.sub-a.20.168.192.in-addr.arpa.を経てsv1.example-a.jp.に到着することが分かります。
$ dig @127.0.0.1 -x 192.168.20.1 |
皆さんが固定IPアドレスをレンジで取得する際は、ネットワーク事業者(ほとんどがプロバイダですが)から割り当てられるIPを使用し、逆引きDNSの作成方法もそれぞれのネットワーク事業者に従うことになります。とはいえ、多くはここで紹介した方法が取られています。サブドメインの命名規則が独特のものになっているため、ネットワーク事業者ごとにさまざまなルールが存在しているように見えますが、事業者側でどのようにやっているかが分かれば、理解が早くなると思います。
◆
今回はBIND 9をキャッシュサーバと逆引きDNSの2つの側面から紹介しました。キャッシュサーバの機能は、前回紹介した正引きゾーンサーバと今回の逆引きサーバとでは相反する用途で用いられるため、できればサーバそのものも分けて運用したいところです。しかし、リソースそのものに限りがある環境では、併用して運用せざるを得ないかもしれません。ですが、ゾーンサーバとキャッシュサーバはまったく異なる性質のものであることはよく覚えておきましょう。
■参考資料
- RFC2317 「Classless IN-ADDR.ARPA delegation」
http://rfc-jp.nic.ad.jp/cgi-bin/direct.cgi?keyword=2317&language=eng&x=24&y=7
- JPNIC公開文書「Class Cより小さなアドレス空間の割当(サブアロケーション)に関するパイロットプロジェクトについて」
ftp://ftp.nic.ad.jp/jpnic/ipaddress/archive/ip-addr-suballoc.txt.960108
すでにドキュメントの効力期限は過ぎていますが、クラスC未満の逆引きDNSについては現在でも参考になります。
|
2/2
|
|
|
||||
|
||||
| 連載 実用 BIND 9で作るDNSサーバ |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
TechTargetジャパン
- クライアントがアクセスできる範囲を制限する (2012/2/10)
今回は、サーバ上のファイルの扱いに関係する設定項目について解説します - 新しい記事も入っていて安心しました (2012/2/7)
Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします - エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




