DNSを引くのに使用しているプロトコル(そこで流れている情報)について
知っている人がいれば教えていただけないでしょうか?
nslookup等で、
ls -d yahoo.co.jp
とかすると、yahoo.co.jp ドメインのすべてのアドレスが出てきますよね?
あれを、nslookupっていうコマンドを経由しないで使う方法はないでしょうか?
具体的には
telnet ??????? 53
としてどんなコマンドを打ち込めば目的のアドレスを知ることができるかが
知りたいです。
わかる人、書いてあるアドレス何でも結構です。教えてください
DNSで使用しているプロトコルを教えてください。
1SAMCO
02/03/27 00:20ID:zfvFheF831
02/03/27 00:38ID:sGBtlGBo 了解です。
自分で作ってる簡易SMTPサーバで必要なだけなので
気長に待つことにします。
自分で作ってる簡易SMTPサーバで必要なだけなので
気長に待つことにします。
4いえろ
02/03/27 01:27ID:??? RFC883に書いてあったと思う。
所で自前で書いてるの?
簡単に正引き・逆引きできるコンポーネントないのかなぁ・・
いやOSが何で何使ってコード書いてるがわからんのだがw
(VBとかは勘弁してくれよ)
所で自前で書いてるの?
簡単に正引き・逆引きできるコンポーネントないのかなぁ・・
いやOSが何で何使ってコード書いてるがわからんのだがw
(VBとかは勘弁してくれよ)
5虎
02/03/27 02:43ID:??? ちょっと待て。
DNSで使ってるのはudpだぞ。
telnetで出せるのはtcpだ。
ついでに言うと、nslookup で、ls コマンドを使うと
流れるのは transfer 通常の名前引きは query
最近は特定のサーバにしかtransferを許さないのが普通。
あと、正引き、逆引きを簡単に行うなら、
socket の(windowsならwinsock)
gethostbyaddr, getaddrbyhost関数を使うのが
普通だぞ?
なんか知識が大幅にずれてないか? それでsmtpサーバ作る
つもりなのか?
DNSで使ってるのはudpだぞ。
telnetで出せるのはtcpだ。
ついでに言うと、nslookup で、ls コマンドを使うと
流れるのは transfer 通常の名前引きは query
最近は特定のサーバにしかtransferを許さないのが普通。
あと、正引き、逆引きを簡単に行うなら、
socket の(windowsならwinsock)
gethostbyaddr, getaddrbyhost関数を使うのが
普通だぞ?
なんか知識が大幅にずれてないか? それでsmtpサーバ作る
つもりなのか?
61
02/03/27 15:27ID:kIWBEv4r 使ってるOSはWindows2000 Proで、VC6を使ってます。
最近はプロバイダのSMTPサーバが、自前のネットワークのみから
しか反応しないので、それの橋渡しをするSMTPサーバを
つくれないかな?と考えました。
メール送信部分は、相手のサーバを探して(ここがDNSのとこ)
コネクション張って、
HELO
MAIL FROM: ???
RCPT TO: ???
DATA
???
.
で送れたと思うのですが、名前を引くところに関しては
さっぱりわからなくて質問をしました。
最近はプロバイダのSMTPサーバが、自前のネットワークのみから
しか反応しないので、それの橋渡しをするSMTPサーバを
つくれないかな?と考えました。
メール送信部分は、相手のサーバを探して(ここがDNSのとこ)
コネクション張って、
HELO
MAIL FROM: ???
RCPT TO: ???
DATA
???
.
で送れたと思うのですが、名前を引くところに関しては
さっぱりわからなくて質問をしました。
7ぱおぱお
02/03/28 04:44ID:wtogeemc >5
別にTCPでもいいじゃん。
まー,コストの高いから普段使うのはイヤだけどね。
>1
DNSはASCIIベースのプロトコルじゃないので,普通にやるとtelnetじゃあ無理だ。
RFCを資料にするなら,RFC1035 引く方が良いぞ。
RFC883 では,肝心のMXについて触れられていない。
RFC調べたことなさそうだから,こういうのも教えてやろう。
http://www.csl.sony.co.jp/rfc/
一般的なプロトコルについては,まずSTDの一覧を探すのがいいぞ。
頑張れ。
別にTCPでもいいじゃん。
まー,コストの高いから普段使うのはイヤだけどね。
>1
DNSはASCIIベースのプロトコルじゃないので,普通にやるとtelnetじゃあ無理だ。
RFCを資料にするなら,RFC1035 引く方が良いぞ。
RFC883 では,肝心のMXについて触れられていない。
RFC調べたことなさそうだから,こういうのも教えてやろう。
http://www.csl.sony.co.jp/rfc/
一般的なプロトコルについては,まずSTDの一覧を探すのがいいぞ。
頑張れ。
81
02/03/28 21:44ID:TQLnYYGJ >7
ありがとう御座います。出来ました。解決です。
あと、resolverで検索をしていたので見つからなかったみたいです。
素直にdomainで検索をすれば良かったです(DNSじゃ出てこないし)。
ありがとう御座います。出来ました。解決です。
あと、resolverで検索をしていたので見つからなかったみたいです。
素直にdomainで検索をすれば良かったです(DNSじゃ出てこないし)。
9ぱおぱお
02/03/29 19:01ID:O6tCsMJO 残念。(>ε<)
Winsockにはresolverが実装されていない。
ところで,SMTPの方のエラー処理や再送は上手くいった?
なかなか繋がらんMXも多いからな。
Winsockにはresolverが実装されていない。
ところで,SMTPの方のエラー処理や再送は上手くいった?
なかなか繋がらんMXも多いからな。
101
02/03/30 01:32ID:n1+koA0a >9
SMTPの方が先に組みあがっていたので、大丈夫です。
反応が遅いところもあるようですが、今のところ問題なしです。
遅いサーバーに対しては、1つのメールに対し複数のコネクションを張るようにしてあります。
これって、嫌がられそうだけど(笑。
>5
ふと思ったんですが、gethostbyaddr, getaddrbyhostでMX引けましたっけ?
単に25ポートで繋いでも無理だったので、不可能なような気が...。
もし引けるようでしたら、やり方を教えてください。お願いします。
SMTPの方が先に組みあがっていたので、大丈夫です。
反応が遅いところもあるようですが、今のところ問題なしです。
遅いサーバーに対しては、1つのメールに対し複数のコネクションを張るようにしてあります。
これって、嫌がられそうだけど(笑。
>5
ふと思ったんですが、gethostbyaddr, getaddrbyhostでMX引けましたっけ?
単に25ポートで繋いでも無理だったので、不可能なような気が...。
もし引けるようでしたら、やり方を教えてください。お願いします。
12虎
02/04/02 10:54ID:??? >>10
手持ちのソケット本が出払ってた(Kよ返してくれ!)ので
ソケット関数で引けたかどうかは未確認……
引けないってことはないように思うんだが……
UDPで直接送受信する仕組みができてたら、DNSメッセージを
直接やりとりするのも可能か。
説明すると結構繁雑なので、オーム社「マスタリングTCP/IP 応用編」
の第15章5節を参照してください。
手持ちのソケット本が出払ってた(Kよ返してくれ!)ので
ソケット関数で引けたかどうかは未確認……
引けないってことはないように思うんだが……
UDPで直接送受信する仕組みができてたら、DNSメッセージを
直接やりとりするのも可能か。
説明すると結構繁雑なので、オーム社「マスタリングTCP/IP 応用編」
の第15章5節を参照してください。
131
02/04/03 15:33ID:AV3ZEb5C >12
> オーム社「マスタリングTCP/IP 応用編」
かなり読んでます。ハイ。でも、意外と内容が薄い...。
RFCの日本語訳が見つからなかったので、英語をヒタスラ読んでますが。
DNSの応答処理が意外と面倒な事になってます。
> オーム社「マスタリングTCP/IP 応用編」
かなり読んでます。ハイ。でも、意外と内容が薄い...。
RFCの日本語訳が見つからなかったので、英語をヒタスラ読んでますが。
DNSの応答処理が意外と面倒な事になってます。
14虎
02/04/03 15:43ID:??? >>13
DNSの応答処理って
DNSから送られてきた応答パケット(とは限らないが)の
受信と解釈のことでしょうか。
オライリーのDNS&BINDの14章2節に、DNS問い合わせと
応答の解析を行うサンプルプログラム(C)が載ってたので
参考になるのでは。
俺はCはよく使わないのでよくわかりませんが(w
14.3にはPerlのNetオブジェクトを使った例もある。
DNSの応答処理って
DNSから送られてきた応答パケット(とは限らないが)の
受信と解釈のことでしょうか。
オライリーのDNS&BINDの14章2節に、DNS問い合わせと
応答の解析を行うサンプルプログラム(C)が載ってたので
参考になるのでは。
俺はCはよく使わないのでよくわかりませんが(w
14.3にはPerlのNetオブジェクトを使った例もある。
171
02/04/07 19:29ID:RVpV9bj7 >>14
> 応答の解析を行うサンプルプログラム
そんなのが欲しいです...。
やっとこさ、IPまで辿り着ける状態になりましたです。
> Perl
は使った事が無いので、全くわかりません。
C/C++かアセンブラかVBしか出来ません。
> 応答の解析を行うサンプルプログラム
そんなのが欲しいです...。
やっとこさ、IPまで辿り着ける状態になりましたです。
> Perl
は使った事が無いので、全くわかりません。
C/C++かアセンブラかVBしか出来ません。
>>18
第4版は5200円だね。
第4版は5200円だね。
02/08/18 21:11ID:???
>>1 itteyoshi
21いえろ ◆bT6c9WIwLg
02/10/09 16:59ID:??? 誘導したのは良いが・・・ 結論が出てなかったのか!!
つーか 本買えで終わってるとは・・・
つーか 本買えで終わってるとは・・・
22いえろ ◆bT6c9WIwLg
02/10/09 17:56ID:??? なんか質問スレで呼ばれてる? まぁいいか。
RFCを読んでUDPでパケット投げてみました。
ものすごい勢いで誰かが質問に答えますPart30
http://pc.2ch.net/test/read.cgi/hack/1033381894/991-992
に記載されていたパケットダンプは一部分ですので問題の
個所は理解できません。
RFCを読んでUDPでパケット投げてみました。
ものすごい勢いで誰かが質問に答えますPart30
http://pc.2ch.net/test/read.cgi/hack/1033381894/991-992
に記載されていたパケットダンプは一部分ですので問題の
個所は理解できません。
23いえろ ◆bT6c9WIwLg
02/10/09 18:14ID:??? とりあえず投げるパケットの組み立て。
問い合わせパケット
00 1F :データ長
--ここからヘッダ--
?? ?? :16ビットの適当なID(乱数でOK)
00 00 :QR=0 OPCODE=0 AA=0 TC=0 RD=0 RA=0 Z=0 RCODE=0
00 01 :質問の数(今回は1個なので1)
00 00 :回答の数=当然0
00 00 :NSレコードの数=0
00 00 :追加部の数=0
--ここから質問部-- 今回の内容は mc.kcom.ne.jp
02 6D 63 :ラベルの長さとmcのキャラコード
04 6B 63 6F 6D :ラベルの長さとkcomのキャラコード
02 6E 65 :ラベルの長さとneのキャラコード
02 6A 70 :ラベルの長さとjpのキャラコード
00 :ドメイン終了=ルートに辿り着いた事を表す
00 0F :MXを問い合わせてます(15)
00 01 :問い合わせクラス 01=IN=インターネット
問い合わせパケット
00 1F :データ長
--ここからヘッダ--
?? ?? :16ビットの適当なID(乱数でOK)
00 00 :QR=0 OPCODE=0 AA=0 TC=0 RD=0 RA=0 Z=0 RCODE=0
00 01 :質問の数(今回は1個なので1)
00 00 :回答の数=当然0
00 00 :NSレコードの数=0
00 00 :追加部の数=0
--ここから質問部-- 今回の内容は mc.kcom.ne.jp
02 6D 63 :ラベルの長さとmcのキャラコード
04 6B 63 6F 6D :ラベルの長さとkcomのキャラコード
02 6E 65 :ラベルの長さとneのキャラコード
02 6A 70 :ラベルの長さとjpのキャラコード
00 :ドメイン終了=ルートに辿り着いた事を表す
00 0F :MXを問い合わせてます(15)
00 01 :問い合わせクラス 01=IN=インターネット
24いえろ ◆bT6c9WIwLg
02/10/09 18:37ID:??? 回答パケット(オフセットが重要なのでオフセット付きです)
※オフセットは10進数です
-002: 00 9E :データ長 (オフセットマイナスなので注意!)
--ここからヘッダ--
+000: ?? ?? :送ったID(一致を確認すること)
+002: ?? ?? :回答時のフラグ(サーバによって変わります)
+004: 00 01 :質問の数=質問パケットと一致
+006: 00 01 :回答の数=1個
+008: 00 02 :NSレコードの数=2
+010: 00 04 :追加部の数=4
--ここから質問部のコピー--
+012: 02 6D 63 :ラベルの長さとmcのキャラコード
+015: 04 6B 63 6F 6D :ラベルの長さとkcomのキャラコード
+020: 02 6E 65 :ラベルの長さとneのキャラコード
+023: 02 6A 70 :ラベルの長さとjpのキャラコード
+026: 00 :ドメイン終了=ルートに辿り着いた事を表す
+027: 00 0F :MXを問い合わせてます(15)
+029: 00 01 :問い合わせクラス 01=IN=インターネット
※オフセットは10進数です
-002: 00 9E :データ長 (オフセットマイナスなので注意!)
--ここからヘッダ--
+000: ?? ?? :送ったID(一致を確認すること)
+002: ?? ?? :回答時のフラグ(サーバによって変わります)
+004: 00 01 :質問の数=質問パケットと一致
+006: 00 01 :回答の数=1個
+008: 00 02 :NSレコードの数=2
+010: 00 04 :追加部の数=4
--ここから質問部のコピー--
+012: 02 6D 63 :ラベルの長さとmcのキャラコード
+015: 04 6B 63 6F 6D :ラベルの長さとkcomのキャラコード
+020: 02 6E 65 :ラベルの長さとneのキャラコード
+023: 02 6A 70 :ラベルの長さとjpのキャラコード
+026: 00 :ドメイン終了=ルートに辿り着いた事を表す
+027: 00 0F :MXを問い合わせてます(15)
+029: 00 01 :問い合わせクラス 01=IN=インターネット
25いえろ ◆bT6c9WIwLg
02/10/09 18:37ID:??? --ここから回答部--
+031: C0 0C :Name=Offset+0x0C(12)=0xC000+0x0Cの意味(圧縮)
+033: 00 0F :TYPE=15=MXレコード
+035: 00 01 :CLASS=1=IN=インターネット
+037: 00 01 48 23 :TTL=0x00014823
+041: 00 0A :リソースデータ長
--ここからリソースデータ--
+043: 05 6F 72 69 67 31 :ラベル長(05)と'orig1'のキャラクタ
+049: C0 0F : Offset+0x0F(15)(圧縮)
ただし、これはヘッダからのオフセット
↓これ以降NSレコードと追加部が続く
+031: C0 0C :Name=Offset+0x0C(12)=0xC000+0x0Cの意味(圧縮)
+033: 00 0F :TYPE=15=MXレコード
+035: 00 01 :CLASS=1=IN=インターネット
+037: 00 01 48 23 :TTL=0x00014823
+041: 00 0A :リソースデータ長
--ここからリソースデータ--
+043: 05 6F 72 69 67 31 :ラベル長(05)と'orig1'のキャラクタ
+049: C0 0F : Offset+0x0F(15)(圧縮)
ただし、これはヘッダからのオフセット
↓これ以降NSレコードと追加部が続く
26虎
02/10/09 18:50ID:??? 一生懸命回答書いてたら遅れを取った。
27いえろ ◆bT6c9WIwLg
02/10/09 18:59ID:??? DNSの回答はいちいちFQDN返してると大変なので一部の文字列を
共有しています。(これをRFCでは圧縮と書いてるみたい)
上記例では +031に名前(ホスト名)を書いても良いのですが、ここに
記載されるべき名前はリソースデータの名前(MX問い合わせの回答)と
一致しますので「そこまでの相対アドレス」を書きます。
このように相対アドレスを書く場合は0xC000+ポインタ値を使います。
0xC0で大丈夫な理由は、1つのラベルは63文字以内と定められている
からです。
ポインタはこの値の次を0としますので31+12=43で+043からのラベルと
言うことになります。つまり'orig1'です。
+043から始まるラベルの最後にさらにポインタ0x0Fが有ります。
この様にラベルの最後にあるポインタは「前に定義されたラベル」への
ポインタになります。つまり+015から始まるラベル'kcom.ne.jp'です。
+015から始まるラベルは最後がルートで終わってますので連結は終了です。
これでFQDNである'orig1.kcom.ne.jp'を表しています。
+043からも同じ方法で、NSレコードも全く同じ方法です。
共有しています。(これをRFCでは圧縮と書いてるみたい)
上記例では +031に名前(ホスト名)を書いても良いのですが、ここに
記載されるべき名前はリソースデータの名前(MX問い合わせの回答)と
一致しますので「そこまでの相対アドレス」を書きます。
このように相対アドレスを書く場合は0xC000+ポインタ値を使います。
0xC0で大丈夫な理由は、1つのラベルは63文字以内と定められている
からです。
ポインタはこの値の次を0としますので31+12=43で+043からのラベルと
言うことになります。つまり'orig1'です。
+043から始まるラベルの最後にさらにポインタ0x0Fが有ります。
この様にラベルの最後にあるポインタは「前に定義されたラベル」への
ポインタになります。つまり+015から始まるラベル'kcom.ne.jp'です。
+015から始まるラベルは最後がルートで終わってますので連結は終了です。
これでFQDNである'orig1.kcom.ne.jp'を表しています。
+043からも同じ方法で、NSレコードも全く同じ方法です。
28いえろ ◆bT6c9WIwLg
02/10/09 19:01ID:??? >>26
(・∀・)ニヤニヤ あ〜良い所に・・・
>この様にラベルの最後にあるポインタは「前に定義されたラベル」への
>ポインタになります
この訳あってますかね・・・RFC1035だとちょろっとしか出てこないんです。
(・∀・)ニヤニヤ あ〜良い所に・・・
>この様にラベルの最後にあるポインタは「前に定義されたラベル」への
>ポインタになります
この訳あってますかね・・・RFC1035だとちょろっとしか出てこないんです。
29いえろ ◆bT6c9WIwLg
02/10/09 19:23ID:??? >>25 しまった修正
--ここから回答部--
+031: C0 0C :Name=Offset+0x0C(12)=0xC000+0x0Cの意味(圧縮)
+033: 00 0F :TYPE=15=MXレコード
+035: 00 01 :CLASS=1=IN=インターネット
+037: 00 01 48 23 :TTL=0x00014823
+041: 00 0A :リソースデータ長
--ここからリソースデータ--
+043: 00 0A :Preference=10 ←追加
+045: 05 6F 72 69 67 31 :ラベル長(05)と'orig1'のキャラクタ
+051: C0 0F : Offset+0x0F(15)(圧縮)
ただし、これはヘッダからのオフセット
↓これ以降NSレコードと追加部が続く
--ここから回答部--
+031: C0 0C :Name=Offset+0x0C(12)=0xC000+0x0Cの意味(圧縮)
+033: 00 0F :TYPE=15=MXレコード
+035: 00 01 :CLASS=1=IN=インターネット
+037: 00 01 48 23 :TTL=0x00014823
+041: 00 0A :リソースデータ長
--ここからリソースデータ--
+043: 00 0A :Preference=10 ←追加
+045: 05 6F 72 69 67 31 :ラベル長(05)と'orig1'のキャラクタ
+051: C0 0F : Offset+0x0F(15)(圧縮)
ただし、これはヘッダからのオフセット
↓これ以降NSレコードと追加部が続く
30いえろ ◆bT6c9WIwLg
02/10/09 19:24ID:??? >27 修正(中央辺り)
ポインタはこの値の次を0としますので33+12=45で+043からのラベルと
言うことになります。つまり'orig1'です。
+045から始まるラベルの最後にさらにポインタ0x0Fが有ります。
ポインタはこの値の次を0としますので33+12=45で+043からのラベルと
言うことになります。つまり'orig1'です。
+045から始まるラベルの最後にさらにポインタ0x0Fが有ります。
31虎
02/10/09 19:40ID:??? ちょっとポインタの扱い違うー
オフセット+031で書かれる「NAME」は、資源レコードの、
定義対象のレコード名。なのでこの場合は、 mc.kcom.ne.jp
が求められます。
それでオフセット値は12、これはヘッダ部のIDからのバイト数なので、
回答パケットのオフセット+012からの記述、つまり質問部で使った
mc.kcom.ne.jp を示しています。
また、資源レコードに関しては、まず5文字 'orig1'を記述した後、
オフセット値15を参照であるので、さっき使ったとこの、ちょっと後、
つまり質問部のkcom.ne.jpの部分を示していますね。
オフセットは相対アドレス指定ではなくて絶対アドレス指定ですよん。
オフセット+031で書かれる「NAME」は、資源レコードの、
定義対象のレコード名。なのでこの場合は、 mc.kcom.ne.jp
が求められます。
それでオフセット値は12、これはヘッダ部のIDからのバイト数なので、
回答パケットのオフセット+012からの記述、つまり質問部で使った
mc.kcom.ne.jp を示しています。
また、資源レコードに関しては、まず5文字 'orig1'を記述した後、
オフセット値15を参照であるので、さっき使ったとこの、ちょっと後、
つまり質問部のkcom.ne.jpの部分を示していますね。
オフセットは相対アドレス指定ではなくて絶対アドレス指定ですよん。
レスを投稿する
ニュース
- 【速報】 高市首相 「円安ホクホク」発言に、米国が「What the fuck 」と日本に通知したことが判明 [お断り★]
- 外務省がアメリカ側に強く抗議したと発表 沖縄・那覇市の強盗殺人事件で海兵隊の男逮捕 [少考さん★]
- 「運動音痴にとって、体育の授業は『公開処刑』」 運動嫌いを生みだす日本の教育の問題点 [征夷大将軍★]
- 【速報】高市首相の「寝てない」にSNS賛否「命がけで頑張っている」「アピールはもうけっこう」 海外メディアも注目 (共同通信) [少考さん★]
- 【沖縄】米海兵隊の20歳男を強盗殺人容疑で逮捕 那覇市のホテルで女性殺害し財布など奪った疑い 「私は知りません」容疑否認 [ぐれ★]
- 【アジア大会】大村秀章知事が会見 「アジア版五輪」の成功を強調「やり切ることができた」 [首都圏の虎★]
- 【高市悲報】愛国者、ぶっ壊れてしまい「国旗掲揚してたのは自衛隊ではない」「自衛隊の雇ったタイミー」など意味不明な事を言い始める [165981677]
- 日本料理、アジアで一番不味いとの評価頂く。→日本人なぜか発狂 [668024367]
- 【悲報】日本人、気づき始める「あれ?俺たちなんか貧しくなってね?」wwwwwwwwwwwwwwwwwwwwwwww [379664288]
- 



ハズレのお🏡




- 強殺容疑で逮捕された米兵「知らんがな」 [583597859]
- 【朗報】公明党代表、在日韓国人3世であることを表明wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [339035499]