| HOME | Rio | Game | BBS |
DNS、逆引きのゾーン名について投稿者:飛行鬼 投稿日:2007/04/25 14:07 No.162165
DNSサーバの設定で分からない事があるので教えてください。
正引きはなんとなく分かるのですが、逆引きが分かりません。
ドメイン名:sample.com
IP:a.b.c.192/29
(用途)ホスト名:IPアドレス
(DNSサーバ)ns:a.b.c.194
(Webサーバ)www:a.b.c.195
(Mailサーバ)www:a.b.c.196
の場合、
逆引きのゾーン名はc.b.a.in-addr.arpaで良いのでしょうか?
(正引きのゾーン名はsample.comでうまいこと動いています。)
ゾーン名:c.b.a.in-addr.arpa
ゾーンファイル名:c.b.a.in-addr.arpa.dns
で、ゾーンファイル中には
194 IN PTR ns.sample.com
195 IN PTR www.sample.com
196 IN PTR mail.sample.com
と書いたので、サーバ上での逆引きは確認できました。
でも、このゾーン名ではおかしいと思うのです。
プロバイダからは固定IP8個をもらったのですが、このゾーン名では
a.b.c.191以前もa.b.c.200以降も対象に入ってしまうのではないでしょうか?
正しいゾーン名が何になるのか(というか、どういう命名ルールなのか)教えて
ください。
また、Webを検索して見つけたいくつかの設定例には
192h.c.b.a.in-addr.arpa
のように、「h」が付いている物もありましたが、これも意味が分かりません。
長々と書いてしまいましたが、どなたかお願いします。
間違えてたっぽいので書き直し。
逆引きゾーン名は、ネットワーク部の逆.in-addr.arpaです。
なので、
a.b.c.d/24ならば
c.b.a.in-addr.arpaです。
a.b.c.192/29ならば
192.c.b.a.in-addr.arpaです。
>a.b.c.191以前もa.b.c.200以降も対象に入ってしまうのではないでしょうか?
は、上位DNSが制御しています。
>「h」が付いている物
は、ちょっと分からないです。
#たしか厳密にはゾーン名関係なかった気がするんだけどなぁ…。
#ゾーン名を決められた形にしないとセカンダリがダメだったりするからなんだけど
どりーさん、ありがとうございます。
OCNのサイトで、
http://www.ocn.ad.jp/tw/dns_06.html
>逆引き参照ゾーン 32.69.168.192.in-addr.arpa を指定する場合の注意点
ともあるので、私の例だとどりーさんがおっしゃるように、
192.c.b.a.in-addr.arpaが正解のようですね。(/29なので)
でも、ゾーン名を192.c.b.a.in-addr.arpaにすると、
逆引きが出来ず、Server failedになってしまいます。
同じ記述内容でも、ゾーン名がc.b.a.in-addr.arpaだと逆引き出来るのですが・・・
もしかして、逆引きの設定をして、ネットに接続した上で、
プロバイダのDNSサーバに聞きにいかないとダメ、ですか?
(/29の逆引きは、自分自身(DNSサーバですよ?)に聞きにいってもダメということ?)
>>a.b.c.191以前もa.b.c.200以降も対象に入ってしまうのではないでしょうか?
>は、上位DNSが制御しています。
という事は、192.c.b.a.in-addr.arpaじゃなくて、
c.b.a.in-addr.arpaでも良いという事でしょうか?
/29だから、ダメですよね?
>「h」が付いている物
http://lists.debian.or.jp/debian-users/200003/msg00339.html
を見ると、上位のDSNサーバ次第のようですね。
(意味は分かってません・・・)
IP 8個ということはCIDRだよね。
この場合のゾーン名は、
xxx.c.b.a.in-addr.arpa
という形になる。でもってxxxの部分はサブネットになるんだよ。
つまり上位のDNSでさらにゾーンが分けられている。
これはプロバイダごとに違うはず。
hがついているのはプロバイダが決めたサブネット名。
スレ主が使っているプロバイダのサブネット名はプロバイダに確認するしかないね。
NTT PCコミュニケーションズはSUBxxxとかいうゾーン名だった記憶が……。
GHさん、情報ありがとうございます。
逆引きゾーン名にサブネットの概念があるなんて、初めて知りました!
(目から鱗が落ちました。)
この情報を元に検索をかけたら、色々な情報が見つかりました。そして、
http://www.atmarkit.co.jp/flinux/rensai/bind904/bind904b.html
の「■クラスC未満での逆引き設定」を読んで、逆引きのゾーン名についてハッキリ理解出来ました。
つまり・・・
ゾーン名"c.b.a.in-addr.arpa."はプロバイダが管理するゾーン名であって、
プロバイダのゾーンファイル(ファイル名は何でも良い)には、下記の行が記述されているって事ですね!
; 顧客A(というか、例として.192/29である私)のための設定
192 IN NS ns.sample.com. ;←ns.sample.comという名前であることは、私からプロバイダへ伝える必要がある。
193 IN CNAME 193.192.c.b.a.in-addr.arpa.
194 IN CNAME 194.192.c.b.a.in-addr.arpa.
195 IN CNAME 195.192.c.b.a.in-addr.arpa.
196 IN CNAME 196.192.c.b.a.in-addr.arpa.
197 IN CNAME 197.192.c.b.a.in-addr.arpa.
198 IN CNAME 198.192.c.b.a.in-addr.arpa.
;199・・・はブロードキャストだから何も書かない?!
;それとも
;199 IN CNAME 199.192.c.b.a.in-addr.arpa.
;って書いておくのか?!
;ネットワークIDである192はどうなる?
;192 IN CNAME 192.192.c.b.a.in-addr.arpa.
;って書いておくのか?!
; 顧客Bのための設定
200 IN NS ns.hogehoge.com. ←ns.hogehoge.comという名前であることは、顧客Bからプロバイダへ伝える必要がある。
201 IN CNAME 1.200.c.b.a.in-addr.arpa.
202 IN CNAME 2.200.c.b.a.in-addr.arpa.
203 IN CNAME 3.200.c.b.a.in-addr.arpa.
204 IN CNAME 3.200.c.b.a.in-addr.arpa.
205 IN CNAME 3.200.c.b.a.in-addr.arpa.
206 IN CNAME 3.200.c.b.a.in-addr.arpa.
;207・・・はブロードキャストだから何も書かない?!(ここは理解できていない)
;191以前と208以降はとりあえず省略
;でも実際には全アドレスが書かれている(ハズ)
・・・で!
この例でいう192(顧客Bの場合は200)がサブネットである事を表していて、
プロバイダ毎にそれぞれ独自のルールを決めて管理している訳ですね。
(プログラムの変数名に独自の命名規則を決めているのと同じようなもの)
ネットワークIDそのまま、192、200などと使っているプロバイダもあるし、
hを付けて、192h、200hなどと使っているプロバイダもあるし、
SUBを付けて、SUB192、SUB200などと使っているプロバイダもある、と。
192hとした場合は、
; 顧客A(というか、例として.192/29である私)のための設定
192h IN NS ns.sample.com. ;←ns.sample.comという名前であることは、私からプロバイダへ伝える必要がある。
193 IN CNAME 193.192h.c.b.a.in-addr.arpa.
194 IN CNAME 194.192h.c.b.a.in-addr.arpa.
195 IN CNAME 195.192h.c.b.a.in-addr.arpa.
196 IN CNAME 196.192h.c.b.a.in-addr.arpa.
197 IN CNAME 197.192h.c.b.a.in-addr.arpa.
198 IN CNAME 198.192h.c.b.a.in-addr.arpa.
;199 IN CNAME 199.192h.c.b.a.in-addr.arpa. ←ブロードキャストは?!
;192 IN CNAME 192.192h.c.b.a.in-addr.arpa. ←ネットワークIDは?!
となる訳ですね!!
プロバイダとしては、192というようなネットワークIDを入れないで、hogeAcompでもいいけど、
管理しにくいからネットワークIDを入れている訳ですね。
で、設定ファイルに(一番上の例のように)192と数字だけ書かれると、
ドメイン名なのかIPアドレスなのか分かりにくいから
hやSUBを付けて区別しているプロバイダが多い、という訳ですね。
一気に理解が深まりました。
お二人ともありがとうございました。
すでにご存じかもしれませんが、実在するドメインを例示のた
めに使うと相手のドメインに迷惑がかかる可能性がありますの
で、 example.com 等の予約済みドメインを使うべきだと思い
ます。
長文ばかりで恐縮ですが、さらに質問させてください。
「逆引きのゾーン名はプロバイダが指定したものにする」
というのは納得できました。
しかし、プロバイダ指定のゾーン名では、自分自身に問い合わせても逆引きを引けません。
これは正しい動作なのでしょうか?
例えば、
「192h.c.b.a.in-addr.arpa.」というゾーンに
「193 IN PTR www.sample.com.」と記述して、
「nslookup a.b.c.193」と逆引きしても、
193.c.b.a.in-addr.arpa.なんて見つかりません。
と言われるのですが、当然だと思えます。
(c.b.a.in-addr.arpa.ゾーンについては定義していないのですから。)
ネットワークに接続する前に逆引きの確認をしたかったのですが、
出来なくて当然なのでしょうか?
だとすると、確認の方法は無いのでしょうか?
193.192h.c.b.a.in-addr.arpa.と指定したら引けましたが、これが確認した事になるのでしょうか・・・。
>example.com 等の予約済みドメインを使うべきだと思います。
失礼しました。
てっきりsample.com が予約済みドメインだと思い込んでいました。
逆引きしてCNAMEが出るとか出ないというのは
各ISPというか上位DNSによって違います。
例えばOCNなら逆引きを下位に権限委託しますので、
クラスC未満(CIDR環境)なら出ます。
出ないでもいいのかは、ISPに聞くしかないです。
OCNは権限委託しますので出ないとセカンダリが読んでくれませんのでダメです。
ネットワークアドレスは上位のDNS側でサブネットとして指定されるので、CNAMEで記述する必要はない。
で、CIDRのクラスレスは上位のDNSから委譲されてないとできない。
というか上位のネームサーバの力が必要。
逆引きであっても、数字は単なるラベル。
クラスレスでラベルを変更しているから、ネームサーバ自身が自分のゾーンの属していることがわからないわけ。
192h.c.b.a.in-addr.arpa.
たとすれば、ルートから、
.→a→b→c→192hとたどる。192hがなんなのかを知っているのは上位のネームサーバ。
>; 顧客A(というか、例として.192/29である私)のための設定
>192 IN NS ns.sample.com. ;←ns.sample.comという名前であることは、私からプロバイダへ伝える必要がある。
>193 IN CNAME 193.192.c.b.a.in-addr.arpa.
↑これはプロバイダのDNSサーバの逆引きゾーンファイルの例です。
私の設定しているDNSサーバにはCNAMEは書いていません。PTRレコードのみです。
(もちろんSOAやNSはありますが。)
194 IN PTR ns.sample.com.
195 IN PTR www.sample.com.
196 IN PTR mail.sample.com.
を192h.c.b.a.in-addr.arpa.ゾーンのゾーンファイルに書きました。
(一番最初に「196はwww」って書いたのは単なる書き間違いで、特に意味はありません。)
>出ないでもいいのかは、ISPに聞くしかないです。
いや、まだネットには接続してませんので・・・。
>逆引きしてCNAMEが出るとか出ないというのは
CNAMEが出る出ない以前に、現在はPTRが引けない状態です。
DNSサーバはLANに接続していません。スタンドアローンで動作確認しています。
リゾルバ(自分が名前解決に使うDNSサーバ)を自分自身に設定して、
nslookup
set q=ptr
a.b.c.195
と逆引きした時に、
195.192h.c.b.a.in-addr.arpa. name = www.sample.com
と返ってきて欲しいのに、
*** UnKnown can't find 195.c.b.a.in-addr.arpa.: Server failed
になってしまいます。
set q=any
195.192h.c.b.a.in-addr.arpa.
とすれば、
195.192h.c.b.a.in-addr.arpa. name = www.sample.com
と返ってきます。
>クラスレスでラベルを変更しているから、ネームサーバ自身が自分のゾーンの属していることがわからないわけ。
という事は、上記のように確認出来れば十分っぽいですね。
あとはネットに接続して、リゾルバをプロバイダのDNSサーバに変更すればOKっと。
(プロバイダへの手続きやゾーン情報の反映待ちなども必要だと思いますが。)
>逆引きであっても、数字は単なるラベル。
ゾーンはゾーンであって、逆引きも正引きも無いって事ですね。(それらは単なる概念でしかない。)
イメージ的には、すべて正引きで、PTRレコードを主に記述したゾーンがあるだけ、って感じ。
nslookupなどのコマンド自体が、
入力値をIPアドレスと判断したら自動的に(オプションが指定されれば明示的に)、逆引き処理を求められていると判断する。
逆引き処理と判断したら、入力値(IPアドレス)を「ほげほげ.in-addr.arpa.」などに自動変換してDNSサーバに問い合わせる
・・・というだけなんでしょうね。
(それともDNSサーバ側で変換するのでしょうか??ま、どっちでも良いですが・・・)
長くなりましたが、非常に有益な情報をいただけて、有難いです。
#ドメイン名についてはこのスレ内ではsample.comで統一させていただきました。
#以後気を付けます。
最初
>194 IN PTR ns.sample.com
>195 IN PTR www.sample.com
>196 IN PTR mail.sample.com
真ん中あたり
>「193 IN PTR www.sample.com.」と記述して、
最後
>194 IN PTR ns.sample.com.
>195 IN PTR www.sample.com.
>196 IN PTR mail.sample.com.
例に挙げた内容が、途中でブレてしまってますね。
真ん中に上げた例は、そのレスの中だけの話になってます。
分かりにくくなってしまい、申し訳ありません。
>ほげほげ.in-addr.arpa.」などに自動変換してDNSサーバに問い合わせる・・・というだけなんでしょうね。
その通り。アプリケーション層がやるべき仕事。
>あとはネットに接続して、リゾルバをプロバイダのDNSサーバに変更すればOKっと。
リゾルバってどのリゾルバを指してる? ネームサーバとリゾルバは直接関係ないよ。
ネームサーバにヒントファイルがちゃんと設定されているなら、
ルートサーバにちゃんと問い合わせがいく。
そこからDNSの階層構造をたどって問い合わせされる。
自ネットワークの名前解決はプロバイダを経由して自ネームサーバに届く。
ルートサーバの負荷を減らしたり、問い合わせ結果の速度を上げるなら、
forwarderを設定するという方法もあるけれど。
自ネットワークの名前解決をプロバイダのネームサーバに」やらせたい
というのなら、リゾルバをプロバイダのDNSにすることになるけれど。
これはネームサーバの設定とは関係ない話。
>リゾルバってどのリゾルバを指してる?
WindowsだとTCP/IPの詳細プロパティの下側にある「次のDNSサーバーのアドレスを使う。」という所。
Linuxだとresolv.confに書くnameserverという所を指して言いました。(スタブリゾルバ?)
ネットワークに接続する前に動作確認するために、ここに自分自身のIPアドレスを書いていました。
http://www.vwnet.jp/mura/BookFollow/JPCERT-AT-2006-0004.htm
↑DNS の再帰的な問合せを使った DDoS 攻撃に関する注意喚起対応(JPCERT-AT-2006-0004)
を見たので、(面倒に巻き込まれるのも嫌なので、)実運用では、キャッシュサーバ(フルサービスリゾルバ?)
はプロバイダの「参照用DNS」とやらにやってもらい、
私の設定するDNSサーバはコンテンツサーバにしようと思ったのです。
具体的には
>9.1 公開 DNS からキャッシュサーバの機能を削除する
> インターネット上に公開している DNS からキャッシュサーバの機能を削除するには、再帰検索を無効にすればいい。
> 再帰検索を無効にするには、DNSサーバのプロパティを開き、[詳細]タブにある「再帰を無効にする(フォワーダも無効になります)」をチェックする。
を実行しようと思っています。
だから、リゾルバ(スタブリゾルバ?)をプロバイダのDNSサーバに向けようとしました。
再帰問い合わせを有効にすれば、自分自身に向けたままでも
nslookup
set q=ptr
a.b.c.195
と逆引きした時に、
195.192h.c.b.a.in-addr.arpa. name = www.sample.com
と返ってくるような気はしますが。
再帰問い合わせを無効+forworderを無効(=キャッシュサーバとして機能しない、で合ってますか?)、
にしたら、自ネットワークのIPアドレスに対する逆引きでも不可能ですよね?
ちなみに、グローバルIP8個もらいますが、DNSサーバとWebサーバのみ・・・というか、PC1台しか接続しない予定です。
(少なくとも、ローカルIPのPCは接続しません。)