12月18日(金)2コマ目
今日、やったこと
ICMP、ARPとルーティング(パケットを推測する)その2
今日の演習
紙面上のネットワークでやり取りされるパケットを推測します。
|
| 図 ネットワーク図 |
ホストCにてホストAへping実行
やりとりされるパケットは下図のように推測されます。
|
| 図 やり取りされるパケット |
1.ホストCにてping実行
①ルーティング
ホストCのIPがルーティングを行います。
宛先はホストA、ルーティングテーブルはホストCが持つルーティングテーブルを使います。
ルーティングの結果、ルーターのポート2へ送信することになります。
②ARPがMACアドレス取得
ルーティングの結果、送信するルーターのポート2のMACアドレスを取得します。
まず、ARPテーブルチェック。ルーターのポート2の情報があるためこのMACアドレスを使います。
③パケット送信
以下のパケットを送信します。
パケット① ホストCからホストAへのICMPエコー要求
|
| 図 パケット① ICMPエコー要求(ホストC->ルーター) |
2.ルーターがICMPエコー要求受信
ルーターのポート2がICMPエコー要求を受信します。
ここでもルーティング、MACアドレス取得、パケット送信を行います。
①ルーティング
IPヘッダの宛先(ホストA)とルーターのルーティングテーブルからルーティングした結果、ポート1からホストAへ直接送信します。
②MACアドレス取得
ホストAのMACアドレスを取得します。ARPテーブルにすでにデータがあるため、ARP要求、ARP応答のやり取りはありません。
③パケット送信
以下のパケットをポート1から送信します。
パケット② ホストAへのICMPエコー要求
|
| 図 ICMPエコー要求(ルーター->ホストA) |
3.ホストAがICMPエコー要求を受信
イーサネットが受信、IPがルーティングですが、宛先IPアドレスが自分宛なので、上位のICMPへ受信パケットを渡します。
ICMPはこのパケットがエコー要求(タイプが8)であるため、送信元(ホストC)へエコー応答を返信します。
で、ここから先はIPがルーティング、MACアドレス取得、パケット送信です。
ルーティングの結果、ルーターのポート1へ送信。
ルーターのポート1のMACアドレスはすでにARPテーブルにあるため、ARP要求、ARP応答のやり取りはなし。
よって、以下のパケットを送信します。
パケット③ ホストAからホストCへのICMPエコー応答
|
| 図 ICMPエコー応答(ホストA->ルーター) |
4.ルーターのポート1がICMPエコー応答を受信
受信=>ルーティング=>MACアドレス取得 と同じ流れです。
ルーティングの結果、ポート2からホストCへ直接送信します。
ホストCのデータはARPテーブルにはないため、ARP要求を送信します。
パケット④ ホストCのMACアドレス取得のためのARP要求
|
| 図 ARP要求(ルーターがホストCのMACアドレス探索) |
5.ホストCがARP要求を受信
ホストCのARPが受信したARP要求パケットの宛先IPアドレスから自分のMACアドレスの問い合わせであることがわかります。
ホストCはルーターのポート2へARP応答を返信します。
パケット⑤ ホストCからルーターのポート2へのARP応答
|
| 図 ARP応答(ホストCがルーターへ返信) |
6.ルーターのポート2がARP応答を受信
受信したARP応答からホストCのMACアドレスがわかり、ICMPエコー応答が送信できます。
なお、取得したMACアドレスはARPテーブルに記録します。
パケット⑥ ホストAからホストCへのICMPエコー応答
|
| 図 ICMPエコー応答(ルーター->ホストC) |
以上で終わり。
まとめると
やっていることは結局
①ルーティング
送信(または受信)パケットのIPヘッダ中の宛先IPアドレスとルーティングテーブルでルーティング。これでイーサネットが送信する宛先が決まる。
②MACアドレス取得
ルーティングで決定した宛先のMACアドレスを取得。
まずはARPテーブルチェック。
ここにデータがなければ、ARP要求、ARP応答のやり取りを行う。
③パケット送信
送信パケットの宛先、送信元は以下のようになります。
| イーサネットヘッダ | 宛先MACアドレス | ルーティングで決定した宛先のMACアドレス |
|---|---|---|
| 送信元MACアドレス | ルーティングで決定したインタフェース | |
| IPヘッダ | 宛先IPアドレス | このパケットを最終的に受信する宛先のIPアドレス |
| 送信元IPアドレス | このパケットを送信したPCのIPアドレス |
次回、テストします。








コメント