「名前解決」の仕組み
■ このスレッドは過去ログ倉庫に格納されています
0001[email protected]
NGNGDNSというのは例えば "xyz.com" という ドメイン名を "123.234.56.78"
というIPアドレスに変換する仕組みだというところまでは解っているのですが、
[xyz.com=123.234.56.78]という情報をもっているDNSサーバーを探す仕組み
がわかりません。
DNSサーバはあちこちにありますが、それらのDNSサーバの全てが世界中の
全ドメイン名対IPアドレスの情報を持っている訳ではないですよね。
であるすると例えば、私が"[email protected]"宛のメールを送った場合、最初に参照
するDNSサーバに[xyz.com=123.234.56.78]の情報がないとしたら、次にどういう
アクションになるのかご存知の方がおられましたらお教えください。
0002名無しさん
NGNG自分のとこになかったら、後ろから順番に
.comのDNSサーバにいって、そのなかの
xyzのDNSサーバ見て、さいごにさらにそのなかの
abc@xyz.comという名前を見つけると思ったんだけど.
0003名無しさん
NGNG尋ね人いませんか?
恋人はいますか?
そんなあなたにドメイン探しのお手伝いさせていただきます。
株)DNS ダイナミック・ナンパ・サービス
Mail: [email protected]
0004>3
NGNG0005[email protected]
NGNGやっぱりそうなんですか。 でもそりゃすごいアクセス量になるね。
0006うぃっす
NGNG0007>2
NGNG.com に問い合わせるのではなく "." に問い合わせるのだ
0008>7
NGNG0009名無しさん
NGNGset q=ns って打って、
. って打ってみそ。
0010>9
NGNG0011名無しさん
NGNG0012Five
NGNG・アプリケーションは自ホストのリゾルバ(解決ライブラリ)に名前の解決を
依頼します。
・リゾルバはまず、手元のキャッシュに過去の解決結果がないか調べます。
したがって、実際のデータとキャッシュ内のデータが違っている場合には、
名前解決に成功するが間違ったアドレスを使うという現象が発生します。
・リゾルバで解決できなかった場合には、その名前での解決をホストに登録
されているネームサーバーに依頼します。
・ネームサーバーは、まず自分が管理しているキャッシュ及びデータベースの
中に該当する情報がないかを調べます。あればそれを返して終わりにします。
・もしネームサーバーにとって未知の名前である場合には、ルートネーム
サーバーと呼ばれるサーバーに名前を問い合わせます。
# 先の書き込みで "." として表現されているものです。
・ルートネームサーバーは、キャッシュ及び自分が管理するデータベースを検索し、
該当するものがあればそれをネームサーバーに返します。もし該当するものが
なければ、そのデータを持っていると思われるサーバーのリストを返します。
例えば、"www.2ch.net" であれば、"net" は "." にとって既知なので、最寄
サーバーとして "net" ドメインのネームサーバーへのポインタを返します。
0013Five
NGNG"net" ネームサーバーでも、キャッシュ及びデータベースを検索して、該当する
ものがあればデータを、そうでなければ最寄のサーバーへのポインタを返します。
例えば "www.2ch.net" なら、1階層下に "2ch" があることは分かるので、最寄の
ネームサーバーとして "2ch.net" のサーバーのリストを返します。
・ネームサーバーは "2ch.net" ドメインのネームサーバーに名前を問い合わせます。
ネームサーバーは該当するデータがあればそれを返し、そうでなければ最寄の
サーバーへのポインタを、最寄のサーバーがなければ該当データなしという返事を
返します。
この場合、"www.2ch.net" というデータがあればそれを返して終了ですし、そうで
なければ解決失敗になります。
・ネームサーバーは相手サーバーからの最終的な返事を受け取ったら、それを
クライアントのリゾルバに渡します。
nslookup は、人が意図的に名前解決の依頼を発生させるためのツールです。
bind for NT (ftp://ftp.isc.org/isc/bind/contrib/ntbind/) にもついています。
"for NT" となっていますが、Windows95/98 でも動作します。
0014[email protected]
NGNGおおっ!
ものすごく詳しい説明ありがとうございます。(落涙
よくわかりました。
名前解決が解決しました。
Wsping32.exeもダウンロードして使ってみました。
おもしろかったっす。(こんなにたくさんのホスト経由してんのね。)
みなさん、どうもありがとうございました。
0015名無しさん
NGNGdig.exeってありませんか?
0016>14
NGNG卑近な例えを教えましょう。
世界のどっかに電話をしたいとします。ところが世界全体の電話
帳というのは巨大すぎるので管理しきれませんので存在しません。
そこで、これを国単位に分割します。大元はアメリカが管理する
ことにしましょう。
で、日本の2hcという会社の「ひろゆき」という人に電話をかけ
たいとします。では日本の電話帳がどこにあるか?と調べるので
すが、これはアメリカに聞いてみるしかありません(".")。そこ
で聞いてみると、それは日本(".jp")というところにあるので、そ
こで「2chという会社」を調べてみることにします。そうすると
日本の電話帳も巨大すぎるそうで、「会社」「学校」などの組織
別に分冊になっていることがわかりました。そこで「会社」の分
冊を引いてみて2chという会社を見つけましたが、そこには大代表
の電話番号がかいてあります。では、ということで2chという会社
の大代表に電話をして「ひろゆき」という人の電話番号を聞くと
教えてもらえました。
これが hiroyuki.2ch.co.jp のようなホスト名の解決方法です。
0017>16
NGNGでもFiveサンのでわかったからいいや。
00181>16
NGNG0019メアリ
NGNG良く分からない点があります。
[root@xxx mqueue]# nslookup
--------------------------------------------
1 yahooを引いてみる。
> www.yahoo.co.jp
Server: xxx.ooo.co.jp
Address: 172.xx.xox.xxo
Non-authoritative answer:
#(これはキャッシュの情報を見ているという意?)
Name: www.yahoo.co.jp
Addresses: 210.140.200.xx...(略)
#エラー無しで引ける
--------------------------------------------
2 存在するはずのないaaaaを問い合わせる
> aaaaa
Server: xxx.ooo.co.jp
Address: 172.xx.xox.xxo
*** xxx.ooo.co.jp can't find aaaaa:
Non-existent host/domain
#存在しませんというメッセージ
-------------------------------------------
2 maillogに送信不可能という
エラーが出ていた"pas.mei.co.jp"を引いてみる
Default Server: xxx.ooo.co.jp
Address: 172.xx.xox.xxo
> pas.mei.co.jp
Server: xxx.ooo.co.jp
Address: 172.xx.xox.xxo
Name: pas.mei.co.jp.xxx.co.jp
#問い合わせたドメイン名.自分のサーバのドメイン名という
意味不明な回答が返ってくる??
-------------------------------------------------
1、2は正常だと思うのですが、
3の現象が意味不明です。(2のように
Non-existent host/domainと出てくれれば分かるのですが)
それと、DNSのlogを見ていると、
>bad referral (jp !< mei.co.jp)
が出ているのですが、これはなんでしょうか?
と書きながら自己レスです。
サーバが報告するエラー はここを参照してください。
http://www.soi.wide.ad.jp/iw97/iw97_tut/slides/12_09/48.html
0020>19
NGNG問題がありません?試しに
pas.mei.co.jp.
を引いてみてください。
0021Five
NGNG2ch.net なクライアントが www.2ch.net につなげるときには、
・www.2ch.net
・www
という2通りの指定方法があります。なぜ後者でつながるのかというと、
リゾルバがドメイン名を補完し、www -> www.2ch.net として検索を
かけるからです。すなわち、最初の問い合わせでは
・"www" という名前解決を "." に依頼 -> 失敗
となり、次に
・"www" に自ドメイン名 (2ch.net) を付加 -> 成功
となるわけです。
このような補完を禁止するには、最後に "." をつけます。
これで補完なしにその名前をそのまま使うようになります。
Widows や Unix のシェルからパスを指定するときに、
"directory\file.txt" とすると(相対パス指定)、現在のパスが先頭に付加され、
"\directory\file.txt" とすると(絶対パス指定)、ルートディレクトリから
指定したのと見なされるのといっしょです。
0022>21
NGNGこの pas.mei.co.jp ですが、pas.mei.co.jp は A レコードはない
ですね。MXは持ってますが、たぶんサブドメインでしょう。
で、こいつを受け持っているNSが.netだったりで19番さんの、いう
結果になっているようです。だもんで正常ですかね。
0023>メアリさん
NGNGのような「ドメイン」そのものはホストではないのでAレ
コードを持たない場合が多いです。ドメインそのものがA
レコードを持つ場合には、そのネットワークアドレスが設
定してあるか、あるいは1IPで運用されている場合が多い
ですね。
したがって、pas.mei.co.jpのメール配送を行っているホス
トを調べたい場合にはnslookupで set type=MX オプション
でMXホストを調べてください。
0024>21
NGNG0025名無しさん
NGNG0026Five
NGNGそうですね、正常な結果だと思います。
>23
ドメインに A レコードを設定するのは、古い MTA 対策でもあるようです。
MX ではなく A を引く実装があったんですね。
現在ではほぼ死滅しているみたいですけど。
>24
resolv.conf の設定で補完禁止にできるか、ってことでよね?
domain エントリを空にすれば (nameserver のみにする) 補完できなくなると思います。
>25
DNS ラウンドロビンになるような構成を取っていると複数出力されます。
# つまり同一ホスト名に複数アドレスが定義されている。
ex.) www.yahoo.com
0027メアリ
NGNG結論を言うと正常な結果だったのですね。
本当に勉強になります。
>set type=MX オプションでMXホストを調べてください。
やってみます。どうもmaillogに変なログが
多いので色々調べる必要があるのです。
ここは為になるので印刷して電車でゆっくり読みます。
0028名無しさん
NGNG0029名無しさん
NGNG良いんではないかと。
色々見るより、よくまとまってるしお勧めだと思います。
ISBN4-900900-91-5
5000円
ちょっと高いけどこの手の雑誌を何冊か買うよりは間違いなく
良いんじゃないかな。
0030名無しさん
NGNGDNS & BINDを読破して、BINDの設定で散々苦労を経験した後、
DNScacheに手を出すと吉(笑)
0031メアリ
NGNGhttp://www.linux.or.jp/JF/JFdocs/DNS-HOWTO.txt
ところで、namedのエラーというのはどこまでが
致命的なのでしょうか?
というのも、うちの会社のサーバに定期的に下記の
ログが吐かれています。namedのエラーメッセージ
のようです。
xxx named[10944]: "tokyo1.tomen.co.jp IN MX" points to a CNAME
(mx2.tomen.co.jp)
xxx named[10944]: "tomen.co.jp IN NS" points to a CNAME
(ns.tomen.co.jp)
以下略
しかし、メールのログをみると
relay=mx.tomen.co.jp. stat=Sent (Ok)
と出ているので、メールは上手くいっているはずですが、
判断が難しいです。(ユーザから苦情も来ないし....)
23さんが教えてくれた set type=MXでnslookupをかけました。
Non-authoritative answer:
tomen.co.jp preference = 20@` mail exchanger = mx2.tomen.co.jp
tomen.co.jp preference = 10@` mail exchanger = mx.tomen.co.jp
Authoritative answers can be found from:
tomen.co.jp nameserver = ns2.tomen.co.jp
tomen.co.jp nameserver = ns.tomen.co.jp
以下略
うちのサーバの問題なのかなー
0032メアリ
NGNG実名ではなく、CNAMEを指定しているのが問題らしいです。
nslookup引ける人は試してみて下さい。
0033just_another_perl_user
NGNG正です。
cf. http://rfc.asuka.net/rfc/rfc1912.html#s.2.4
0034>33
NGNG0035>33
NGNG意味かな?
003634です
NGNGhihi.net IN MX mailhost
mailhost IN CNAME hogehoge
hogehoge IN A 192.168.0.1
みたいな記述は不正でしたね・・・あちゃー
やっちゃってます(笑
003734です
NGNGで、なぜうちとメアリさんの所が同じ間違いというか勘違いをし
ていたかというと原因らしきものが判明。
うちもメアリさん所も上流が同じなのですよ。で、そこがDNSの
設定をする際に"IN A"で複数のホストに同じアドレスを設定する
な、つまり
www IN A 192.168.0.1
mx IN A 192.168.0.1
という記述は「好ましくない」という指導をしていた記憶があ
ります。で、別名にはCNAMEを使えと指導していたのが元凶の
ようで、私もてっきりCNAMEで書くものだと今日まで思い込ん
でたようです。
0038メアリ
NGNGどうしますか?これは致命的な問題なのでしょうか?
0039Five
NGNG問題にはなりません。が、実装によっては A レコードで検索し CNAME を
無視する可能性もあるので、そのような実装の MTA は当該メールを
正しく配信することが不可能になります。
CNAME を使ってはいけない理由にはいかのようなものがあるようです。
詳しい話はこうもり本のシステム管理編「DNS と sendmail」の章を
読んでください。
・CNAME で参照されている名前に対する A レコードがない可能性が
ありうる。
ex.) dest.domain IN MX mailhost
mailhost IN CNAME realname
はあるが、realname の A レコードがどこにもない
・CNAME を使うと複数回余計に検索する必要がある
忙しいホストでは、これは MTA の効率を削減する可能性がある
004037です
NGNG>メアリさん
致命的な問題ではないようです。ですが実際には39番でFiveさんが
言われている通りの問題から、この記述は「嫌われて」いるようで
すねえ。
考えてみればDNSを使うメール配送の仕組みによる問題ですから、
sendmailなどを使っている限りでは問題ないはずですが、この場合
自サイトに向けたメールの配送なので、相手が何かわからないので
CNAME記述は使わないのが良さそうですね。
0041メアリ
NGNG■ このスレッドは過去ログ倉庫に格納されています