資格道場 › レッスン一覧 › ネットワーク
ネットワーク・5/11・12分

ルータの転送と ARP による MAC アドレス解決

ゴール

ルータは宛先IPアドレスで経路を決めること、ARPはIPアドレスからMACアドレスを調べる仕組みであることを区別して説明できるようにする。ルータをまたぐ通信で、宛先MACと宛先IPがそれぞれどこを指すかを答えられるようにする。arp・ping・ipconfigなどのコマンドを、目的から選べるようにする。

「どの機器が、どの層の、どのアドレスを見るか」は、ネットワーク分野で毎年のように選択肢を入れ替えて出される定番の論点です。ここを押さえると、ルータ・スイッチ・ARP・pingの問題を一つの考え方でまとめて解けます。

このレッスンで稽古する(用語チェック・過去問)

結論:ルータはIP、スイッチはMAC、ARPがその2つをつなぐ

ルータは宛先IPアドレスで次の転送先を決めます。MACアドレスでは経路を決めません。

  • IPアドレス:ネットワーク全体での住所。最終的な相手を指し、途中で変わらない。
  • MACアドレス:LANケーブルやWi-Fiの口(NIC=ネットワークカード)ごとに付いた固有番号。同じLANの中で、次に渡す相手を指す。
  • ARP:同じLANの中で「このIPアドレスを持っている機器のMACアドレスは?」と調べる仕組み。

前のレッスンのサブネットマスクで「相手が同じネットワークか」を判定したら、次は「誰に渡すか(MAC)」をARPで調べる、という流れです。

ルータの仕事:宛先IPアドレスとルーティングテーブルで経路を決める

ルータは、届いたパケット(データの小包)の宛先IPアドレスを読みます。それをルーティングテーブル(宛先ネットワークごとに次の転送先を書いた表)と突き合わせて、出す口を1つ選びます。宛先IPを見るのは、相手がどのネットワークにいるかがIPアドレスに含まれているからです。

たとえ:郵便局の仕分けは、封筒に書かれた届け先の住所で行います。差出人の住所や、配達員が持っている車の番号では仕分けません。

