ルータ
異なるIPネットワークの間をつなぎ、OSI基本参照モデルのネットワーク層でパケットを中継する装置である。受け取ったパケットの宛先IPアドレスを経路表と照合して次の転送先を決める。ブロードキャストを通常は別のネットワークへ中継せず、ブロードキャストドメインを分割する。
イマシルちゃんの解説
会社ではフロアごとにIPネットワークを分けることがあるんだ。
ルータは、そうした異なるネットワーク同士をつなぎ、データを小分けにしたパケットを中継する装置だよ。
パケットを受け取ると宛先を示すIPアドレスを見て、経路表という道案内の表から次の転送先を選ぶの。
この中継を何台ものルータが繰り返し、遠くのネットワークへバケツリレーで運ぶんだ。
一方、LAN内の全員へ送るブロードキャストは、通常そのLANの外へ中継しないよ。
こうしてネットワーク間の通信をつなぎながら、全員宛ての通信が広がる範囲を区切れるんだ。
この解説はわかりやすかったですか?
より深い解説
定義と位置付け
ルータは、複数のIPネットワークを接続し、IPパケットを宛先へ向けて中継する装置である。IPv4ルータの要件をまとめたRFC 1812は、ネットワーク同士を結ぶIPデータグラムの中継装置をルータ(IPルータ)と呼び、中継の際にIPヘッダーを調べるものとしている。
経路を選んで中継する機能は、OSI基本参照モデルではネットワーク層の役割である。データリンク層までの中継装置と比べると、どの情報を見て中継先を決めるかが違う。
| 中継装置 | 動作する層 | 中継の判断に使う情報 |
|---|---|---|
| リピータ、リピータハブ | 物理層 | 使わない(信号を増幅・整形して全ポートへ流す) |
| ブリッジ、レイヤ2スイッチ | データリンク層 | 宛先のMACアドレス |
| ルータ | ネットワーク層 | 宛先のIPアドレスと経路表 |
この違いから、ルータを越えると「同じネットワークの中の通信」ではなくなる。同じネットワークに属する機器は、データリンク層のフレームで直接届け合える。別のネットワークの相手へは、ルータに中継を任せなければならない。端末が最初に中継を頼むルータを、その端末のデフォルトゲートウェイと呼ぶ。
OSI基本参照モデルの各層の役割を問う問題では、「経路選択と中継」はネットワーク層の機能である。トランスポート層の機能(端末間の品質の差を補って確実に届ける機能など)と取り違えないようにする。
経路表の中身
ルータは、宛先ネットワークごとに「どこへ送ればよいか」をまとめた表を持つ。これを経路表(ルーティングテーブル)という。主な項目は次のとおりである。
| 項目 | 内容 | 例 |
|---|---|---|
| 宛先ネットワーク | ネットワークアドレスとプレフィックス長 | 192.0.2.0/24 |
| ネクストホップ | 次にパケットを渡すルータのIPアドレス | 198.51.100.2 |
| 出力インタフェース | パケットを送り出すポート | GE0/1 |
| メトリックなど | 経路の良さを表す値と、経路をどこから知ったか | OSPFのコスト10 |
ネクストホップは、最終的な宛先ではなく、次に中継を任せる隣のルータである。インターネット全体の経路を1台がすべて知っている必要はない。各ルータが次の1区間だけを正しく選べば、パケットは順に宛先へ近づく。
経路表の経路は、情報の出どころによって3種類に分けられる。
| 種類 | 登録のされ方 | 特徴 |
|---|---|---|
| 直接接続経路 | インタフェースにIPアドレスを設定し、リンクが上がると自動で載る | ネクストホップを持たず、宛先へ直接届ける |
| 静的経路 | 管理者が手で設定する | 構成が変わっても自動では変わらない |
| 動的経路 | ルーティングプロトコルで隣のルータから学習する | 障害時に経路を自動で切り替えられる |
どの経路にも一致しない宛先のために置く経路をデフォルトルートという。IPv4では0.0.0.0/0と書き、プレフィックス長が0なのですべての宛先に一致する。拠点のルータでは「社内の経路以外はすべてインターネット側のルータへ」という設定に使う。
転送先の選び方
宛先IPアドレスに一致する経路が複数あるときは、まずプレフィックス長が最も長い経路を選ぶ。これをロンゲストマッチ(最長一致)という。RFC 1812の5.2.4.3節は、宛先に一致しない経路を除く、最も長いプレフィックスを残す、メトリックなどで絞る、という順の選択手順を示している。
次の独自例で確かめる。アドレスは説明用のものである。
| 宛先ネットワーク | ネクストホップ |
|---|---|
| 10.1.0.0/16 | ルータA |
| 10.1.2.0/24 | ルータB |
| 0.0.0.0/0 | ルータC |
- 宛先10.1.2.5は三つの経路すべてに一致する。最も長い/24の経路を選び、ルータBへ送る。
- 宛先10.1.3.5は/16と0.0.0.0/0の経路に一致する。/16の経路を選び、ルータAへ送る。
- 宛先203.0.113.9は0.0.0.0/0の経路だけに一致するので、ルータCへ送る。
同じ長さの経路が複数残ったときは、メトリックや経路の優先度で絞り込む。優先度が同じ経路を複数残して、等コストで振り分ける製品もある。どの経路にも一致しなければ、ルータはパケットを捨ててICMPの宛先到達不能を送信元へ返す。
1台のルータで起きる処理
イーサネットでつながったルータがIPv4パケットを中継するときの処理を順に追う。
- フレームを受信し、FCSで誤りがないか確かめる。宛先MACアドレスが自分の受信インタフェース宛てか、ブロードキャストなどかを確認する。
- イーサネットのヘッダーを外し、中のIPパケットを取り出す。
- 宛先IPアドレスが自分宛てでなければ、中継の処理に進む。
- TTLを1減らす。0になったらパケットを捨て、送信元へICMPの時間超過(Time Exceeded)を返す。
- TTLが変わったので、IPヘッダーのチェックサムを再計算する。
- 経路表を検索し、ネクストホップと出力インタフェースを決める。
- ネクストホップのIPアドレスに対応するMACアドレスをARPで調べる。宛先が直接接続のネットワークにあれば、宛先そのもののMACアドレスを調べる。
- 新しいフレームを作って送り出す。宛先MACアドレスはネクストホップ、送信元MACアドレスは自分の出力インタフェースのものにする。
TTLとチェックサムの扱いはRFC 791に定められている。TTLは処理するたびに少なくとも1減らし、ヘッダーの値が変わるのでチェックサムは処理する地点ごとに計算し直す。TTLが0になったときにICMPを返すことは、RFC 1812の5.3.1節が求めている。
この結果、1区間ごとに書き換わる情報とそうでない情報がはっきり分かれる。
| 情報 | ルータを1台越えたとき |
|---|---|
| 送信元・宛先のIPアドレス | NATをしなければ変わらない |
| 宛先MACアドレス | 次の区間で受け取る機器のものに変わる |
| 送信元MACアドレス | ルータの出力インタフェースのものに変わる |
| TTL | 1減る |
出力先のMTUよりパケットが大きい場合、IPv4ではフラグメント化して送るか、DFビットが立っていれば捨ててICMPで知らせる。IPv6ではTTLに当たる値をホップリミットと呼び、ルータは中継のたびに1減らす。IPv6のヘッダーにはチェックサムがなく、途中のルータはフラグメント化しない(RFC 8200)。
ブロードキャストを止める働き
ARPの要求やDHCPの最初の要求は、同じネットワークの全員に宛てたブロードキャストで送る。ルータはこれを別のネットワークへ中継しない。ルータで区切られた範囲がブロードキャストの届く範囲になり、不要な通信がネットワーク全体へ広がるのを防ぐ。
この性質から、次の二つの動作が導かれる。
- 端末が別のネットワークの相手へ送るとき、ARPで調べるのは相手ではなくデフォルトゲートウェイのMACアドレスである。相手のMACアドレスを調べるのは、相手のネットワークにつながるルータである。プロキシARPを設定した場合は例外で、ルータが相手の代わりに自分のMACアドレスで応答する。
- DHCPサーバと端末の間にルータがあると、端末の要求はサーバまで届かない。ルータにDHCPリレーエージェントを設定し、要求をDHCPサーバへユニキャストで転送させる。リピータやレイヤ2スイッチだけでつないだ構成では、この設定は必要ない。
中継にかかる時間の計算
ルータはフレーム全体を受け取ってから処理し、次の区間へ送り出す。そのため経路上の時間は、区間ごとの送出時間とルータの処理時間を足して求める。次は独自の数値による例である(伝搬遅延は無視する)。
- フレーム長:1,000バイト(8,000ビット)
- 端末AとルータXの間のLAN:100Mbit/s
- ルータXとルータYの間のWAN回線:10Mbit/s
- ルータYと端末Bの間のLAN:100Mbit/s
- 1フレームの処理時間:両ルータとも0.5ミリ秒
LANの送出時間 = 8,000 ÷ 100,000,000 = 0.00008秒 = 0.08ミリ秒
WANの送出時間 = 8,000 ÷ 10,000,000 = 0.0008秒 = 0.8ミリ秒
合計 = 0.08 + 0.5 + 0.8 + 0.5 + 0.08 = 1.96ミリ秒
送出時間はLANの区間で2回、WANの区間で1回数える。ルータの処理時間もルータの台数分だけ足す。速度の遅い区間が全体の時間を大きく左右することが分かる。
レイヤ3スイッチとの比較
レイヤ3スイッチも宛先IPアドレスと経路表で中継するので、ネットワーク層の中継装置である点はルータと同じである。違いは主に製品の作りと置き場所にある。
| 観点 | ルータ | レイヤ3スイッチ |
|---|---|---|
| 主な置き場所 | 拠点の出入口、WANやインターネットとの境界 | LANの中心で、VLANの間を中継する |
| インタフェース | WAN回線向けなど種類が多い | イーサネットのポートを多数持つ |
| 得意な処理 | NAT、VPN、高度なQoSなど多様な機能 | 多数のポートの間の高速な中継 |
ただし、近年はルータもハードウェアで高速に中継し、レイヤ3スイッチも多くの機能を持つ。境目は製品によって異なるので、試験では「VLAN間の中継はレイヤ3スイッチ、拠点外との接続はルータ」のような構成上の役割で読み取る。
経路を覚えさせる方法
小さな拠点で出口が一つなら、デフォルトルートを静的に設定するだけで足りる。経路が多い、または迂回路がある構成では、OSPFなどのルーティングプロトコルで経路を自動で交換させる。この使い分けは動的ルーティングの記事で詳しく扱う。
同じ宛先への経路を複数の方法で知った場合、どれを経路表に載せるかは経路の出どころごとの優先度で決まる。RFC 1812はこれを管理上の優先度(Administrative Preference)として扱い、具体的な値は製品ごとに決まっている。この仕組みを使うと、動的経路が消えたときだけ使われる予備の静的経路(フローティングスタティック)を作れる。
ルータが1台しかないと、その故障で拠点の全端末が外部と通信できなくなる。端末から見たデフォルトゲートウェイを複数台で引き継ぐには、VRRPなどの冗長化プロトコルを使う。
障害の切り分け
「別のネットワークと通信できない」という障害は、どの区間で止まっているかを順に確かめる。pingで到達性を、tracerouteでどのルータまで届いているかを調べる。tracerouteはTTLを1ずつ増やして送り、各ルータが返す時間超過のメッセージから経路を知る仕組みである。
| 観測した状態 | 確認すること |
|---|---|
| 同じネットワークの機器とは通信できるが、外とはできない | 端末のデフォルトゲートウェイとサブネットマスクの設定、ゲートウェイのARP解決 |
| 行きのパケットは相手に届くのに応答が返らない | 相手側から送信元のネットワークへ戻る経路があるか |
| tracerouteで同じルータが交互に繰り返し現れる | 経路のループ。TTLが尽きてパケットが捨てられている |
| 小さなパケットは通るが大きなデータだけ失敗する | 経路上のMTUと、ICMPがフィルタで止められていないか |
| 特定の宛先だけ別の経路を通る | より長いプレフィックスの経路が残っていないか |
経路表は、行きと帰りで別々に確認する。行きの経路だけ設定して戻りの経路を忘れるのは、静的経路を使う構成で起こりやすい誤りである。
午後での問われ方
午後問題では、ルータの機能そのものより、構成図と経路表を読んで通信の流れを説明させる形が多い。
| 問われる場面 | 押さえるポイント |
|---|---|
| 経路表の穴埋め | 宛先ネットワーク、ネクストホップ、出力インタフェースを区間ごとに決める |
| 経路の切替え | 障害時にどの経路が残り、ロンゲストマッチや優先度でどれが選ばれるか |
| パケットの中身 | ある区間を流れるフレームの送信元・宛先MACアドレスとIPアドレスを答える |
| ブロードキャストの範囲 | DHCPリレーエージェントが必要な機器や、ARPの要求が届く範囲を答える |
| 冗長化 | デフォルトゲートウェイの冗長化と、経路の収束の時間を合わせる |
MACアドレスを問われたら、その区間の両端の機器だけを考える。IPアドレスは端末同士のまま、MACアドレスは区間ごとに変わるという原則に当てはめれば答えられる。
参考資料
- RFC 1812:Requirements for IP Version 4 Routers
- RFC 791:Internet Protocol
- RFC 8200:Internet Protocol, Version 6 (IPv6) Specification
実際の試験ではここに出る!全6問
ネットワークスペシャリスト
テクニカルエンジニア(ネットワーク)
- 午前