ルーティングとは?ルーターがパケットを転送する仕組みを図解で解説

  • URLをコピーしました!

前の記事では、 AccessポートとTrunkポートを使ってVLANを扱う仕組み を学びました。

VLAN 10とVLAN 20のようにLANを分割すると、 それぞれは別のL2ネットワークとして扱われます。

VLAN 10 192.168.10.0/24
💻 PC-A
192.168.10.10
L2だけでは
越えられない
VLAN 20 192.168.20.0/24
💻 PC-B
192.168.20.10

PC-AからPC-Bへ通信したい場合、 MACアドレステーブルやTrunkポートだけでは 通信を成立させられません。

192.168.10.0/24から192.168.20.0/24のような
別のIPネットワークへ、パケットはどうやって届けられるのでしょうか?

そこで必要になるのが ルーティング(Routing)です。

🌐 NETWORK INTERMEDIATE

この記事はネットワーク中級講座の一部です。 学習順を確認したい場合は講座一覧から確認できます。

ネットワーク中級講座を見る →
LESSON GOAL この記事のゴール

ルーティングという言葉を覚えるだけではなく、 「端末が別ネットワーク宛てのパケットをデフォルトゲートウェイへ送り、 ルーターが宛先IPアドレスとルーティングテーブルを確認して 次の転送先を決定する」 という流れを説明できる状態を目指します。

目次

ルーティングとは?

ルーティングとは、 宛先IPアドレスをもとに、 パケットをどのネットワークへ転送するか決める処理 です。

この処理を行う代表的なネットワーク機器が ルーター(Router)です。

NETWORK A 192.168.10.0/24
📡 Router 宛先IPから経路を判断
NETWORK B 192.168.20.0/24
L2はMACアドレス、L3はIPアドレス

L2スイッチは主に 宛先MACアドレスを利用してフレームを転送します。 一方、ルーターは 宛先IPアドレスを利用してパケットの転送先を判断します。

L2スイッチとルーターの違い

L2 SWITCH MACアドレスで判断
Ethernet Frame

同一L2ネットワーク内で フレームを転送する。

ROUTER / L3 IPアドレスで判断
IP Packet

異なるIPネットワーク間で パケットを転送する。

Layer 2 MAC → Switching
Layer 3 IP → Routing

PCはまず「同じネットワークか、別ネットワークか」を判断する

ルーターへパケットを送る前に、 PC自身が重要な判断を行います。

それが、 宛先IPアドレスが自分と同じIPネットワークにあるかどうか です。

たとえばPC-Aが次の設定だったとします。

PC-A
IP ADDRESS 192.168.10.10
SUBNET MASK 255.255.255.0
DEFAULT GATEWAY 192.168.10.1

PC-Aから 192.168.10.20 へ通信する場合は、 同じ192.168.10.0/24に所属しています。

SAME NETWORK 192.168.10.20

同一ネットワーク
→ 直接L2通信

DIFFERENT NETWORK 192.168.20.20

別ネットワーク
→ Gatewayへ送る

別ネットワークならデフォルトゲートウェイへ

PCはサブネットマスクを利用して宛先ネットワークを判断し、 宛先が別ネットワークなら デフォルトゲートウェイへフレームを送信 します。

デフォルトゲートウェイとは?

デフォルトゲートウェイとは、 端末から見た 別ネットワークへ通信するときの出口 です。

💻 PC-A 192.168.10.10
📡 Default Gateway 192.168.10.1
Other Networks 192.168.20.0/24
Internet etc.

PC-A自身は、 インターネットや他のすべてのネットワークへの 詳細な経路を知る必要はありません。

「自分のネットワーク以外なら、 まずこのルーターへ渡す」 という情報として デフォルトゲートウェイを利用します。

別ネットワーク宛てでもARPする相手は最終宛先ではない

ここは初級で学習したARPと ルーティングがつながる重要なポイントです。

PC-Aから192.168.20.20へ通信するとします。

DESTINATION IP 192.168.20.20

PC-Aは192.168.20.20のMACアドレスを ARPで調べる?

答えは、 通常は調べません。

192.168.20.20は別ネットワークに存在するため、 PC-AがL2で直接届ける相手ではありません。

PC-Aが必要なのは、 デフォルトゲートウェイ192.168.10.1のMACアドレス です。

FINAL DESTINATION IP:192.168.20.20
でも
ARP TARGET 192.168.10.1

GatewayのMACを取得

IPの宛先とEthernetの宛先は同じとは限らない

別ネットワークへ通信するとき、 IPパケットの最終宛先は192.168.20.20でも、 最初のEthernetフレームの宛先MACは デフォルトゲートウェイのMACアドレス になります。

