2009-06-02
DNS逆引きの基本について
逆引き設定するということをやろうとしたが、逆引き(DNS)について知らなすぎるので調べてみました。
目次
体系的な知識・技術を身につけるための学習法について - antipop
にならって、目次形式で調べてみようと思います。
- 1. 基本
- 1. 逆引きってなんだろう
- 2. in-addr.arpa ドメインって何?
- 3. 逆引きしてみよう
- 4. 逆引き設定(ゾーンファイルの編集を行って正引き・逆引きが行えるようにする)
- 2. 応用
- 1. 逆引き設定はするべき?設定しないと何か不便なの?メールでSPAM扱いされる?
- 2. 逆引きの信頼性について
- 3. 付録
1. 基本
1. 逆引き(DNS)ってなんだろう
逆引き(reverse lookup,reverse DNS lookup)とは、DNSを使って、IPアドレスからドメイン名に変換する行為や、結果を言う。
「IPアドレスからドメイン名に変換する」というのがポイントですね。
2. in-addr.arpa ドメインって何?
「in-addr.arpa ドメインを使って」と書いてありますが、in-addr.arpa ドメインとはなんでしょう。
DNS(domain name system)上で逆引きを実現する仕組み。
<略>
ホスト名-IPアドレス変換の仕組みと同様に,IPアドレスに名前を付けたものがin-addr.arpaアドレスである。例えば192.168.0.1は1.0.168.192.in-addr.arpaと表記する。
なるほど、逆引きを実現する仕組みがin-addr.arpa ドメインなのですね。
正引きの場合は、以下のようにまず「ルートネームサーバ」へ問い合わせて、どんどん問い合わせていき IPアドレスをしっているサーバにたどり着きます。
逆引きの場合は以下のようになります。
図参照( http://www.atmarkit.co.jp/flinux/rensai/bind02/bind02.html )
3. 逆引きしてみよう
どうやって逆引きされるかはわかりましたので、逆引きしてみましょう。DNSサーバを自分で立ち上げて実験してみました。
dig コマンドを利用します。 -x というオプションを利用すれば逆引きできます。
# dig @localhost -x 10.20.138.22 ; <<>> DiG 9.3.4-P1 <<>> @localhost -x 10.20.138.22 ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42006 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;22.138.20.10.in-addr.arpa. IN PTR ;; ANSWER SECTION: 22.138.20.10.in-addr.arpa. 86400 IN PTR hogehoge.fugafuga.com. ;; AUTHORITY SECTION: 22.138.20.10.in-addr.arpa. 86400 IN NS 10.20.138.22.22.138.20.10.in-addr.arpa. ;; Query time: 4 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Jun 2 21:22:09 2009 ;; MSG SIZE rcvd: 105
hogehoge.fugafuga.com というドメインが帰ってきました。
こんどは、どのように逆引き設定されているのか見てみましょう。
ちなみに、正引きすると以下のようになります。
# dig @localhost hogehoge.fugafuga.com ; <<>> DiG 9.3.4-P1 <<>> @localhost hogehoge.fugafuga.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10957 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;hogehoge.fugafuga.com. IN A ;; ANSWER SECTION: hogehoge.fugafuga.com. 86400 IN A 10.20.138.22 ;; AUTHORITY SECTION: hogehoge.fugafuga.com. 86400 IN NS ns.fukushige.localhost.com. ;; ADDITIONAL SECTION: ns.fukushige.localhost.com. 86400 IN A 10.20.138.21 ;; Query time: 215 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Jun 2 19:33:44 2009 ;; MSG SIZE rcvd: 108
4. 逆引き設定(ゾーンファイルの編集を行って正引き・逆引きが行えるようにする)
まず、named.conf は以下のようになっています。
/var/named/chroot/etc/named.conf
controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; include "/etc/rndc.key"; options { directory "/var/named/"; }; zone "ns.fukushige.localhost.com" { type master; file "ns.fukushige.localhost.com.zone"; }; zone "hogehoge.fugafuga.com" { type master; file "hogehoge.fugafuga.com.zone"; }; zone "22.138.20.10.in-addr.arpa" IN { type master; file "22.138.20.10.in-addr.arpa.zone"; allow-update { none; }; };
zoneファイルは以下のようになっています。
/var/named/chroot/var/named/ns.fukushige.localhost.com.zone
$TTL 86400 @ IN SOA ns.fukushige.localhost.com. root.ns.fukushige.localhost.com. ( 2009060201 ; Serial 10800 ; Refresh after 1 hour 3600 ; Retry after 5 minutes 604800 ; Expire after 1 week 86400) ; Minimum TTL of 4 hour IN A 10.20.138.21 IN NS ns.fukushige.localhost.com.
/var/named/chroot/var/named/22.138.20.10.in-addr.arpa.zone
$TTL 86400 @ IN SOA hogehoge.fugafuga.com. root.hogehoge.fugafuga.com. ( 2009060202 ; Serial 10800 ; Refresh after 1 hour 3600 ; Retry after 5 minutes 604800 ; Expire after 1 week 86400) ; Minimum TTL of 4 hour IN NS 10.20.138.22 IN PTR hogehoge.fugafuga.com.
/var/named/chroot/var/named/hogehoge.fugafuga.com.zone
$TTL 86400 @ IN SOA hogehoge.fugafuga.com. root.hogehoge.fugafuga.com. ( 2009060202 ; Serial 10800 ; Refresh after 1 hour 3600 ; Retry after 5 minutes 604800 ; Expire after 1 week 86400) ; Minimum TTL of 4 hour IN A 10.20.138.22 IN MX 10 hogehoge.fugafuga.com. IN NS ns.fukushige.localhost.com.
2. 応用
1. 逆引き設定はするべき?設定しないと何か不便なの?メールでSPAM扱いされる?
個人的な見解では「しておいて損はない」というところでしょうか。
最近でも、逆引きできないIPからのアクセスに対するメールはスパム扱いされたりして、メールが届かないプロバイダなどがあるようです。
にも書いてありますが、逆引きできない状態(レンタルサーバでIP共有しているなど)もありますので、メールのフィルターも考えないと、
大切なメールが届かないなんてことにもなりそうですよね。
2. 逆引きの信頼性について
にも書いてありますが、
# 逆引きを設定していないIPアドレスも存在する。
# 逆引きで返ってくる結果は所詮は自称にすぎないので、信頼性をそれなりにでも確保するためには、得られた結果をもう一度正引きして、元のIPアドレスと合致するか確かめる必要があるだろう。
* つまりドメイン名を正引きして得たIPアドレスに対して、逆引きして得たドメイン名は一致しないこともある。
# ISP等によっては、クライアントホストのIPアドレスの逆引きに、アクセスポイント名が含まれるドメイン名を設定しているところもある。
つまり、正引きデータをもとに、逆引きが帰ってきているわけではないので、そもそも信頼性は低い。
逆引きで正しくないドメインが帰ってきたとしても、正引きのドメインが怪しいかどうかも不明。
そもそも逆引きを設定していないIPも存在するわけで、逆引きの意味はなんなのかと思うが、メールフィルターで逆引きしていないとメールをSPAM扱いするというメールサーバ向けの設定みたいな位置になっているような気がする・・・。
3. 付録
1. DNSサーバ(BIND)のインストール
# yum -y install bind caching-nameserver bind-chroot
環境
# cat /etc/redhat-release CentOS release 5 (Final) [root@DNS_Server named]# rpm -qa | grep bind bind-utils-9.3.4-10.P1.el5 bind-libs-9.3.4-10.P1.el5 ypbind-1.19-8.el5 bind-chroot-9.3.4-10.P1.el5 bind-9.3.4-10.P1.el5 # rpm -qa | grep nameserver caching-nameserver-9.3.4-10.P1.el5
参考
逆引きとは【reverse lookup】(DNSリバースルックアップ) - 意味/解説/説明/定義 : IT用語辞典
@IT:DNS Tips:1つのIPアドレスに複数のホスト名を付けている場合の逆引きとは
mnx.ne.jpとzero.ad.jpがDNS逆引き設定の無いメールサーバからのメールをspam扱いしはじめた件
reject_unknown_clientは迷惑メール対策としておすすめではない
◇逆引きゾーンファイルの作成◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
Value-Domain.comでのDNS逆引き設定について
ドメインはValue-Domainで契約していて、サーバ自体は他のiDCにあり、専用のグローバルIPを持っており、Value-Domainの管理画面でできるDNS設定(正引き)で専用のグローバルIPに向けていました。
それで、逆引き設定もできないかな?と思い問い合わせたところ、この形態ではできない仕様になっていることがわかりました。
サポート様からは以下のように返答がありました。
大変申し訳ありませんが、弊社のサーバーでは逆引き設定は行えません。
・ドメインの管理管轄は弊社
といった形になり、弊社が管理管轄権限のないIPアドレスに対して、逆引き機能の提供はできない仕様になっております。
すごいのが、サポートセンターにフォームで問い合わせてから、10分で回答があったこと。体制すごいですね。感謝です。
このこともサポートページに書いてあるといいですね。




