Direct Connectのルーティング迷宮:プライベートVIFとトランジットVIFの境界線を引く
オンプレミスのデータセンターとAWSのリージョンを専用線で直結するAWS Direct Connect。物理的な光ファイバーがキャリアのバックボーンを抜け、AWSのルーター(Direct Connect Router: DXR)のポートに突き刺さる瞬間、パケットの運命はBGP(Border Gateway Protocol)のルーティングテーブルに委ねられます。
現場のSREやネットワークアーキテクトが直面する最大の罠は、「とりあえず繋がった」という状態から一歩踏み込んだときに出現します。特に、単一のDirect Connect接続(あるいはリンクアグリゲーション)上で複数の仮想インターフェイス(VIF)を終端させ、従来のVPCとTransit Gateway(TGW)を同居させる設計において、BGPのパス選択とルーティング分離のメカニズムを誤ると、パケットは意図せぬパスを迷走し、レイテンシの増大やセキュリティ境界の崩壊を招きます。
今回は、プライベートVIF(Private VIF)とトランジットVIF(Transit VIF)の内部挙動の違いを、BGPのAS-PATH、Linuxカーネルのルーティング、そして極限のパフォーマンスチューニングの観点から徹底的に解剖します。
—
1. パケットレベルで見るVIFの正体:プライベートVIF vs トランジットVIF
まず、AWS側の終端アーキテクチャの根本的な違いを理解する必要があります。VIFは単なる論理タグ(VLAN ID)ではありません。AWSのバックボーンネットワークにおける「パケットのデカプセル化とルーティングの責任境界」そのものです。
プライベートVIF:VPCとの直接対話
プライベートVIFは、特定のVPCにアタッチされた仮想プライベートゲートウェイ(VGW)、または直接VPC内のElastic Network Interface(ENI)に直結されるパスです。
- BGPピアリング: オンプレミスのルーターとAWSのVGW(またはDirect Connect Gatewayを通じて複数のVGW)の間で直接張られます。
- ルーティングの挙動: オンプレミス側から広告されたプレフィックス(例:
10.100.0.0/16)は、VGWのルートテーブルに直接インジェクトされます。VPC内のリソースへのパケットは、VXLANなどのオーバーレイを最小限に抑え、AWSのエッジからVPCの仮想ルーターへとダイレクトに転送されます。
トランジットVIF:Transit GatewayによるマルチVPC集約
トランジットVIFは、AWS Transit Gateway(TGW)のDirect Connectアタッチメントを終端するためのものです。
- BGPピアリング: オンプレミスのルーターとAWS TGWの間でBGPセッションが確立されます。
- ルーティングの挙動: TGWは最大何百ものVPCやVPN、AWSアカウント間を接続するハブです。トランジットVIFを通じた通信は、TGWのルートテーブルによる厳格なセグメンテーションとポリシー評価を受けます。ここで重要なのは、トランジットVIFが「マルチテナント環境のバックボーン」として機能する点です。
—
2. BGPルーティング分離とパス選択の数理
プライベートVIFとトランジットVIFを同じDirect Connect接続(または異なるVIF)上に混在させる場合、オンプレミス側のルーター(Cisco、Juniper、Aristaなど)でのBGPポリシー設計が極めて重要になります。
もし、オンプレミスから同一のプレフィックスをプライベートVIFとトランジットVIFの両方へ同時に広告してしまった場合、あるいはパスの評価順序を誤った場合、非対称ルーティング(Asymmetric Routing)が発生し、AWS側のファイアウォール(AWS Network Firewall等)やステートフルなセキュリティグループでパケットがドロップされます。
BGPアトリビュートによる厳密な制御
AWS側からオンプレミスへ向かうトラフィック(下り)と、オンプレミスからAWSへ向かうトラフィック(上り)の双方で、意図したパスを強制するための設定例を見てみましょう。
以下のCisco IOS-XE風のコンフィグレーションは、トランジットVIFを優先しつつ、プライベートVIFを特定のレガシーVPC専用のバックアップ/フォールバックパスとして分離する実務的な設定です。
“`ios
! — オンプレミスルーターのBGP設定例 —
router bgp 65000
! プライベートVIF用のBGPピア(VGW向け)
neighbor 169.254.100.1 remote-as 64512
neighbor 169.254.100.1 description “Direct Connect – Private VIF”
neighbor 169.254.100.1
コメント