BGPルーティングの仕組みを、「自宅から会社へ通じる2本の高速道路ルートとカーナビ」にたとえて可視化します。
図1: 2本の高速道路のたとえ — カーナビ(BGP)が料金所(AS_PATH)の少ないルートを自動選択
図2: たとえ話の対応一覧 — 高速道路の各要素がAWS概念にそのまま対応
図3: 2つのVIF構成の全体像 — VIF 1がActive、VIF 2がStandby
図4: BGPルート選択の優先順位マップ — STEP 0が絶対優先、以降は段階的に評価
BGPの制御手段は、制御する方向によって使い分けが必要です。
図5: 出方向はLocal Preference(自分で確実に制御)、入方向はAS_PATH Prepending(最も確実)
普段はルートAのみ。ルートBは障害時の迂回路
両方のルートを常時使用して負荷分散
図6: AS_PATH Prependingの仕組み — VIF 2のAS番号を水増しして「遠回り」に見せる
図7: プレフィックスを/17で分割して2つのVIFに均等分散
# VIF 1(プライマリ) aws directconnect create-private-virtual-interface \ --connection-id dxcon-abc12345 \ --new-private-virtual-interface \ virtualInterfaceName="VIF-Primary",\ vlan=100,asn=65000,\ amazonAddress="169.254.100.1/30",\ customerAddress="169.254.100.2/30",\ virtualGatewayId="vgw-0123456789abcdef" # VIF 2(スタンバイ) aws directconnect create-private-virtual-interface \ --connection-id dxcon-def67890 \ --new-private-virtual-interface \ virtualInterfaceName="VIF-Standby",\ vlan=200,asn=65000,\ amazonAddress="169.254.200.1/30",\ customerAddress="169.254.200.2/30",\ virtualGatewayId="vgw-0123456789abcdef"
AWSTemplateFormatVersion: '2010-09-09' Resources: PrimaryVIF: Type: AWS::DirectConnect::VirtualInterface Properties: ConnectionId: dxcon-abc12345 VirtualInterfaceName: VIF-Primary Type: private Vlan: 100 Asn: 65000 StandbyVIF: Type: AWS::DirectConnect::VirtualInterface Properties: ConnectionId: dxcon-def67890 VirtualInterfaceName: VIF-Standby Type: private Vlan: 200 Asn: 65000
! VIF 1(プライマリ)- 通常設定 router bgp 65000 neighbor 169.254.100.1 remote-as 64512 ! VIF 2(スタンバイ)- AS_PATH Prepending neighbor 169.254.200.1 remote-as 64512 neighbor 169.254.200.1 route-map PREPEND-OUT out route-map PREPEND-OUT permit 10 set as-path prepend 65000 65000
# VIF 2(スタンバイ)- AS_PATH Prepending set protocols bgp group DX-STANDBY neighbor 169.254.200.1 peer-as 64512 neighbor 169.254.200.1 export PREPEND-POLICY set policy-options policy-statement PREPEND-POLICY term prepend then as-path-prepend "65000 65000" accept
「Active/Standbyを実現するには?」→ AS_PATH Prepending。スタンバイ側のAS_PATHを長くする。
「/16と/24が同時広告されたらどちらが選択?」→ 常に/24(最長プレフィックスマッチ)。AS_PATHに関係なく。
「出方向の制御手段は?」→ Local Preference。「入方向は?」→ AS_PATH Prepending / MED。
「AS_PATHが最優先」は誤り。Local Preferenceの方が先に評価。さらにその前に最長プレフィックスマッチ。
MEDは同一隣接ASからのルート間でのみ比較。異なるASからのルートでは比較されない(デフォルト)。
「BFD有効でBGP不要」は誤り。BFDはBGPの障害検知を高速化する補助機能であり代替ではない。
最長プレフィックスマッチ → Local Preference(最大) → AS_PATH(最短) → Origin → MED(最小) → タイブレーク
Local Preference 使用。VIF1=200(高)、VIF2=100(低)。自分のルーターで完結。
AS_PATH Prependingが最確実。スタンバイVIFで自AS番号を2〜3回Prepend。
BFD必須。BFDなし=最大90秒。BFDあり=サブ秒で検知。
Created by SSuzuki1063
AWS SAP Learning Resources