InfraAcademy

InfraAcademy Blog

ルーティングとは?【どうやってPCは違うネットワークに通信しているのか】

| #ネットワーク #ITパスポート講座 #ネットワーク基礎講座
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、エンジニアのryuです。

ネットワークを勉強すると、必ず出てくるのがルーティングです。しかし、ルーターが何を見て判断しているのか分かりにくいですよね。

ルーティングとは、宛先IPアドレスから転送経路を決める仕組みです。

同じネットワーク内の通信だけであれば、基本的にルーターは必要ありません。異なるネットワークへデータを届けるときに、ルーターやL3スイッチが道案内を行います。

この記事では、ルーティングテーブル、デフォルトルート、静的・動的ルーティングを初心者向けに解説します。障害時の確認順とコマンドも紹介します。

ルーティングとはデータを目的地へ届ける道案内

ルーティングは、宛先までデータを転送する経路を選ぶ処理です。

インターネットや社内環境は、複数のネットワークをルーターで接続しています。

自分のパソコンから別ネットワークのWebサーバーへアクセスすると、データは複数のルーターを経由します。それぞれのルーターが宛先を確認し、次に転送する相手を決めます。

ルーティングを郵便に例える

ルーティングは、郵便物を届ける仕組みに例えると理解しやすくなります。

東京から大阪へ手紙を送る場合、送り主は宛先を書いてポストへ投函します。その後、複数の郵便局を経由し、最終的に相手へ届きます。

郵便を使ってルーティングを説明する図

郵便局では、手紙の宛先を見て次に送る地域を判断します。

ネットワークでも、ルーターがデータに含まれる宛先IPアドレスを確認し、次に送るルーターやインターフェースを選びます。

宛先ごとに配送方向を分けるイメージ

ただし、ルーターが最初から目的地までの全経路を一度に決めるとは限りません。

各ルーターが経路情報から次の転送先を選び、データを目的地へ近づけます。

同じネットワークと異なるネットワークの通信

ルーティングを理解するには、同じネットワーク内の通信と、異なるネットワーク間の通信を分けて考えます。

たとえば、次の2台のPCは同じネットワークに所属しています。

機器 IPアドレス ネットワーク
PC1 192.168.10.10/24 192.168.10.0/24
PC2 192.168.10.20/24 192.168.10.0/24

同じネットワーク内では、ARPで相手のMACアドレスを調べ、スイッチを経由して通信します。

一方、PC2が192.168.20.20/24であれば、所属するネットワークが異なります。

機器 IPアドレス ネットワーク
PC1 192.168.10.10/24 192.168.10.0/24
PC2 192.168.20.20/24 192.168.20.0/24

この場合、PC1はデータを直接PC2へ送れません。デフォルトゲートウェイとして設定されたルーターへ渡し、別ネットワークへの転送を依頼します。

IPアドレスとサブネットから確認したい方は、次の記事も参考にしてください。

【関連記事】IPアドレスとは?仕組み・種類・確認方法を初心者向けに解説

ルーターは宛先IPアドレスを見て転送する

ルーティングを行う代表的な機器がルーターです。

L3スイッチやLinuxサーバーも、IP転送を有効にして適切な経路を設定すれば、ルーティングを行えます。

ルーターが宛先ごとに通信を振り分ける図

ルーターがデータを受け取ると、宛先IPアドレスを確認します。その後、ルーティングテーブルから一致する経路を探し、次の転送先を決定します。

転送先は、次のルーターであるネクストホップか、出力インターフェースです。

ホップとは

データが一台のルーターから次のルーターへ移動することを、1ホップと数えます。

インターネット上のサーバーへ接続するときは、複数のルーターを経由することがあります。traceroutetracertを使うと、通信経路上のルーターを確認できます。

LinuxやmacOSでは、次のように実行します。

traceroute example.com

Windowsでは、次のコマンドを利用します。

tracert example.com

途中の機器が応答しない場合は*が表示されますが、必ずしも障害とは限りません。

ルーティングテーブルとは

ルーティングテーブルは、宛先ネットワークと転送先を記録した経路表です。

ルーティングテーブルを使って転送先を選ぶ図

ルーターだけでなく、Windows、Linux、macOSなどの端末もルーティングテーブルを持っています。

ルーティングテーブルには、主に次の情報が含まれます。

