投稿

10月, 2021の投稿を表示しています

10月28日(木)2コマ目

今日、やったこと DNSパケット解析の確認テスト 今日の 確認テスト 解答例をあげておきます。 DNSパケット解析確認テスト1 解答例 パケットのDNSヘッダには ヘッダセクション Questionセクション しかありません。 が、解答のAnswerセクションのドメイン名やレコード名を解答している方がおられました。 パケットにないモノは解答しようがないはずです。注意してください。

10月25日(月)2コマ目

イメージ
今日、やったこと DNSパケット解析のつづき 今日のホワイトボード 前回まで DNSパケットの解析を行い、イーサネットヘッダからUDPヘッダまでの解説をしました。 DNSヘッダ(ヘッダセクション) DNSヘッダの先頭はヘッダセクション。 図 ヘッダセクション(パケット) 図 ヘッダセクション(各項目) とくにややこしいことはないと思います。 ヘッダセクションのあとには、Questionセクションが1つ、Answerセクションが1つ、Authorityセクション、Additionalセクションが続くことがわかります。  Questionセクション 前回のパケットのQuestionセクションと同じです。 ドメイン名はラベルの連続です。 ラベルは1バイトのラベル長と可変長のラベルデータで構成されます。 ラベルデータの長さはラベル長に書き込まれています。 ラベルデータは変換したいドメイン名(文字列データ)をASCIIで符号化しています。 ラベルはルートラベルで終了です。 タイプはこのパケットがDNSに対して何を問い合わせているかを書き込んでいます。 図 Questionセクション(パケット) 図 Questionセクション(各項目) Answerセクション Answerセクションがあることから、このパケットはDNSサーバーへの問い合わせに対する解答のパケットということになります。 ドメイン名について ちょっとややこしいのがドメイン名の部分です。 先頭2ビットで問い合わせドメイン名がどこに書きこまれているかがわかります。 今回のパケットは先頭2ビットが11なので、ドメイン名はこのパケットの別のところを参照することになります。 参照先はDNSヘッダの先頭からつづく6+8ビット(これをオフセット値と呼ぶ)離れたところに書き込まれていることになります。 このパケットではオフセット値は12。DNSヘッダの先頭から13バイト目以降がドメイン名です。実際、13バイト目以降はQuestionセクションのドメイン名の部分になります。 図 Answerセクションのドメイン名(パケット) 図 Answerセクションのドメイン名(各項目) 残りの部分 TTLはこの解答の有効期限です。 一度調べた結果はTTL指定値までは保存しておき、同じドメイン名の名前解決にはDNSを使いません。 このパケ...

10月21日(木)2コマ目

イメージ
今日、やったこと パケット解析(パケット解析演習2) 今日のホワイトボード 前回のパケット解析をもとに、あらたにパケット解析をしてもらいました。 イーサネットヘッダ 図 イーサネットヘッダ とくにややこしいことはないと思います。 ポイントはタイプ。パケット上のデータは0x0800から上位プロトコルはIPv4だとわかります。 IPヘッダ 図 IPヘッダ ポイントになる項目だけチェックしました。 図 IPヘッダの解析結果 IPヘッダは可変長のため、ヘッダ長でIPヘッダの長さを確認する必要があります。(20バイト) プロトコル番号で上位プロトコルを特定できます。 パケット上のデータは0x11のため、上位プロトコルはUDPだとわかります。 パケット長はIPヘッダ以降の長さです。 UDPヘッダ 図 UDPヘッダ 固定長かつ4項目しかないため、非常に簡単です。 図 UDPヘッダ解析結果 送信元ポート番号が0x0035(10進数なら53)から、上位プロトコルはDNSであることがわかります。 長さはUDPヘッダ以降のパケットの長さです。上位プロトコルはDNSのため、UDPヘッダ+DNSデータのが長さが316バイトです。 次回は DNSデータ部の解説をします。

10月14日(木)2コマ目

イメージ
今日、やったこと DNSパケット解析(つづき) 今日のホワイトボード 今日のホワイトボード 前回までは DNSパケットのイーサネット、IPヘッダの途中までを解析した。 IPヘッダは前半のバージョン、ヘッダ長、パケット長まで。 IPヘッダ(つづき) 図 IPヘッダを分解 図 IPヘッダ解析 プロトコル番号から上位プロトコルはUDPであることがわかる。 UDPヘッダ 図 UDPヘッダ分解 図 UDPヘッダ解析 宛先ポート番号から相手の53番ポートにこのパケットを届ける。 一般的にUDPの53番ポートはDNSが使っている。 よって、上位プロトコルはDNS。 DNSヘッダ まずはヘッダセクション  ヘッダセクション内にこのあとの各セクションの有無が分かるようになっている。 今回のパケットはQuestionセクションが1つあるだけ。 図 DNSヘッダのヘッダセクションを分解 図 ヘッダセクションを解析 Questionセクション Questionセクションは複数のラベルで構成されている。 ラベルはラベル長(1バイト)とラベルデータの組み合わせで可変長。 ラベル長はラベルデータのデータサイズ。よって、ラベルの長さが決まる。 ラベルデータは問い合わせドメイン名を1文字ずつASCIIコードに変換している。 図 Questionセクションを分解 結局、このパケットは 送信元:172.16.14.160から宛先:172.16.5.3へ www.google.co.jp の名前解決のためのパケット。 次回は 今回の問い合わせパケットに対する応答パケットを解析します。

10月7日(木)2コマ目

イメージ
今日、やったこと Webページアクセスの流れ DNSパケット解析 今日のホワイトボード Webページアクセスに登場するプロトコル DNSでサーバーの名前解決(ドメイン名->IPアドレス) HTTPでWebページのやり取り 図 Webアクセス時に登場するプロトコル HTTPでのWebページリクエスト、レスポンス取得の流れ 図 クライアント<=>サーバー間のやり取り 〇クライアントからサーバー サーバー上のWebページ(HTMLファイル)をリクエストする。 HTTPのGETやPOSTコマンドを利用する。 〇サーバーからクライアント リクエストされたWebページ(HTMLファイル)の内容サーバーをクライアントへ送信する。送信方法はHTTPで定められている。 PCでパケットが作られる流れ プロトコル階層の最上位から順に渡される。 各階層でヘッダが付加される。 図 送信側PCでのパケット作成のながれ DNSパケット解析 〇イーサネットヘッダ パケットの先頭はイーサネットヘッダ。 イーサネットヘッダのフォーマットに従って、切り取ればいい。 図 イーサネットヘッダ イーサネットヘッダのタイプには0x0800が書き込まれている。 これは上位プロトコルがIPであることが分かる。よって、IPヘッダが続く。 図 タイプが0x0800=>上位プロトコルはIP 〇IPヘッダ 同じようにIPヘッダのヘッダフォーマットに従って切り取っていく。 図 IPヘッダ ただし、IPヘッダは可変長。ヘッダ長でIPヘッダの長さがわかる。 図 IPヘッダ解析結果① 次回は DNSパケット解析の続きをやります。