pythonでDNSサーバ作成 ~④DNSプロトコルを解析しよう~
今回は前回作成したdnsサーバ(受信のみ)が、nslookupコマンドにて受信したデータの解析をしてみました。
解析データ
初回受信データ
b'\x00\x01\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x011\x010\x010\x03127\x07in-addr\x04arpa\x00\x00\x0c\x00\x01'
2回目受信データ
b'\x00\x02\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03dns\x05test1\x02jp\x00\x00\x01\x00\x01'
上記はどのような意味を持つのだろうか。
DNSのフォーマットから確認してみよう。
解析結果
解析結果は以下。
各パラメータの詳細についてRFCなどを参照してほしい。
また、解析にあたってwiresharkのパケット情報も参考にしました。
応答データ
各受信データに対する応答データは以下。
パラメータの意味は分かったので次回はいよいよ応答処理を実装します。
コード
最終的なDNSサーバコードは以下にあります。(詳細については関連記事参照)