X



DNSで使用しているプロトコルを教えてください。
0001SAMCO垢版02/03/27 00:20ID:zfvFheF8
DNSを引くのに使用しているプロトコル(そこで流れている情報)について
知っている人がいれば教えていただけないでしょうか?

nslookup等で、
ls -d yahoo.co.jp
とかすると、yahoo.co.jp ドメインのすべてのアドレスが出てきますよね?
あれを、nslookupっていうコマンドを経由しないで使う方法はないでしょうか?
具体的には
telnet ??????? 53
としてどんなコマンドを打ち込めば目的のアドレスを知ることができるかが
知りたいです。

わかる人、書いてあるアドレス何でも結構です。教えてください
0002 垢版02/03/27 00:35ID:???
わからん。すまん。
ってかいま、誰もいないみたい。気長に待ってくれ。
00031垢版02/03/27 00:38ID:sGBtlGBo
了解です。
自分で作ってる簡易SMTPサーバで必要なだけなので
気長に待つことにします。
0004いえろ垢版02/03/27 01:27ID:???
RFC883に書いてあったと思う。
所で自前で書いてるの?
簡単に正引き・逆引きできるコンポーネントないのかなぁ・・
いやOSが何で何使ってコード書いてるがわからんのだがw
(VBとかは勘弁してくれよ)
0005垢版02/03/27 02:43ID:???
ちょっと待て。
DNSで使ってるのはudpだぞ。
telnetで出せるのはtcpだ。
ついでに言うと、nslookup で、ls コマンドを使うと
流れるのは transfer 通常の名前引きは query
最近は特定のサーバにしかtransferを許さないのが普通。

あと、正引き、逆引きを簡単に行うなら、
socket の(windowsならwinsock)
gethostbyaddr, getaddrbyhost関数を使うのが
普通だぞ?

なんか知識が大幅にずれてないか? それでsmtpサーバ作る
つもりなのか?
00061垢版02/03/27 15:27ID:kIWBEv4r
使ってるOSはWindows2000 Proで、VC6を使ってます。

最近はプロバイダのSMTPサーバが、自前のネットワークのみから
しか反応しないので、それの橋渡しをするSMTPサーバを
つくれないかな?と考えました。

メール送信部分は、相手のサーバを探して(ここがDNSのとこ)
コネクション張って、
HELO
MAIL FROM: ???
RCPT TO: ???
DATA
???
.

で送れたと思うのですが、名前を引くところに関しては
さっぱりわからなくて質問をしました。
0007ぱおぱお垢版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の一覧を探すのがいいぞ。

頑張れ。
00081垢版02/03/28 21:44ID:TQLnYYGJ
>7
ありがとう御座います。出来ました。解決です。
あと、resolverで検索をしていたので見つからなかったみたいです。
素直にdomainで検索をすれば良かったです(DNSじゃ出てこないし)。
0009ぱおぱお垢版02/03/29 19:01ID:O6tCsMJO
残念。(>ε<)
Winsockにはresolverが実装されていない。

