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[].blackholeをtrueにすると、その宛先のトラフィックを破棄します。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の昇順に並びます。originはstaticかpropagatedのどちらかで、その経路がどちらの経路から来たかを表します。blackhole: trueのエントリではsubnetが空になります。
status.conditionsのReadyは、tableIDが払い出され、すべてのstatic routeを解決できたことを表します。
削除¶
TransitGatewayAttachmentからspec.associationまたはspec.propagationsで参照されている間は削除できません。
TransitGatewayのdefault route table (TransitGatewayと同じ名前のもの) を単独で削除することはできません。TransitGatewayを削除すると一緒に削除されます。