pythonでDNSサーバ作成 ~④DNSプロトコルを解析しよう~

DNSサーバ作成,python

今回は前回作成した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サーバコードは以下にあります。(詳細については関連記事参照)