PCからルーターへ送られるフレームを見てみよう

PC-AからPC-Bへ送る通信を例にします。

PC-A 192.168.10.10 MAC:AA-AA
Router 192.168.10.1 MAC:RR-10
PC-B 192.168.20.20 MAC:BB-BB

PC-Aから最初に送られるデータは、 概念的には次のようになります。

ETHERNET
DEST MAC RR-10
SRC MAC AA-AA
IP
SRC IP 192.168.10.10
DEST IP 192.168.20.20

ここで注目してください。

Ethernet Destination Router MAC RR-10
IP Destination Final Host IP 192.168.20.20

ルーターは受信したパケットの宛先IPアドレスを見る

フレームを受信したルーターは、 自分宛てのEthernetフレームであることを確認し、 Ethernetヘッダーを処理します。

その内側にあるIPパケットを見ると、 宛先IPアドレスは 192.168.20.20です。

01 Frame受信 Destination MAC
= Router
02 L2 Header処理 IP Packetを確認
03 Destination IP 192.168.20.20
04 Route Lookup 経路を検索

ルーターはルーティングテーブルを確認する

ルーターは、 宛先IPアドレスを見ただけでは どこへ転送するべきか判断できません。

そこで利用するのが ルーティングテーブル(Routing Table) です。

DESTINATION NEXT HOP / INTERFACE
192.168.10.0/24 Gi0/0
192.168.20.0/24 Gi0/1
0.0.0.0/0 203.0.113.1

今回の宛先は192.168.20.20なので、 192.168.20.0/24に一致する経路を利用できます。

DESTINATION IP 192.168.20.20
ROUTING TABLE 192.168.20.0/24
EXIT Gi0/1
今は「宛先ネットワークを探す表」と理解すればOK

実際のルーティングテーブルでは、 Connected、Static、OSPFなどの経路情報、 Next Hop、メトリックなど多くの情報が表示されます。 詳しい読み方は次の記事で学習します。

Next Hopとは?

宛先ネットワークが、 ルーターへ直接接続されているとは限りません。

複数のルーターを経由する場合、 「次にどのルーターへ渡すか」という情報が必要です。

この次の転送先を Next Hop(ネクストホップ) と呼びます。

Router-A
Router-C
Destination

ルーターは必ずしも最終宛先までの全通信を 一度に処理するわけではありません。

自分のルーティングテーブルを見て、 次に渡すべき場所へ1ホップずつ転送 していきます。

ルーターは次のリンク用に新しいL2フレームを作る

ルーティングで非常に重要なのが、 L2ヘッダーとL3ヘッダーの扱いの違いです。

RouterがパケットをGi0/1からPC-B側へ転送するとします。

そのとき、 最初にPC-Aから届いたEthernetフレームを そのままPC-Bへ送るわけではありません。

PC-A → ROUTER
DEST MAC RR-10
SRC MAC AA-AA
ROUTING ↓ L2再作成
ROUTER → PC-B
DEST MAC BB-BB
SRC MAC RR-20

一方、IPパケットを見ると、

SOURCE IP 192.168.10.10
Router
DESTINATION IP 192.168.20.20

通常のルーティングでは、 最終的な送信元IP・宛先IPは維持されたまま転送されます。

ルーターを越えるとMACは変わる、IPは基本的に維持される

L2ヘッダー:リンクごとに作り直される
L3の送信元・宛先IP:通常のルーティングでは基本的に維持される

NATを利用する場合などはIPアドレスが変換されることもある

ここでは純粋なルーティングを理解するため、 NATなどのアドレス変換は考えません。

別ネットワークへ通信する流れを最初から確認しよう

ここまでの内容を、 PC-AからPC-Bへの通信として整理します。

01 宛先IPを確認 192.168.20.20
02 Subnet Maskで判断 別Network
03 Default Gatewayへ 192.168.10.1
04 ARP GatewayのMAC取得
05 Routerが受信 Destination IP確認
06 Routing Table 経路検索
07 次のL2 Frame作成 新しいMAC Address
08 PC-Bへ到着 192.168.20.20

ここで実際に動かしてみよう:ルーティング通信シミュレーター

PC-Aから別ネットワークのPC-Bへ パケットが届くまでを1ステップずつ確認してみましょう。

INTERACTIVE LAB

Packet Routing Simulator

L3 ROUTING
💻 PC-A 192.168.10.10
📡 Router .10.1 / .20.1
💻 PC-B 192.168.20.20
1 Judge
2 ARP
3 Gateway
4 Route
5 Forward
6 Arrival
CURRENT PACKET
L2 MAC:未決定
L3 192.168.10.10 → 192.168.20.20
STEP 1