項目 意味
宛先ネットワーク どのネットワーク向けの経路か
プレフィックス長 経路が対象とするネットワークの範囲
ネクストホップ 次に転送するルーターのIPアドレス
出力インターフェース データを送り出す通信口
メトリック 複数経路から選ぶための優先度
経路の種類 直結、静的、動的など

ルーティングテーブルは、192.168.10.0/24のようなネットワーク単位で経路を管理します。

Ciscoルーターでshow ip routeを確認する

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

show ip route

元記事の環境では、次のような結果が表示されています。

Ciscoルーターのルーティングテーブル

先頭の記号から、経路を学習した方法を判断できます。

コード例 経路の種類
C 直接接続されたネットワーク
L ルーター自身のインターフェースアドレス
S 管理者が設定した静的ルート
R RIPで学習した経路
O OSPFで学習した経路
D EIGRPで学習した経路
B BGPで学習した経路

たとえば、次のような表示があるとします。

S 192.168.20.0/24 [1/0] via 10.0.0.2

これは、192.168.20.0/24宛てのデータを、ネクストホップ10.0.0.2へ転送する静的ルートです。

Ciscoルーターの出力を詳しく読みたい方は、次の記事も参考にしてください。

【関連記事】show ip routeコマンドの見方とルーティングテーブルの確認方法

LinuxとWindowsでルーティングテーブルを確認する

Linuxでは、ip routeコマンドを使います。

ip route

次のような結果が表示されます。

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10

1行目は、ほかの経路に一致しなかった宛先を192.168.1.1へ送るという意味です。

2行目は、192.168.1.0/24eth0へ直接接続されており、自分のIPアドレスとして192.168.1.10を利用していることを表します。

Windowsでは、次のコマンドを利用できます。

route print

PowerShellではGet-NetRouteでも確認できます。

まず自分のパソコンで確認すると、デフォルトゲートウェイと同一ネットワーク向けの経路が登録されていることが分かります。

デフォルトルートとは

デフォルトルートは、より具体的な経路に一致しない宛先を送るための経路です。

IPv4では0.0.0.0/0、IPv6では::/0と表します。

Linuxの表示例では、次の行がデフォルトルートです。

default via 192.168.1.1 dev eth0

家庭のPCは、自宅LAN以外への通信をルーターへ送り、プロバイダー側へ転送してもらいます。

デフォルトゲートウェイとデフォルトルートは、意味が異なります。

デフォルトゲートウェイは、端末が別ネットワークへ通信するときに利用するルーターです。デフォルトルートは、ルーティングテーブルに登録された0.0.0.0/0などの経路を指します。

【関連記事】デフォルトゲートウェイとは?役割と確認方法を解説

複数の経路が一致したら最長一致で選ぶ

宛先IPアドレスが複数の経路に一致することがあります。

この場合、ルーターはプレフィックス長が最も長く、宛先をより細かく指定している経路を優先します。これを最長一致やロンゲストプレフィックスマッチと呼びます。

たとえば、次の2つの経路が登録されているとします。

10.0.0.0/8      via 192.168.1.1
10.10.0.0/16    via 192.168.1.2

宛先が10.10.20.30であれば、どちらの経路にも一致します。

しかし、/16の方が/8より具体的なので、192.168.1.2が選ばれます。

デフォルトルートは/0であり、最も広い経路です。そのため、ほかに一致する経路がない場合にだけ利用されます。

ルーティングテーブルへ経路が登録される方法

経路は、直結、静的、動的の3種類に分けられます。

経路 登録方法 特徴
直結経路 インターフェースへIPを設定する 直接つながっているネットワーク
静的ルート 管理者が手動で設定する 動きが予測しやすい
動的ルート ルーティングプロトコルで学習する 構成変更へ自動対応しやすい

直結経路

ルーターのインターフェースへIPアドレスを設定し、通信可能な状態にすると、接続ネットワークがルーティングテーブルへ登録されます。

たとえば、インターフェースに192.168.10.1/24を設定すると、192.168.10.0/24が直結経路になります。

直結していないネットワークへ通信するには、静的ルートか動的ルートが必要です。

静的ルーティング

静的ルーティングは、管理者が経路を手動で設定する方法です。

Cisco系のルーターでは、次の形式で設定します。

ip route 宛先ネットワーク サブネットマスク ネクストホップ

