ネットワークがクイズでわかる! 誰が正解?「TCP/IP」 第5回
ARPの限界を理解している回答者を当てよう
IPアドレスからMACアドレスを調べるARPはどこまで有効?
2011年08月24日 06時00分更新
クイズ「誰が正解?」の時間がやってきました。このクイズでは、ケンイチ君、いずみちゃん、竹田君の3人が私の質問に答えます。ただし、正解なのは1人だけですよ。クイズのテーマは「TCP/IP」、ネットワークの基本です。さてさて、誰が正解か当てられますか?
誰が正解?(間違いが2人いますので要注意!)
ARPでIPアドレスからMACアドレスを調べる
Ethernetで構築されたネットワークでは、IPパケットを「Ethernetフレーム」と呼ばれるデータフォーマットで送受信する(図1)。Ethernetフレームのヘッダは、おもに宛先および送信元のMACアドレス(Media Access Control address)と上位プロトコルタイプの3つのフィールドで構成されている。Ethernetカードには固有のMACアドレスが設定されており、EthernetはこのMACアドレス情報を使ってEthernetフレームの送受信を行なうのである。
一方、IPではIPアドレスが使用される。つまり、Ethernetを使ったIPでの通信はIPアドレスとMACアドレスの2つのアドレスを使って行なわれることになる。そのため、EthernetでIP通信をするには、その都度宛先IPアドレスから宛先MACアドレスを調べる手段が必要となる。
このMACアドレスを調べるプロトコルが「ARP(Address Resolution Protocol:アープ)」である。ARPでは、MACアドレスを知りたいIPアドレスをブロードキャスト(全ホスト宛の通信)ですべての隣接ホストに送信する。そして、該当するIPアドレスを持つホストから応答としてMACアドレスを受け取る(図2)
ルータを経由したパケット転送
ここでポイントとなるのは、図3のように2つのネットワークがあり、宛先ホストがルータをまたいだネットワークにある場合だ。IPアドレスではネットワーク(どこの)とホスト(誰か)を示すことができるので、複数のネットワークをまたいでも宛先を指定することができる。またIPネットワークでは、ルータにパケットを転送させることで、異なるネットワークにIPパケットを送ることが可能だ。
しかし、Ethernetのフレームはルータを越えられず、ハブやスイッチで接続されている隣接ノードとしか通信できない。そのうえ、ARP要求で使うIPのブロードキャストの通信は、ルータを越えられないという制約がある。つまり、EthernetのブロードキャストでARP要求を送信している以上、ルータを越えてARP要求を送ることはできないのだ。
そこで、ルータ(図のGW)のIPアドレスを調べ(各ホストにデフォルトゲートウェイとして指定されている)、さらにARPでルータのMACアドレスを調べる。そして、データフレームをルータ宛に送信する。これを図3で説明すると、172.16.1.153から10.0.0.100にIPパケットを送るのに、いったんIPパケットをルータに送るということになる。
ここでルータは、受け取ったEthernetフレームからIPパケットを取り出すが、そのIPヘッダに書かれた宛先がルータではないため、あらためてその宛先IPアドレスへパケットを転送することになる。ここでもルータから宛先IPアドレスについてARPを実行してMACアドレスを調べる。そして、Ethernetフレームを作り直して、宛先の10.0.0.100にIPパケットを届ける。
このようにIPパケットの送信では、ARPというプロトコルを使うことで、MACアドレスを調べながら、IPパケットを転送していくのである。
3人ともMACアドレスの解決にARPを使うことでは一致しているが、ケンイチ君といずみちゃんのARPの説明は誤っている。ケンイチくんは、他のネットワークのMACアドレスもARPで調べられるとしているのが間違い。ARP要求はEthernetのブロードキャストで送るので、他のネットワークにARP要求を送ることはできない。いずみちゃんは、ARP要求の宛先をスイッチとしているところが間違い。またARP要求をルータで転送するというところも誤っている。正解は竹田君だ。
本記事は、ネットワークマガジン2007年8月号の特集1『クイズでわかる 誰が正解?「TCP/IP」』を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。 |
この連載の記事
-
第8回
ネットワーク
名前解決の手法で正しいのはだれ? -
第7回
ネットワーク
スイッチのオートネゴシエーションは何をしてくれるの? -
第6回
ネットワーク
IPアドレス未割り当ての端末とDHCPサーバの通信方法とは? -
第4回
ネットワーク
データ受信時の「ACK番号」はどう増える? -
第3回
ネットワーク
「スリーウェイハンドシェイク」の手順、わかっていますか? -
第2回
ネットワーク
「特別なIPアドレス」を正しくわかっているのは誰? -
第1回
ネットワーク
クイズのはじまりは「クラスとサブネット」 -
ネットワーク
ネットワークがクイズでわかる! 誰が正解?「TCP/IP」<目次> - この連載の一覧へ