はじめに
昨年ご紹介したAWS DirectConnectパートナーのチェックポイントですが、BGPパラメータあたりがフワッとした書きっぷりでしたので、実際どう設計するか整理してみました。
本記事は、AWSハイブリッド接続のBGPパラメータ設計で必要な情報を纏めています。
- 本記事で説明すること
- 本記事で説明しないこと
- DirectConnect(PublicVIF)上のBGPパラメータ設計
- TGW Connectアタッチメント上のBGPパラメータ設計
- 仮想ルータ~オンプレミスルータ間のBGPパラメータ設計
- インターネット上のBGPパラメータ設計
※ DirectConnect(PublicVIF)上のBGPパラメータ設計は私が利用しないので割愛します汗
BGPとは
「IPネットワーク上で通信するために必要なルート情報を動的に更新するプロトコルの一つ」とだけ覚えとけば、AWS利用上で困らないと思います(NEの風上にも置けぬ奴と言われそうですが...汗)。
公式サイトで詳しくは説明されていますので、ご興味がある方は是非ご覧下さいませ。
BGPパラメータ設計
BGPトポロジ、BGPメトリック、BGPタイマーの切り口で考えると理解しやすいかなと思います。こちらの切り口で、DirectConnect冗長構成(パートナー機器なし)、DirectConnect冗長構成(パートナー機器あり)、DirectConnect/Site-to-Site VPN冗長構成の各パターンを見ていきたいと思います。
1. BGPトポロジ
BGPスピーカーにASNを設定し、BGPピアリングを構成します。
- ASNは64512~65535の範囲より、TGW/VGW、DXGW、パートナー機器、ユーザ機器に違う値を設定してeBGPを構成し、冗長化されたユーザ機器に同じ値を設定してiBGPを構成します[1]。
- BGPピアアドレスは、DirectConnectの場合10.0.0.0/8、172.16.0.0/12、192.168.0.0/16より[2]、Site-to-Site VPNの場合169.254.0.0/16の一部より[3]、/30で設定します。
- BGP認証キーは、ユーザ側で任意の文字列を設定するか、AWS側で自動的に生成します。
AWS Black Belt Online Seminar - AWS Direct Connect - QA
[1] https://aws.amazon.com/jp/blogs/news/webinar-bb-awsdirectconnect-2021/
DirectConnect ユーザガイド
[2] https://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html
Site-to-Site VPN ユーザガイド
[3] https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/VPNTunnels.html
DirectConnect冗長構成 (パートナー機器なし)
TGWのASNは64512、DXGWのASNは64513、ユーザ機器のASNは65000を割り当てています。
DirectConnect冗長構成 (パートナー機器あり)
パートナー機器のASNはパートナー側で固定化されています。
単一ASNだけでなく複数ASNを経由する場合もあり、パートナーへ確認する必要があります。
単一ASNだけでなく複数ASNを経由する場合もあり、パートナーへ確認する必要があります。
DirectConnect/Site-to-Site VPN冗長構成
2. BGPメトリック
BGPピアリングごとのメトリックを設定し、BGPルーティングを制御します。
- 原則として、AWS→オンプレミス通信はAS Path、オンプレミス→AWS通信はLocal Preferenceをユーザ機器に設定のうえ制御します[1]。
- AS PathでなくBGPコミュニティをユーザ機器に設定のうえ制御することもできます。ただし、パートナー機器がAWS定義のBGPコミュニティへ対応していない、パートナー定義のBGPコミュニティのみ対応しているなどの場合もあり、パートナーへ確認する必要があります[2]。
- その他、ASオーバーライドなどがパートナー機器で有効化されてないか、パートナーへ確認する必要があります。
AWS Black Belt Online Seminar AWS Direct Connect
[1] https://d1.awsstatic.com/webinars/jp/pdf/services/20210209-AWS-Blackbelt-DirectConnect.pdf#page=60
[2] https://d1.awsstatic.com/webinars/jp/pdf/services/20210209-AWS-Blackbelt-DirectConnect.pdf#page=62
DirectConnect冗長構成 (パートナー機器なし)
AS Pathは、メインのユーザ機器に65000、バックアップのユーザ機器に65000 65000を設定し、メインが64513、65000の合計2パス、バックアップが64513、65000、65000の合計3パスになり、AWS→オンプレミス通信はメインパスが優先されます。
Local Preferenceは、メインのユーザ機器に200、バックアップのユーザ機器に100を設定し、オンプレミス→AWS通信はメインパスが優先されます。
Local Preferenceは、メインのユーザ機器に200、バックアップのユーザ機器に100を設定し、オンプレミス→AWS通信はメインパスが優先されます。
DirectConnect冗長構成 (パートナー機器あり)
AS Pathは、メインのユーザ機器に65000、バックアップのユーザ機器に65000 65000を設定し、メインが64513、XXXXX、65000の合計3パス、バックアップが64513、YYYYY、65000、65000の合計4パスになり、AWS→オンプレミス通信はメインパスが優先されます。
Local Preferenceは、メインのユーザ機器に200、バックアップのユーザ機器に100を設定し、オンプレミス→AWS通信はメインパスが優先されます。
Local Preferenceは、メインのユーザ機器に200、バックアップのユーザ機器に100を設定し、オンプレミス→AWS通信はメインパスが優先されます。
DirectConnect/Site-to-Site VPN冗長構成
Site-to-Site VPN向けルートよりDirect Connect向けルートの方が優先されるため、AS Pathは設定しなくてもAWS→オンプレミス通信はメインパスが優先されます。
Site-to-Site VPNよりDirect Connectの方がデフォルトMEDが小さいため、Local Preferenceは設定しなくてもオンプレミス→AWS通信はメインパスが優先されます。
Site-to-Site VPNよりDirect Connectの方がデフォルトMEDが小さいため、Local Preferenceは設定しなくてもオンプレミス→AWS通信はメインパスが優先されます。
3. BGPタイマー
BGPピアリングごとのタイマーなどを設定し、BGPフェイルオーバータイムを制御します。
- タイマーはデフォルトでキープアライブ30s、ホールドタイマ90sとなります。CISCO機器等ではホールドタイマが20s以下の場合は警告が表示されます[1]。
- BFDはデフォルトでポーリング間隔300s、リトライ回数3回となります。接続がDirectConnectであり、かつユーザ機器が対応している場合のみ設定できます[2]。
- その他、Graceful RestartはBFDと併用すると、BGPフェイルオーバータイムが長くなる可能性があるため注意が必要です[3]。
AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
[1] https://d1.awsstatic.com/webinars/jp/pdf/services/20200219_BlackBelt_Onpremises_Redundancy.pdf#page=27
[2] https://d1.awsstatic.com/webinars/jp/pdf/services/20200219_BlackBelt_Onpremises_Redundancy.pdf#page=25
[3] https://d1.awsstatic.com/webinars/jp/pdf/services/20200219_BlackBelt_Onpremises_Redundancy.pdf#page=26
DirectConnect冗長構成 (パートナー機器なし)
タイマー10s/30s、BFD300ms/3回をユーザ機器に設定します。
DirectConnect冗長構成 (パートナー機器あり)
AWS~パートナー機器間のBGPフェイルオーバータイムは、パートナー機器のタイマーとBFDの設定次第のため、パートナーに確認する必要があります。
DirectConnect/Site-to-Site VPN冗長構成
BFDは回線品質が安定しないSite-to-Site VPNに設定することを推奨しません。
それ以外、タイマーの設定方法はDirectConnectと変わりありません。
それ以外、タイマーの設定方法はDirectConnectと変わりありません。
まとめ
AWSハイブリッド接続のBGPパラメータは、以下の切り口で考えると理解しやすいです。
- BGPスピーカーにASNを設定し、BGPピアリングを構成します。
- BGPピアリングごとのメトリックを設定し、BGPルーティングを制御します。
- BGPピアリングごとのタイマーなどを設定し、BGPフェイルオーバータイムを制御します。
おわりに
AWS ハイブリッド接続のBGPパラメータを設計される方々にとって、本記事がご参考になりますと幸いです。