コンテンツにスキップ

TransitGatewayRouteTable

TransitGatewayRouteTableは、TransitGatewayに届いたトラフィックの宛先を解決するルートテーブルです。

spec.transitGatewayは、このルートテーブルが属するTransitGatewayの名前です。作成後に変更することができません。

経路の作られ方

解決済みの経路はstatus.routesに現れます。中身は2種類の経路から作られます。

  • propagated route: このルートテーブルをspec.propagationsに含むTransitGatewayAttachmentが、自分のVpcのSubnetを広報したもの
  • static route: spec.routesに書いたもの

同じdstが両方に現れた場合はstatic routeが優先されます。

propagated route同士でdstが衝突した場合は、どちらかを黙って選ぶのではなくReady=False (AmbiguousRoute) になります。CIDRの重複はwebhookで防いでいるため、通常は起きません。

spec.routes

spec.routes[].dstは宛先のCIDRです。同じdstを2つ書くことはできません。

spec.routes[].attachmentは、その宛先のトラフィックを渡すTransitGatewayAttachmentの名前です。

spec.routes[].blackholetrueにすると、その宛先のトラフィックを破棄します。blackhole: trueのときはattachmentを指定できません。逆にblackholeを指定しない場合はattachmentが必須です。

blackholeではないstatic routeのdstは、指定したアタッチメントのVpcに存在するSubnetのCIDRと完全に一致している必要があります。データプレーンは1つの宛先SubnetのVNIへ転送するため、複数のSubnetにまたがるスーパーネットでは転送先が定まりません。一致するSubnetが無い場合はReady=Falseになります。

status

status.tableIDは、データプレーンがこのルートテーブルを識別するためのIDです。

status.routes[]は解決済みの経路で、dstの昇順に並びます。originstaticpropagatedのどちらかで、その経路がどちらの経路から来たかを表します。blackhole: trueのエントリではsubnetが空になります。

status.conditionsReadyは、tableIDが払い出され、すべてのstatic routeを解決できたことを表します。

削除

TransitGatewayAttachmentからspec.associationまたはspec.propagationsで参照されている間は削除できません。

TransitGatewayのdefault route table (TransitGatewayと同じ名前のもの) を単独で削除することはできません。TransitGatewayを削除すると一緒に削除されます。