【AWS VPC】ルートテーブルとは?仕組み・local・0.0.0.0/0を初心者向けに解説

  • URLをコピーしました!

前の記事では、 VPC・CIDR・サブネットの基本を学びました。

VPCの中にサブネットを作成すると、 EC2などのAWSリソースを配置するための ネットワークを用意できます。

しかし、サブネットを作っただけでは、 「通信をどこへ送るのか」というルールを 理解したことにはなりません。

10.0.1.0/24宛ての通信はどこへ送る?
インターネット宛ての通信はどこへ送る?
AWSは何を見て通信経路を判断する?

AWSでは、この通信経路を決めるために ルートテーブル(Route Table)を利用します。

☁ AWS INTERMEDIATE

この記事はAWS中級講座のレッスン2です。 VPC内の通信経路を決める ルートテーブルの基本を学びます。

AWS中級講座を見る →
LESSON GOAL この記事のゴール

ルートテーブルの Destination(送信先)とTarget(転送先)を理解し、 AWS上で通信経路がどのように決まるのかを 読み取れるようになることを目指します。

目次

VPCのルートテーブルとは?

ルートテーブルとは、 ネットワーク通信を 「どの宛先へ、どの経路で転送するのか」 を定義したルールの一覧です。

ネットワーク機器のルーティングテーブルと 基本的な考え方は同じです。

PACKET 通信が発生
ROUTE TABLE 宛先を確認
TARGET 転送先を決定

たとえば、 EC2から別のネットワークへ通信するとき、 AWSはルートテーブルを確認して 「この宛先なら、この転送先へ送る」 と判断します。

ルートテーブル = 通信をどこへ転送するか決めるルール表

DestinationとTargetを理解しよう

ルートテーブルを理解するときに、 まず覚えておきたいのが次の2つです。

DESTINATION 送信先

「どこ宛ての通信なのか」を表します。

TARGET 転送先

「どこへ転送するのか」を表します。

実際のルートテーブルは、 次のようなイメージです。

Destination Target
10.0.0.0/16 local
0.0.0.0/0 igw-xxxxxxxx
DESTINATION 0.0.0.0/0 この宛先なら
TARGET igw-xxxxxxxx ここへ転送する

つまり、ルートテーブルを見るときは、 左から右へ読むと分かりやすくなります。

Destinationに一致する通信を、Targetへ転送する

「local」ルートとは?

VPCを作成すると、 ルートテーブルには localというルートが存在します。

たとえばVPCのCIDRが 10.0.0.0/16の場合、 次のようなルートです。

Destination Target
10.0.0.0/16 local

これは、 「10.0.0.0/16のVPC内部へ向かう通信は、VPC内部でルーティングする」 という意味です。

VPC 10.0.0.0/16
SUBNET A 10.0.1.0/24 EC2-A
SUBNET B 10.0.2.0/24 EC2-B
Route:10.0.0.0/16 → local

Subnet AからSubnet Bへ通信する場合、 どちらも 10.0.0.0/16 の範囲に含まれています。

そのため、 localルートによってVPC内部で通信できます。

POINT localはVPC内部の通信に利用される

同じVPC内のサブネット間通信を理解するときに、 重要になるルートです。

ルートテーブルはサブネットに関連付ける

AWSでは、 サブネットとルートテーブルを関連付けて 使用します。

SUBNET 10.0.1.0/24 EC2
関連付け
ROUTE TABLE
10.0.0.0/16 local
0.0.0.0/0 igw-xxxx

サブネット内のリソースから通信が発生すると、 そのサブネットに関連付けられた ルートテーブルを利用して通信経路が判断されます。

サブネット → 関連付けられたルートテーブル → 転送先を決定

メインルートテーブルとは?

VPCには メインルートテーブル(Main Route Table) があります。

サブネットに特定のルートテーブルを 明示的に関連付けていない場合、 そのサブネットは メインルートテーブルを利用します。

SUBNET A 明示的な関連付けなし
MAIN ROUTE TABLE メインルートテーブルを利用

一方で、 用途に応じて カスタムルートテーブルを作成し、 特定のサブネットへ明示的に関連付けることもできます。

IMPORTANT 各サブネットは必ず1つのルートテーブルを利用する

明示的に関連付けていない場合は、 VPCのメインルートテーブルが利用されます。

0.0.0.0/0とは?

AWSのルートテーブルでは、 0.0.0.0/0 という宛先をよく見かけます。

DESTINATION 0.0.0.0/0

すべてのIPv4アドレスを含む範囲

0.0.0.0/0は、 すべてのIPv4アドレスに一致するルート です。

そのため、 より具体的なルートに一致しなかった通信を 外部へ転送するための デフォルトルートとしてよく利用されます。

Destination Target
10.0.0.0/16 local
0.0.0.0/0 igw-xxxxxxxx

この場合、 VPC内部宛てではない通信は、 igw-xxxxxxxx へ転送される構成になっています。

この igwが、 次の記事で学ぶ インターネットゲートウェイ(Internet Gateway) です。