宛先が同じネットワークか確認

PC-Aは自分のIPアドレス・サブネットマスクと宛先192.168.20.20を比較します。 宛先は192.168.10.0/24ではないため、別ネットワークだと判断します。

Destination 192.168.20.20 → DIFFERENT NETWORK

理解度チェック:この通信はGatewayへ送る?

PCの設定と宛先IPアドレスから、 直接通信するのかデフォルトゲートウェイへ送るのか判断してみましょう。

PC CONFIG IP:192.168.10.50/24 Default Gateway:192.168.10.1
CHECK

通信方法を選択してください

PCは192.168.10.50/24です。 宛先が192.168.10.0/24内かどうか考えてみましょう。

実際のルーターでもルーティングテーブルを確認できる

Cisco IOSでは、 次のコマンドでIPv4ルーティングテーブルを確認できます。

Cisco IOS
Router> enable
Router# show ip route

たとえば、次のような情報が表示されます。

C    192.168.10.0/24 is directly connected, GigabitEthernet0/0
C    192.168.20.0/24 is directly connected, GigabitEthernet0/1
S*   0.0.0.0/0 [1/0] via 203.0.113.1

この表示には、 宛先ネットワーク、経路の種類、Next Hop、出力インターフェース などの情報が含まれています。

しかし、この時点では すべてを暗記する必要はありません。

NEXT LESSON PREVIEW 「C」「S」「O」などの文字は何を意味する?
複数の経路があったらルーターはどれを使う?

次の記事では、 実際のルーティングテーブルを使って 1行ずつ読み解いていきます。

ルーティングはトラブルシューティングでも重要

「同じLANでは通信できるのに、 別ネットワークへ通信できない」 という障害では、 ルーティングが重要な確認ポイントになります。

CHECK 01 Default Gatewayは正しい?

端末側に誤ったGatewayが設定されていると、 別ネットワークへパケットを渡せません。

CHECK 02 ルートは存在する?

ルーターが宛先ネットワークへの経路を 持っているか確認します。

CHECK 03 戻りの経路はある?

行きだけでなく、 応答パケットが戻るための経路も重要です。

確認問題:ルーティングの基本を理解できたか確認しよう

QUESTION 01

ルーターがパケットの転送先を判断するとき、 主に確認する情報はどれですか?

正解:B

ルーターは宛先IPアドレスをもとに ルーティングテーブルを検索し、 パケットの転送先を決定します。

QUESTION 02

PCから別IPネットワークへ通信するとき、 最初にEthernetフレームを送る代表的な相手は誰ですか?

正解:C

宛先が別ネットワークの場合、 PCはデフォルトゲートウェイのMACアドレスを利用して ルーターへフレームを送信します。

QUESTION 03

通常のルーティングでルーターを1台越えた場合、 正しい説明はどれですか?

正解:A

ルーターは次のリンクへ転送する際に 新しいL2フレームを作成します。 一方、通常のルーティングでは最終的な送信元・宛先IPは基本的に維持されます。

YOUR SCORE 0 / 3

3問に挑戦してみましょう。

まとめ

01

ルーティングは 宛先IPアドレスをもとにパケットの転送先を決める仕組み

02

PCはサブネットマスクから同一・別ネットワークを判断し、 別ネットワークなら デフォルトゲートウェイへ送信 する

03

ルーターは宛先IPを ルーティングテーブル と照合して転送先を決める

04

次に転送するルーターなどを Next Hop と呼ぶ

05

ルーターを越えると L2のMACアドレスはリンクごとに変化するが、 通常のルーティングでは送信元・宛先IPは基本的に維持される

NEXT LESSON

次は「ルーティングテーブルの見方」を理解しましょう

ルーターが宛先IPアドレスを確認し、 ルーティングテーブルから転送先を決めることは理解できました。

しかし、実際のルーティングテーブルを見ると、 C・L・S・O、Next Hop、Administrative Distance、 Metric、Default Route など多くの情報が表示されます。

また、1つの宛先に複数の経路が存在した場合、 ルーターはどの経路を優先するのか という疑問もあります。

次の記事では、 実際のルーティングテーブルを1行ずつ読みながら、 「このパケットはどこへ転送される?」 を自分で判断できる状態を目指します。

ルーティングテーブルの見方を理解する
NETWORK INTERMEDIATE

ネットワーク中級講座の一覧へ戻る

学習順を確認したい場合は、 ネットワーク中級講座の一覧ページへ戻れます。

← ネットワーク中級講座へ戻る
目次