192.168.20.0/2410.0.0.2へ送る場合は、次のようになります。

ip route 192.168.20.0 255.255.255.0 10.0.0.2

小規模な構成や経路を固定したい場合に向きますが、機器が増えると管理が難しくなります。

【関連記事】Ciscoルーターで静的ルートを設定する方法

動的ルーティング

動的ルーティングでは、ルーター同士が経路情報を交換します。

ネットワークの追加や障害に応じて、経路を更新できます。

代表的なルーティングプロトコルを整理すると、次のようになります。

プロトコル 主な特徴
RIP ホップ数で経路を選ぶシンプルな方式
OSPF リンク状態をもとに経路を計算する
EIGRP Cisco環境で利用されてきたプロトコル
BGP 組織やプロバイダー間の経路交換に利用する

企業ネットワークではOSPF、インターネットの大規模な経路制御ではBGPが重要です。

初心者は、まず静的ルートで経路の考え方を理解し、その後にOSPFなどへ進むとよいでしょう。

ルーティングとスイッチングの違い

ルーティングとスイッチングは、どちらもデータを転送する仕組みです。

主な違いは、通信する範囲と判断に使う情報にあります。

比較項目 スイッチング ルーティング
主な範囲 同じネットワーク内 異なるネットワーク間
主に見る情報 MACアドレス IPアドレス
主な機器 L2スイッチ ルーター、L3スイッチ
参照する表 MACアドレステーブル ルーティングテーブル

同じLAN内ではスイッチがMACアドレスを見て転送し、別ネットワークではルーターがIPアドレスを見て転送します。

スイッチングとルーティングは別々の仕組みですが、実際の通信では連携して動いています。

ルーティングで通信できないときの確認方法

通信には行きと戻りの経路が必要です。宛先側に戻りの経路がなければ、通信は成立しません。

実務では、次の順番で確認します。

順番 確認内容 主な方法
1 自分のIPアドレスとサブネット ipconfigip address
2 デフォルトゲートウェイ ipconfig /allip route
3 ゲートウェイまでの通信 ping
4 ルーターのインターフェース状態 show ip interface brief
5 宛先ネットワークの経路 show ip routeip route
6 戻りの経路 宛先側ルーターの経路表
7 ACLやファイアウォール 通信制御の設定
8 経路上の停止地点 traceroutetracert

エンジニア歴10年の経験でも、設定を手当たり次第に変えず、pingと経路表を順番に確認することが大切です。

シミュレーターでルーティングを構築してみよう

ルーティングは、説明を読むだけでなく、自分でネットワークを構築すると理解しやすくなります。

PC、スイッチ、ルーターを配置し、異なるネットワークへIPアドレスを設定します。その後、静的ルートを追加し、pingの結果がどう変わるか確認してください。

InfraAcademyのネットワーク学習ロードマップでは、IPアドレス、ルーティング、VLAN、動的ルーティング、NAT、ACLを順番に学べます。

独自シミュレーターで機器を配置し、実機なしで構成と通信結果を確認できます。

InfraAcademyのネットワーク学習ロードマップを見る

法人研修でルーティングを実践的に学ぶ

未経験者向けの研修では、ルーティングをデータの経路制御と暗記するだけでは不十分です。

静的ルート、戻りの経路、デフォルトルートを比較すると、障害切り分けにもつながります。

InfraAcademy法人プランでは、ネットワークだけでなく、Linux、サーバー構築、AWS、セキュリティなどを一つのサービスで学べます。

受講者は教材、シミュレーター、練習問題を利用でき、管理者は進捗率、完了レッスン、最終学習日、正答率を確認できます。

5IDから利用でき、5IDの場合は月額30,800円・税別です。新人研修、配属前研修、待機期間中の学習などに活用できます。

InfraAcademy法人プランの機能と料金を見る

まとめ

ルーティングは、宛先IPアドレスをもとにデータの転送先を決める仕組みです。

ルーターはルーティングテーブルを確認し、ネクストホップや出力インターフェースを選びます。複数の経路が一致する場合は、より具体的なプレフィックスを持つ経路が優先されます。

経路には、直接接続された経路、管理者が設定する静的ルート、OSPFなどで学習する動的ルートがあります。

自分のPCでip routeroute printを実行し、経路を確認しましょう。

次にシミュレーターで静的ルートを追加し、通信結果を確認しましょう。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る