連載:アニメーションで見るパケット君が住む町(3)
トラックに積む運送票から「アドレス解決」を学ぼう

綱野衛二
Roads to Node
2009/4/13


3-2 ARP君のお仕事

 荷物を運ぶためには、「最終的な届け先」の「住所」と、「次の届け先」である「ビル名」の2つの住所が必要なことは分かったと思います。

 ここで、荷物の届け先には2つのパターンがあります。つまり「市内」か「市外」か、です。この2つのパターンで、「ビル名」と「住所」の関係を考えてみると、

  • 市内の場合……ビル名と住所の場所は一致する
  • 市外の場合……ビル名と住所の場所は一致せず、ビル名には市外へ行くためのステーションを指定する

 これらのことが分かります。

 では、指定された「住所」がどの「ビル名」であるか、ということはどうやったら分かるのでしょうか?市外の「住所」の場合、ステーションの「ビル名」はどうやって分かるのでしょうか?

ARP君「出番ッス」

 ここでARP君の出番です。

 ARP君は3F商品受発注部に所属していますが、2F車両部のイーサ配送君とよく打ち合わせをしています。立場的には、2.5Fぐらいですかね?

ARP君「階段の踊り場に机があるみたいにいわないでほしいッス」

イーサ配送君「打ち合わせの内容は、届け先のビル名をARP君が指定するんだ」

 では、ARP君がどうやってビル名を知るのか聞いてみましょう。

ARP君「じゃん。これが僕の『住所とビル名対応・ARP君特製ノート』ッス。パケット先輩から教えてもらった届け先をこのノートで調べて、ビル名を割り出すッス」

 「住所とビル名対応・ARP君特製ノート」、ここでは「ARP君ノート」と呼びましょう。ARP君は住所に対応するビル名をこのノートにメモっているみたいですね。

 おや、このノートはずいぶんと消した後がありますね?

イーサ配送君「ビル名は中に入ってる会社が変わると変わるからね。だからARP君は常に最新の、正しい対応をノートに書いているからだよ。古いのを消して、新しいのを書いてるってこと」

 なるほど。では、どうやってこのノートに対応を書いているか聞いてみましょう。

ARP君「簡単、簡単。聞いて回るッス。『この住所にいる人、ビル名を教えて』って」

 ふむふむ。聞いて回る、と。

 ちなみに、どうやって聞いているのかというと、「教えて」っていう荷物を作って、イーサ配送君に頼んで送ってもらうみたいです。

 これは市内の全ビルあてに行われます。

 では、実際にどういう手順で、イーサ配送君にビル名を教えているか見てみましょう。

図3-5 ARP君のお仕事・前半(赤のボタンで再生・停止ができます。Flash Playerが必要です)

 まず、パケット君から教えてもらった住所に対して、ルート君が指示を出すわけですね。それで、次に行くべき場所が決まります。決まったらARP君の出番です。

 ARP君はARP君ノートを見て、ARP君ノートに住所とビル名の対応があったら、そのままビル名をイーサ配送君に教えて、運送される。

 ARP君ノートに対応がなかったら……。

図3-6 ARP君のお仕事・後半(赤のボタンで再生・停止ができます。Flash Playerが必要です)

 ARP君が送った「教えて」という内容の荷物を全ビルに送ります。送った先のビルにいるARP君は自分がその住所にいる場合、「ビル名を教える」荷物を送り返す、という仕組みですね。

 教えてもらった結果を、ARP君ノートに書き写し、イーサ配送君にビル名を教える、という流れですね。

ARP君「市内配送では、この『特製ノート』がものすごく大事ッス。もしこのノートが間違っていて、正しくないビル名をイーサ配送君に教えてしまったとしたら……」

 届きませんね、届け先に。

ARP君「そんなことがないように、常に正しく新しい対応であるように、ノートの内容は新しく書き直しているッス」


 イーサネットでデータ伝送を行う場合、「IPアドレス」と「MACアドレス」の2つのアドレスがPDUには記述されています。イーサネットではこのうち、「MACアドレス」で送信元とあて先を指定してデータ伝送を行います。

 先ほどの話から分かるように、「IPアドレス」は最終的なあて先、「MACアドレス」は次のあて先ですが、IPアドレスに対応するMACアドレスが分かりません。これを調べるのがARP(Address Resolution Protocol:アドレス解決プロトコル)の役割です。

 まず、各機器はARP君ノート、つまりARPテーブル(ARPキャッシュ)と呼ばれるIPアドレスとMACアドレスの対応表を持っています。例えば、Windowsならばコマンドプロンプトで「arp ?a」で表示させることができます。

図3-7 WindowsでのARPテーブル

 「Internet Address」がIPアドレス、「Physical Address」がMACアドレス、「Type」は手動入力(Static)かARPによる解決(Dynamic)かを示しています。

 MACアドレスはNICに付属するアドレスのためNICの故障や、機器にIPアドレスを付け直した場合、IPアドレスとMACアドレスの対応が変更されます。

 そのため、ARPテーブルに記述されている対応は一定時間ごとにクリアされます。

 ARPテーブルに対応が記述されていない場合、IPアドレスに対応するMACアドレスを調べる必要があります。これは「ARP要求(ARP Request)」と「ARP応答(ARP Reply)」と呼ばれるARPパケットをやりとりすることで行います。

図3-8 ARPパケット
種類……イーサネットを示す値を入れる
プロトコル……IPを示す値を入れる
MACアドレス長……6バイトなので、6を入れる
上位アドレス長……IPアドレスを使うので、IPアドレスの長さの4(バイト)を入れる
動作……「ARP要求」か「ARP応答」を識別する値を入れる
送信元MACアドレス……「ARP要求」か「ARP応答」を送信する機器のMACアドレス
送信元IPアドレス……「ARP要求」か「ARP応答」を送信する機器のIPアドレス
あて先MACアドレス……「ARP要求」ならばまだ分からないのでゼロ。「ARP応答」ならば「ARP要求」を送ってきたMACアドレス
あて先IPアドレス……「ARP要求」ならばMACアドレスとの対応を知りたいIPアドレス。「ARP応答」ならば「ARP要求」を送ってきたIPアドレス

 ARP要求は、LAN内全員あて(ブロードキャスト:Broadcast)で行われます。あて先のMACアドレスが「ff-ff-ff-ff-ff-ff」はこのブロードキャストを示します。ARP要求を受け取った機器は、ARPパケットに書かれているIPアドレスが自身のIPアドレスでないならば無視し、自身のIPアドレスならば次のことを行います。

  • 送信元のMACアドレスとIPアドレスを、自身のARPテーブルに記述する
  • ARP応答を送信元に返す
図3-9 ARP要求とARP応答

 これにより、ARPテーブルが更新され、あて先のIPアドレスとMACアドレスの対応が分かり、フレームを送信することが可能になります。


ビントサーフ市の交通事情
  3-1 イーサ配送君の運送票
3-2 ARP君のお仕事
  3-3 市内での配送手順
3-4 おさらい 〜 実際のネットワークに当てはめると


関連記事
  ネットワーク・コマンド/ツール群の活用法を大紹介
連載 ネット・コマンドでトラブル解決
あなたのLANは健康ですか? 現状改善から一歩進んだ構築術まで
特集:基礎から学ぶネットワーク構築

レスポンスの悪いネットワークシステム どう検証し、解決していくか?
特集:ネットワークトラブルを解決する
運用管理に必須のツール/コマンド群
連載:24×365の運用管理

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間