ところで,SMTPの方のエラー処理や再送は上手くいった?
なかなか繋がらんMXも多いからな。
00101垢版02/03/30 01:32ID:n1+koA0a
>9
SMTPの方が先に組みあがっていたので、大丈夫です。
反応が遅いところもあるようですが、今のところ問題なしです。
遅いサーバーに対しては、1つのメールに対し複数のコネクションを張るようにしてあります。
これって、嫌がられそうだけど(笑。

>5
ふと思ったんですが、gethostbyaddr, getaddrbyhostでMX引けましたっけ?
単に25ポートで繋いでも無理だったので、不可能なような気が...。
もし引けるようでしたら、やり方を教えてください。お願いします。
0011垢版02/04/01 11:32ID:???
>>10 すこし時間をくだされ。知識の裏取っておく。
0012垢版02/04/02 10:54ID:???
>>10
手持ちのソケット本が出払ってた(Kよ返してくれ!)ので
ソケット関数で引けたかどうかは未確認……
引けないってことはないように思うんだが……

UDPで直接送受信する仕組みができてたら、DNSメッセージを
直接やりとりするのも可能か。
説明すると結構繁雑なので、オーム社「マスタリングTCP/IP 応用編」
の第15章5節を参照してください。
00131垢版02/04/03 15:33ID:AV3ZEb5C
>12
> オーム社「マスタリングTCP/IP 応用編」
かなり読んでます。ハイ。でも、意外と内容が薄い...。
RFCの日本語訳が見つからなかったので、英語をヒタスラ読んでますが。
DNSの応答処理が意外と面倒な事になってます。
0014垢版02/04/03 15:43ID:???
>>13
DNSの応答処理って
DNSから送られてきた応答パケット(とは限らないが)の
受信と解釈のことでしょうか。

オライリーのDNS&BINDの14章2節に、DNS問い合わせと
応答の解析を行うサンプルプログラム(C)が載ってたので
参考になるのでは。
俺はCはよく使わないのでよくわかりませんが(w
14.3にはPerlのNetオブジェクトを使った例もある。
0015 垢版02/04/04 11:38ID:???
ここホントに初級ネット板か???
0016 垢版02/04/07 04:35ID:???
>>15
初級ネットは偽名じゃ。
名前のせいで勘違いして紛れ込んでくる初心者が多いのだが致し方ないことなのだ。
00171垢版02/04/07 19:29ID:RVpV9bj7
>>14
> 応答の解析を行うサンプルプログラム
そんなのが欲しいです...。
やっとこさ、IPまで辿り着ける状態になりましたです。

> Perl
は使った事が無いので、全くわかりません。
C/C++かアセンブラかVBしか出来ません。
0018垢版02/04/08 11:26ID:???
>>17 素直にオライリー買いましょう。\5000也。
0019 垢版02/06/12 16:31ID:???
>>18
第4版は5200円だね。
0021いえろ ◆bT6c9WIwLg 垢版02/10/09 16:59ID:???
誘導したのは良いが・・・ 結論が出てなかったのか!!

つーか 本買えで終わってるとは・・・
0023いえろ ◆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=インターネット

0024いえろ ◆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=インターネット
0025いえろ ◆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レコードと追加部が続く
0026垢版02/10/09 18:50ID:???
一生懸命回答書いてたら遅れを取った。
0027いえろ ◆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レコードも全く同じ方法です。
0028いえろ ◆bT6c9WIwLg 垢版02/10/09 19:01ID:???
>>26
(・∀・)ニヤニヤ あ〜良い所に・・・

>この様にラベルの最後にあるポインタは「前に定義されたラベル」への
>ポインタになります

この訳あってますかね・・・RFC1035だとちょろっとしか出てこないんです。
0029いえろ ◆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レコードと追加部が続く
0030いえろ ◆bT6c9WIwLg 垢版02/10/09 19:24ID:???
>27 修正(中央辺り)

ポインタはこの値の次を0としますので33+12=45で+043からのラベルと
言うことになります。つまり'orig1'です。
+045から始まるラベルの最後にさらにポインタ0x0Fが有ります。
0031垢版02/10/09 19:40ID:???
ちょっとポインタの扱い違うー

オフセット+031で書かれる「NAME」は、資源レコードの、
定義対象のレコード名。なのでこの場合は、 mc.kcom.ne.jp
が求められます。

それでオフセット値は12、これはヘッダ部のIDからのバイト数なので、
回答パケットのオフセット+012からの記述、つまり質問部で使った
mc.kcom.ne.jp を示しています。

また、資源レコードに関しては、まず5文字 'orig1'を記述した後、
オフセット値15を参照であるので、さっき使ったとこの、ちょっと後、
つまり質問部のkcom.ne.jpの部分を示していますね。

オフセットは相対アドレス指定ではなくて絶対アドレス指定ですよん。

0032垢版02/10/09 19:43ID:???
追記

mc.kcom.ne.jp. 82884 IN MX 10 orig1.kcom.ne.jp.
というレコードの内容がすっかり回答部にあるわけです。
0033いえろ ◆bT6c9WIwLg 垢版02/10/09 19:55ID:???
>>31
あ〜やっぱ そうなんですか。帰りながらもしやと思ってました。

RFCに書いてあった相対パターンはいったい何なんだ?
0034垢版02/10/09 20:25ID:???
>>33

>RFCに書いてあった相対パターンはいったい何なんだ?

え?

差し支えなければ引用あるいはポイントを…
0035いえろ ◆bT6c9WIwLg 垢版02/10/09 20:32ID:???
ここです
4.1.4. Message compression
最後
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
40 | 3 | F |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
42 | O | O |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
44 | 1 1| 20 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
64 | 1 1| 26 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
92 | 0 | |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

The domain name for F.ISI.ARPA is shown at offset 20. The domain name
FOO.F.ISI.ARPA is shown at offset 40; this definition uses a pointer to
concatenate a label for FOO to the previously defined F.ISI.ARPA. The
domain name ARPA is defined at offset 64 using a pointer to the ARPA
component of the name F.ISI.ARPA at 20; note that this pointer relies on
ARPA being the last label in the string at 20. The root domain name is
defined by a single octet of zeros at 92; the root domain name has no
labels.
0036いえろ ◆bT6c9WIwLg 垢版02/10/09 20:35ID:???
この最後の、
The root domain name isdefined by a single octet of zeros at 92;
the root domain name has no labels.

オフセット64にフラグ11と26が書いてあり、その先がオフセット92見たいなんです。
これを読んだもんですから、ラベル無し=相対なんじゃないかな?と・・・
でも設定の意味からすると虎さんのが合ってますよね・・・
0037垢版02/10/09 20:46ID:???
F.ISI.ARPA のドメインネームは、オフセット20に示されている。

ドメインネーム FOO.F.ISI.ARPA は、オフセット40で示されている。
この定義では、ラベル「FOO」に続けて、以前に定義された F.FOO.ISI.ARPA
へのポインタを結合している。

オフセット64で定義されているドメイン名 ARPA は、オフセット20にて
既に定義されている F.ISI.ARPAの構成要素へのポインタを利用して定義
されている。
-注) この ARPA を示すポインタは、オフセット20からの文字列の最後のラベル
である

ルートドメイン名は、1オクテットの0でオフセット92で定義されている。
ルートドメイン名は、ラベルを持たない。

てな感じなので、やはし相対指定ではないっすね

オフセット44に、20とか書いてあって、またオフセット64を
例に出してるから解りにくくなるんだなこれは。

日本語変なのはご容赦
0038垢版02/10/09 20:48ID:???
ここで言うルートドメインてのは
末尾の「.」ですね。
0039いえろ ◆bT6c9WIwLg 垢版02/10/09 20:55ID:???
あ、続きの説明じゃなかったのか!! つーかオフセット戻せよ〜

了解です。

末尾の.はその昔「いえろ」じゃなかった頃かなった頃
ココで質問したけど答えてもらえなかったなぁ〜(笑
0040垢版02/10/10 11:55ID:???
オフセット20からの記述は、このような感じだろうな

+0020:01 'F'
+0022:03 'ISI'
+0026:04 'ARPA'
+0031:00

さてと、オフセット44だの64だのでは、事前に定義されてる
ドメイン名を使って、ドメイン名を圧縮してあるわけだけれど、
オフセット92では、ルートを再定義している。
理屈に合わないわけじゃないよ。
ポインタは2オクテット、ルート定義は1オクテットで済むから
ルートに関しては再定義したほうが低コストなのだ。

ところでこのスレッド一回あげとく?
0041いえろ ◆bT6c9WIwLg 垢版02/10/10 13:35ID:???
あ゙。わかった・・・
F.ISI.ARPA.
FOO.F.ISI.ARPA.
ARPA.
.
の例だったのか・・・
オフセット64の値が26。オフセット64で2オクテット使ってるから66
66+26=92!! ぴったり92だったんですよ・・・
この例がオフセット96とかだったら勘違いしなかったかも(汗

あ、上げてなかったですね。上げますか。
0042垢版02/10/10 15:01ID:???
元質問者にはこのスレッドを読んでもらえたのだろうか…
0043いえろ ◆bT6c9WIwLg 垢版02/10/10 15:10ID:???
掲示板はTCPじゃなっくって UDPみたいな物なので
気にしないのが一番かと・・・
0044垢版02/10/10 18:42ID:???
ICMPだってECHOを返すというのに!(w
0046垢版03/03/31 22:30ID:XktnhCYQ
ssdpってどんなプロトコルですか?
初心者なので簡単にお願いします。
0048_垢版03/06/10 09:38ID:2YdiHJDm
だうりゃっ
0049(・∀・)垢版03/10/08 20:37ID:???
プロトコルってトルコ風呂に似てるね。(・∀・)
005061垢版03/11/12 03:18ID:w5CLkmfr
Ehternet、IP、HTTPなど、さまざまなプロトコルがありますが、
これらをOSI基本参照モデル7階層(あぷせとねでぶ)に分けろ、といわれると
わかりません。どう覚えれば・・・・。
聞くとこはここじゃないよ、という場合言ってください。
0052(▼▼メ)垢版03/11/25 00:05ID:???
OSIはくわしくしらないけど、、、
TCP/IPではレイヤ1〜4と7しか使ってないよ。。
一般的には、
レイヤ7:HTTP、FTP、TELNET等々
レイヤ4:UDP、TCP、ICMP
レイヤ3:IP
レイヤ2:DLC(ethernet)
レイヤ1:UTPケーブル等規定
こんな感じで。。実際に見て覚えるが早いとおもうけど
フリーのetherealとかでキャプチャしてみれば?
0053_垢版03/12/28 03:46ID:???
そもそもTCP/IPはOSI参照モデルに準拠して実装されたわけじゃないが。と思うがな。
0054s垢版04/02/22 10:17ID:???
テスト
0055mo-垢版05/01/04 00:37:31ID:???
トテリス
0057困っています垢版05/01/25 02:33:58ID:gPfqaEQu
今ネットをやっていたら急にすべてのページが表示できなくなりました、誰か助けてください!お願いします。ビッグローブです、ルーター、ADSLモデム装備です
0058kp垢版2005/09/26(月) 18:42:05ID:j5U+q5K5
DNSサーバーってJavaでプログラミングできますか?
0059ghq垢版2007/11/11(日) 14:44:11ID:pvu6Erjx
このソフトでIPアドレスを隠すことは出来ますか?

http://www.rikisoft.net/

できれば迷惑メールのプロパティから
DNSサーバーのアドレスを使用できるものでいくつか教えてください。
どうかよろしくお願いします。
0062DNS逆引き垢版2008/01/12(土) 03:20:57ID:???
「Reverse IP」というDNS逆引きサービスをWebアプリで作ってみたいです。

Reverse IP
http://www.domaintools.com/reverse-ip/

どうしてかと言うと、レンタルサーバ(XREA等)でアカウントを取るとき、どのサーバがすいているか調べるためです。
バーチャルドメインを使っているレンタルサーバは、1つのIPアドレス(サーバ)に複数のドメイン名がひも付けされています。
http://www.value-domain.com/xreaip.php

IPアドレスを1個1個手入力して調べるのは大変だと思いました。
PHPでDNS逆引きのWEBアプリを作ろうとしたら、gethostbyaddr()という関数では思ったような結果が得られませんでした。
http://jp2.php.net/manual/ja/function.gethostbyaddr.php

Reverse IPで「210.172.108.229」を検索すると
http://www.domaintools.com/reverse-ip/?hostname=210.172.108.229
のように
There are 611 domains hosted on this IP address.
=611個のドメイン名が対応していると表示されますが、

PHPで
<?php
$ip = "210.172.108.229";
$hostname = gethostbyaddr($ip);
echo $hostname;
?>
というスクリプトを実行すると、
s250.xrea.com
しか表示されません。
これはDNSが1個しかホスト名を返していないのかもしれませんが、なぜReverse IPでは611個という数字が返されるのか仕組みがわかりません。

どうやったらReverse IPと同じようにバーチャルドメインの数を調べるスクリプトが作れるでしょうか?
0064じゃm垢版2008/06/03(火) 01:17:47ID:spqELczJ

経路制御プロトコルを開発する場合,どのようなプロトコルを開発しますか?あなたが最も良いと考えるパケットの配送経路について説明し,その様な経路を設定するためにはどうすればよいかを説明しなさい.
0069北澤DEKO蔵垢版2012/06/10(日) 15:09:25.34ID:???

  ε ⌒ヘ⌒ヽフ
 (   (  ・ω・) ふむふむ
  しー し─J
0070名無しさん垢版2012/09/12(水) 21:01:35.96ID:???
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね 
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね 
創価氏ね
創価氏ね 
創価氏ね 
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね
創価氏ね
0071_垢版2013/03/09(土) 20:44:57.91ID:???
>>1
おめでとう。
本スレッドは10年と350日をかけて
ついにネットワーク板の最下層まで辿り着きました。
深度は365です。
0072名無しさん@いたづらはいやづら垢版2013/04/04(木) 23:36:23.89ID:TN1ytoVb
へ?
0073test垢版2013/06/23(日) 17:38:23.38ID:+nBgQg9k
test
0075dig垢版2013/09/30(月) 01:39:12.53ID:h5L05kpp
nslookupって奥ゆかしいね
0077sage垢版2013/10/07(月) 23:32:21.69ID:???
DNSの名前解決で、「再帰問合せ(recursive query)」と「反復問合せ(iterative query)」の2種類がありますが、なんで再帰と命名したんだろ?…いまいち、ピンと来ません。
スタブ・リゾルバーから見て、どこが再帰的なんだろう?
0082名無しさん@いたづらはいやづら垢版2023/12/13(水) 06:16:53.89ID:yDp00xHa
レスを投稿する


ニューススポーツなんでも実況