Transit Gatewayのルーティング仕様を分かりやすく解説してみる

AWS運用自動化サービス「Cloud Automator」

技術3課の杉村です。AWS Transit Gateway以下、Transit GatewayまたはTGW)のルーティングの仕様を解説してみます。

1. Transit Gateway関連のルート設計の概要図

Transit Gatewayのルーティング設定を俯瞰してみると、この図のようなかんじです。
当記事ではこの図と文章を見比べながら読むことになりますので、複数のウインドウで開いておくなどをお勧めします。

2. 用語

Transit Gateway
図中の紫の四角いアイコンです。tgw-0123abcというIDが振ってあるものです。
AWS上で仮想的なルーターとしてふるまいます。
リージョン別なAWSリソースです。

Transit Gateway Attachment
図中の色のついた丸です。Transit Gatewayにくっついていますね。
Transit Gatewayと、別のネットワークの接点を意味します。
“VPC”, “VPN”, “Direct Connect Gateway”, “Peering(他のTransit Gateway)”用のAttachmentが作れます。
また、各AttachmentにはTransit Gateway Route Tableを紐づけることができます。

Transit Gateway Route Table
図右下の吹き出し内にある、四角いのがTransit Gateway Route Tableです。
Attachmentに入ってきたパケットを、どこにルーティングするか決定します。

これらの用語の中で、Transit Gateway Route Tableの概念が一番のポイントなので、以降で解説していきます。

3. Transit Gateway Route Table

3-1. ルーティングの仕様

ここからは、図と見比べながらお読みください。

例として、黄色いAttachment用のルートテーブルを見てみましょう。
(図の中に4つあるうちの左上のルートテーブルです)
このルートテーブルは、黄色いAttachmentに紐づいています。
黄色いAttachmentは、Transit Gatewayと図右上の 10.300.0.0/16 というVPCを繋ぐAttachementですね。

このルートテーブルは、VPC 10.300.0.0/16からTGWに入ってきた通信を以下のようにルートします。
「宛先が 10.10.0.0/16 のパケットは、Attachment赤、つまりSite Aにルーティング」
「宛先が 192.168.10.0/24 のパケットは、Attachment青、つまりSite Bにルーティング」
「宛先が 192.168.20.0/24 のパケットは、Attachment青、つまりSite Bにルーティング」
「宛先が 192.168.30.0/24 のパケットは、Attachment青、つまりSite Bにルーティング」

3-2. 静的ルート(Static)と動的ルート(Propagation)

Transit Gateway Route TableのルートはStaticに記述することもできますし、Propagate(伝播)設定をすることもできます。

例えばこの黄色Attachment用ルートテーブルにて「Attachment赤からPropagationを受け取る」というPropagationを作ることができます。
すると以降は自動的に、Attachment赤の対向であるSite AからBGPで広報されてきた経路が、黄色Attachment用ルートテーブルに追加されるようになります。
つまりPropagationを設定するとは、BGPピアを結ぶようなものです。

同じように「Attachment緑からPropagationを受け取る」というPropagationを作ったとします。
すると、Attachment緑の対向であるVPC 10.200.0.0/16から、経路を受け取ることになります。こうしておくと、VPCにセカンダリCIDRが追加されたときなどに自動的にルートテーブルに反映されるようになります。

次は、反対の方向、つまりTransit Gatewayから対向のネットワークが受け取る経路についてです。

VPC Attachmentの場合
VPC側ではTransit Gatewayからは経路を受け取りません
VPC側Route Tableには静的に、Transit Gatewayへのルートを追加する必要があります。

VPN Attachmentの場合
対向ルータ(CGW)は、そのVPN Attachmentに紐づいている Transit Gateway Route Tableが 持っている経路を受け取ります。
つまり、図中のSite AとTGWがVPN(BGPを使ったDynamic設定)で繋がっているとすると、Site A側のルータ(CGW)は、Attachment赤用Route Tableに書いてある経路を受け取ることになります。

Direct Connect Gateway用Attachmentの場合
Direct Connect GatewayにTransit VIFを紐づけるときに「Allowed Prefixes(許可されたプレフィックス)」という設定がありますが、ここで設定したCIDRがそのまま対向ルータに広報されます。
下記ドキュメント参照。
Allowed prefixes interactions

Peering(他のTransit Gateway)用Attachment
動的ルートは利用できません。

3-3. ルートの評価(優先度)

万一、同じCIDR向けのルートが複数存在してしまった場合どうなるでしょうか。
How transit gateways work に記載があります。

  • 基本はロンゲストマッチ
  • もし同じCIDR向けのルートが複数あるなら
    • 静的ルートが動的(Propagatedな)ルートより優先
    • 動的ルート間ではVPC>Direct Connect Gateway>VPNの順で優先
AWS運用自動化サービス「Cloud Automator」