そのため、3台のルータが専用線でつながった図の問題(menjo_20160724#33)では、「宛先端末のIPアドレスに基づいて、ルータbだけに中継する」が正解になります。

  • 全部のルータに送る:ルータは経路を選ぶ機器なので、ばらまかない
  • MACアドレスに基づく:スイッチやブリッジの動作

機器と層の比較表(この表が一番よく出ます)

機器 OSI参照モデルの層 見る情報 何をするか
リピータ・ハブ 第1層 物理層 電気信号 信号を増幅して全部の口に流す
ブリッジ・L2スイッチ 第2層 データリンク層 MACアドレス MACアドレステーブルを見て、該当する口だけに中継する(宛先が分からなければ全部の口に流す)
ルータ 第3層 ネットワーク層 宛先IPアドレス ネットワーク同士をつなぎ、転送経路を決める。媒体やアクセス方式が違うネットワークもつなげる
ゲートウェイ 第4〜7層 トランスポート層〜アプリケーション層 プロトコル全体 異なるプロトコルを変換する

OSI参照モデルは、通信の役割を7段に分けた教科書上の整理です。ルータは下から3段目のネットワーク層と覚えます。

ルータは宛先IPで出す口を1つ選ぶパケット宛先IP=宛先端末ルータa宛先IPアドレスを読みルーティングテーブルと照合×ルータb宛先端末へ中継するルータc送らない全部のルータにはばらまかない
ルータaは宛先IPアドレスをルーティングテーブルと照合し、ルータbだけに中継する(全部のルータにはばらまかない)。

ARP:IPアドレスからMACアドレスを求める

ARP(アープ)は、IPアドレスからMACアドレスを得るプロトコルです。パソコンが送り先のIPアドレスを知っていても、LANの中で実際に届けるにはMACアドレスが必要です。そこでARPを使います。

動き方

  1. LAN全員に「IPアドレス192.168.1.10の人、MACアドレスを教えて」と一斉に問い合わせる(ブロードキャスト=全員あての送信)。
  2. 該当する機器だけが自分のMACアドレスを返す。
  3. 聞いた側は、IPとMACの組をしばらく覚えておく(ARPキャッシュ)。

たとえ:会議室で「田中さんはどなたですか?」と呼びかけ、手を挙げた人の顔を覚えておくのに似ています。名前がIPアドレス、顔がMACアドレスです。

名前の似たプロトコルの比較表

プロトコル 何から 何を得る/何をする
ARP IPアドレス MACアドレスを得る
RARP MACアドレス IPアドレスを得る(ARPの逆)
DNS ホスト名(ドメイン名) IPアドレスを得る(逆引きならIP→名前)
DHCP (起動した端末の要求) IPアドレスなどの設定を自動で配る
BOOTP (起動した端末の要求) IPアドレスを配る。DHCPの前身
ICMP — 通信のエラーや状態を知らせる。pingが使う

覚え方:ARPの「A」はAddress Resolution(アドレス解決)。IPを手がかりにMACを引く方向だけを覚え、逆方向はR(Reverse=逆)が付いたRARPと覚えます。

ARP:全員に聞き、本人だけが答えるパソコンIPは知っている別のIP返事しない192.168.1.10自分のMACを返す別のIP返事しない①①①②③ARPキャッシュ192.168.1.10 ↔ MAC① 全員に問い合わせ(ブロードキャスト)② 192.168.1.10の機器だけMACを返す③ IPとMACの組をARPキャッシュに覚える
①パソコンが全員あてに問い合わせ、②192.168.1.10を持つ機器だけがMACアドレスを返し、③パソコンはその組をARPキャッシュに覚える。

ルータをまたぐときの宛先:MACは次の機器、IPは最終の相手

別のネットワークにいる相手へ送るとき、ARPで調べるのは相手のMACアドレスではなく、ルータ(デフォルトゲートウェイ)のMACアドレスです。相手は別のLANにいるので、自分のLANからは直接届かないためです。

部分 宛先 途中で変わるか
イーサネットフレームの宛先MAC 次に渡す機器(同じLAN内のルータ) ルータを通るたびに書き換わる
IPデータグラムの宛先IP 最終的な相手 変わらない

たとえ:宅配便の伝票には最終の届け先(IP)が書いてあり、最後まで変わりません。一方で、区間ごとに荷物を運ぶトラックの行き先(MAC)は「次の営業所」で、区間ごとに変わります。

flowchart LR
  A["ホストA (MAC1/IP1)"] -->|"LAN1: 宛先MAC3 / 宛先IP2"| R["ルータ (MAC3/IP3 | MAC4/IP4)"]
  R -->|"LAN2: 宛先MAC2 / 宛先IP2"| B["ホストB (MAC2/IP2)"]
MACは区間ごと、IPは最後まで同じホストAMAC1/IP1ルータMAC3 | MAC4ホストBMAC2/IP2LAN1LAN2LAN1を通る時宛先MAC:MAC3宛先IP:IP2LAN2を通る時宛先MAC:MAC2宛先IP:IP2宛先MAC:次の機器(区間ごとに変わる)宛先IP:最終の相手(最後まで同じ)
ルータをまたぐと宛先MACはLAN1ではMAC3、LAN2ではMAC2に書き換わるが、宛先IPはどちらもIP2のまま変わらない。

コマンドの使い分け:arp・ping・ipconfig・netstat

試験では「目的に合うコマンド」を選ばせます。pingが最頻出(本試験系3回)です。

コマンド 何をするか 使う場面
ping ICMPのエコー要求を送り、エコー応答が返るかで疎通を確認する 相手とつながるか確かめる
arp ARPキャッシュ(IPとMACの対応)を表示・操作する 同じLANの機器のMACアドレスを調べる
ipconfig 自分のPCのIPアドレス・サブネットマスクなどを表示する(Windows) 自分の設定を見る
netstat 自分のPCの通信の接続状況やポートを表示する どこと接続中かを見る
  • pingの選択肢には、BOOTP・DHCP(IPアドレスの自動割当て)やMIB(SNMPという監視の仕組みで管理する情報の一覧)が並びます。疎通確認ではありません。
  • arpの問題(2018h30h_am#33)は「プリンタを直前に使った」という条件が鍵です。直前に通信したので、プリンタのIPとMACの組がARPキャッシュに残っており、arpコマンドで表示できます。
  • echoは文字を表示するだけのコマンドで、疎通確認には使えません。

ARPを利用した端末認証(少数出題)

ARPで得られるのはMACアドレスなので、事前に登録したMACアドレスの端末だけ通信を許可するという判定ができます。インストール済みのソフト、OSのパッチ、ウイルス定義ファイルの状態はARPでは分からないので、それらの選択肢は誤りです。

例題 1

ルータ越えでLAN1を流れるパケットの宛先を答える

図のような IP ネットワークの LAN 環境で,ホスト A からホスト B にパケットを送信する。LAN 1 において,パケット内のイーサネットフレームの宛先と IP データグラムの宛先の組合せとして,適切なものはどれか。ここで,図中の MACn/IPm はホスト又はルータがもつインタフェースの MAC アドレスと IP アドレスを示す。
構成図: LAN 1 にホスト A(MAC1/IP1)とルータの一方のインタフェース(MAC3/IP3)が接続。LAN 2 にホスト B(MAC2/IP2)とルータのもう一方のインタフェース(MAC4/IP4)が接続。ルータが LAN 1 と LAN 2 を中継する。

ア イーサネットフレームの宛先: MAC2,IP データグラムの宛先: IP2
イ イーサネットフレームの宛先: MAC2,IP データグラムの宛先: IP3
ウ イーサネットフレームの宛先: MAC3,IP データグラムの宛先: IP2
エ イーサネットフレームの宛先: MAC3,IP データグラムの宛先: IP3

出典:基本情報技術者試験 科目A免除 修了試験 20221211 実施分 問33

解き方と答えを見る
  1. 手順1:送信元と宛先を確認する。ホストA(MAC1/IP1)はLAN1、ホストB(MAC2/IP2)はLAN2にいる。別のネットワークなので、ルータを経由する。
  2. 手順2:IPデータグラムの宛先を決める。IPの宛先は最終的な相手なので、ホストBのIP2。途中のルータのIP3にはならない。→ この時点でイとエ(IP3)が消える。
  3. 手順3:イーサネットフレームの宛先を決める。MACの宛先は同じLAN1の中で次に渡す機器。LAN1にいて次に受け取るのはルータのLAN1側の口なので、MAC3。ホストBのMAC2はLAN1には存在しないので、直接は届かない。→ アが消える。
  4. 手順4:組み合わせると、フレームの宛先MAC3、IPの宛先IP2。
  5. 補足:ルータを通過してLAN2に出ると、フレームの宛先はMAC2(送信元はMAC4)に書き換わる。IPの宛先IP2は最後まで変わらない。

答え:ウ(フレームの宛先:MAC3、IPデータグラムの宛先:IP2)

要点(試験直前に読む)

  • ルータはネットワーク層の機器で、宛先IPアドレスとルーティングテーブルで経路を決める。MACでも発信元IPでもない。
  • 機器と層:ハブ=物理層、L2スイッチ・ブリッジ=データリンク層(MAC)、ルータ=ネットワーク層(IP)、ゲートウェイ=トランスポート層以上(プロトコル変換)。
  • ARPはIP→MAC。RARPはMAC→IP、DNSは名前→IP、DHCPは設定の自動配布。
  • ルータをまたぐとき、宛先MACは次の機器(ルータ)、宛先IPは最終の相手で途中で変わらない。
  • 疎通確認はping(ICMPのエコー要求・応答)。同じLANの機器のMACを調べるならarp(ARPキャッシュを表示)。
  • ARPを利用した認証で判定できるのは、MACアドレスが登録済みかどうかだけ。

ひっかけ

  • 「MACアドレスに基づいて中継」はスイッチ・ブリッジの説明。ルータの問題で見たら外す。
  • 「MACアドレステーブルで中継先を判断」はL2スイッチ、「データリンク層で接続」はブリッジ、「トランスポート層以上でプロトコル変換」はゲートウェイ。ルータの正解は「IPアドレスを識別して経路を決定」。
  • ARPの説明問題では、逆向きのRARP(MAC→IP)と、DNS(名前↔IP)が並ぶ。矢印の向きを確認する。
  • ルータ越えの問題で「フレームの宛先=相手のMAC」を選ばせる。相手は別のLANにいるので、MACは同じLAN内のルータの口になる。
  • 疎通確認の問題で、BOOTP・DHCP(アドレス配布)、MIB(管理情報)、arp・ipconfigが並ぶ。疎通ならping一択。

用語(16)

ルータ ルータ(router)
ネットワーク層でネットワーク同士をつなぎ、宛先IPアドレスを見てパケットの転送経路を決める機器。
⚠ L2スイッチ・ブリッジはデータリンク層でMACアドレスを見る。「IPで経路決定」とあればルータ。
ルーティングテーブル ルーティングテーブル(経路表)
宛先ネットワークごとに、次にどの機器・どの口へ転送するかを書いた、ルータが持つ表。
⚠ MACアドレステーブルはL2スイッチが持つ、MACアドレスとポートの対応表。
IPアドレス IP(Internet Protocol)アドレス
ネットワーク全体で通信相手を特定する論理的な住所で、パケットの最終的な宛先を表す。
⚠ MACアドレスは機器の口ごとの固有番号で、同じLAN内の次の相手を表す。
MACアドレス MAC(Media Access Control)アドレス
NIC(ネットワークカード)ごとに割り当てられた48ビットの固有番号で、同じLAN内の配送に使う。
⚠ IPアドレスと違い、ルータを通過するたびにフレームの宛先MACは書き換わる。
ARP Address Resolution Protocol
同じLANで問い合わせを一斉に送り、IPアドレスに対応するMACアドレスを得るプロトコル。
⚠ RARPは逆にMAC→IP。DNSはホスト名→IP。
RARP Reverse Address Resolution Protocol
MACアドレスから自分のIPアドレスを得るためのプロトコル。
⚠ ARPの逆方向。Reverse(逆)のRと覚える。
ARPキャッシュ ARPキャッシュ
ARPで調べたIPアドレスとMACアドレスの対応を、端末が一定時間覚えておく表。
arpコマンド arp
ARPキャッシュの中身を表示・操作し、同じLANの機器のMACアドレスを確認するコマンド。
⚠ ipconfigは自分のPCの設定を表示するだけで、他の機器のMACは分からない。
ping ピング
ICMPのエコー要求を送り、エコー応答が返るかで相手との疎通を確認するコマンド。
⚠ arpは対応表の表示、ipconfigは自分の設定の表示。疎通確認ならping。
ICMP Internet Control Message Protocol
IP通信のエラー(到達不能など)や状態を知らせるためのプロトコルで、pingが利用する。
⚠ pingはコマンド名、ICMPはその中で使われるプロトコル名。
ipconfig アイピーコンフィグ
Windowsで、自分のPCのIPアドレス・サブネットマスク・デフォルトゲートウェイなどを表示するコマンド。
⚠ 他の機器のMACを調べるならarp。
netstat ネットスタット(network statistics)
自分のPCの通信の接続状況や使用中のポートを表示するコマンド。
⚠ 疎通確認(ping)やMAC確認(arp)とは目的が違う。
DHCP Dynamic Host Configuration Protocol
ネットワークにつないだ端末に、IPアドレスなどの設定を自動で配るプロトコル。
⚠ BOOTPはその前身。どちらも疎通確認やアドレス解決ではない。
MIB Management Information Base
SNMPでネットワーク機器を監視するときに扱う、管理情報の定義の集まり。
⚠ 疎通確認の選択肢に紛れ込む。pingとは無関係。
ブロードキャスト ブロードキャスト(broadcast)
同じネットワーク内の全員に向けてデータを一斉送信すること。ARPの問い合わせで使う。
デフォルトゲートウェイ デフォルトゲートウェイ
別のネットワークへ送るときに、端末が最初にパケットを渡すルータ。
⚠ 機器の種類としての「ゲートウェイ」(上位層でプロトコルを変換する機器)とは別物。

このレッスンの過去問

このレッスンで稽古する