複数のルートに一致したらどうなる?

ここで、次のルートテーブルを考えてみましょう。

Destination Target
10.0.0.0/16 local
0.0.0.0/0 igw-xxxxxxxx

EC2から 10.0.2.10 へ通信するとします。

10.0.2.10は、 次の2つのルートに一致します。

MATCH 10.0.0.0/16
MATCH 0.0.0.0/0

この場合AWSでは、 より具体的な宛先を示しているルート が優先されます。

LONGEST PREFIX MATCH
10.0.0.0/16 優先
0.0.0.0/0 より具体的

この仕組みを 最長プレフィックス一致(Longest Prefix Match) と呼びます。

複数のルートに一致した場合は、 より具体的なCIDRのルートが優先される

実際の通信経路を考えてみよう

次のようなVPCがあるとします。

VPC 10.0.0.0/16
SUBNET A 10.0.1.0/24 EC2
10.0.1.10
SUBNET B 10.0.2.0/24 EC2
10.0.2.10

このサブネットに関連付けられている ルートテーブルが次の内容だったとします。

Destination Target
10.0.0.0/16 local
0.0.0.0/0 igw-xxxxxxxx

10.0.2.10へ通信する場合

SOURCE 10.0.1.10
ROUTE 10.0.0.0/16
TARGET local

10.0.2.10は10.0.0.0/16に含まれるため、 localが利用されます。

8.8.8.8へ通信する場合

SOURCE 10.0.1.10
ROUTE 0.0.0.0/0
TARGET igw-xxxx

8.8.8.8はVPC内部の 10.0.0.0/16には含まれないため、 0.0.0.0/0のルートが利用されます。

ROUTE DECISION 宛先IPアドレスを見て、最も具体的に一致するDestinationを探す

そして、そのルートに設定されているTargetへ 通信を転送します。

理解度チェック:どのルートが使われる?

次のルートテーブルを使って考えてみましょう。

Destination Target
10.0.0.0/16 local
0.0.0.0/0 igw-12345678
DESTINATION IP 10.0.20.50

この通信では、どのルートが利用されるでしょうか?

宛先IPアドレスとCIDRを比較してみましょう

10.0.20.50がどのDestinationに含まれるか考えてください。

ルートテーブルはサブネットの役割にも関係する

ここまで学習すると、 ルートテーブルが単なる経路表ではなく、 サブネットの通信経路を決める重要な要素 だと分かります。

SUBNET A 10.0.1.0/24
10.0.0.0/16 → local 0.0.0.0/0 → igw
SUBNET B 10.0.2.0/24
10.0.0.0/16 → local 外部向けルートなし

このように、 関連付けるルートテーブルによって サブネットから利用できる通信経路が変わります。

そして、 インターネットへ通信できるサブネットをどのように作るのか を理解するうえで登場するのが インターネットゲートウェイ(IGW)です。

インターネットへの出口はどこにある?

ここまで、 次のルートを何度か見てきました。

DESTINATION 0.0.0.0/0
TARGET igw-xxxxxxxx

0.0.0.0/0によって インターネット向けの通信を判断できても、 実際にVPCとインターネットを接続する仕組み が必要です。

NEXT LESSON インターネットゲートウェイ(IGW)

次の記事では、 VPCをインターネットへ接続するための インターネットゲートウェイについて学びます。

確認問題:VPCのルートテーブル

QUESTION 01

ルートテーブルのDestinationとTargetの意味として 正しいものはどれですか?

正解:B

Destinationは通信の送信先を表し、 Targetはその通信をどこへ転送するのかを表します。

QUESTION 02

10.0.0.0/16 → local は何を意味しますか?

正解:A

localルートは、 VPCのCIDR範囲内で通信するために利用されます。

QUESTION 03

複数のルートが宛先IPアドレスに一致した場合、 基本的にどのルートが優先されますか?

正解:C

複数のルートに一致する場合、 最長プレフィックス一致によって、 最も具体的なルートが優先されます。

YOUR SCORE 0 / 3

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

まとめ

01

ルートテーブルは 通信をどこへ転送するか決めるルール表

02

Destinationは送信先、 Targetは転送先を表す

03

localは VPC内部の通信に利用される

04

ルートテーブルは サブネットに関連付けて利用する

05

0.0.0.0/0は すべてのIPv4アドレスに一致する

06

複数ルートに一致した場合は 最長プレフィックス一致によって より具体的なルートが優先される

NEXT LESSON AWS INTERMEDIATE 03

インターネットゲートウェイ(IGW)を理解する

ルートテーブルによって 「通信をどこへ送るのか」を判断できるようになりました。

次は、 VPCとインターネットを接続する仕組みを学びます。

インターネットゲートウェイの役割や、 ルートテーブルとの関係を確認していきましょう。

インターネットゲートウェイ(IGW)を理解する
AWS INTERMEDIATE

AWS中級講座へ戻る

AWS中級講座の記事一覧から、 学習したいレッスンを確認できます。

← AWS中級講座へ戻る
目次