yamamototis1105’s tech blog

ネットワークを中心とした技術ブログです

AWS Network ManagerによるBGPモニタリング

はじめに

 AWSにおけるネットワークモニタリングはサービス毎にメトリクスやログが充実しているものの、BGPモニタリングについては少し物足りないなと感じてました。
 この度、AWS blogでNetwork ManagerによりBGPのネイバーやルートの状態変化を監視する方法が公開されてましたのでご紹介します(もしかすると以前より実装されてたかもですが汗)

aws.amazon.com

AWSにおけるネットワークモニタリングの課題

 AWSにおけるネットワークモニタリングは、上位レイヤーのサービスでは固有のメトリクスやログが提供される一方、下位レイヤーのサービスではトラフィックのパケット数/バイト数やBPS/PPSなどの情報のみ提供されるケースが多く見受けられます。
 しかし、構築時や運用時におけるトラブルシュートなどを考えた場合には、例え下位レイヤーのサービスでも、VPN/BGPのトンネル/ネイバーやルートなどの状態変化は正確な事象把握のうえで是非確認したいポイントとなってきます。

 VPNについては、Site-to-SiteVPNのメトリクスでトンネル状態変化を検知可能かつ、2022年8月19日リリースのログ出力機能でIKEフェーズや詳細なメッセージなども確認できる一方、
 BGPについては、ネイバーやルートの状態変化を検知する方法がなく、詳細な情報を確認したい場合はサポートへ問い合わせるしかないのが現状でした。

aws.amazon.com

AWS Network Managerによる検知と対処

 TGWでBGPのメトリクスやログを確認できませんが、Network ManagerでグローバルネットワークにTGWを登録することでBGPのイベントを監視できるようになりました。
 詳細なイベントの種類や説明は以下へ記載してます(トポロジ更新イベントは本記事のスコープから外れるため割愛します)

ステータス更新イベント

イベント説明
VPN-CONNECTION-IPSEC-DOWNVPNIPsecトンネルがダウンした
VPN-CONNECTION-IPSEC-UPVPNIPsecトンネルがアップした
VPN-CONNECTION-BGP-DOWNVPNのBGPネイバーがダウンした
VPN-CONNECTION-BGP-ESTABLISHVPNのBGPネイバーがアップした
CONNECT_PEER_BGP_DOWNTGWのConnect PeerのBGPネイバーがダウンした
CONNECT_PEER_BGP_UPTGWのConnect PeerのBGPネイバーがアップした

ルーティング更新イベント

イベント説明
CONNECT_PEER_DELETEDTGWのConnect Peerが変更された
TGW-ROUTE-INSTALLEDTGWでルートが作成された
TGW-ROUTE-UNINSTALLETGWでルートが削除された
docs.aws.amazon.com

AWS Network Managerの検証

 AWS blogやgithubにて、Network Managerによる検知や対処の手順や資材が紹介されてましたので、そちらを参考にして、下図の通り環境構築のうえ検証してみました。
 以降、ポイントとなるVyOS、Network Manager、EventBridgeのみ記載しています。

Network Managerの検証構成

VyOS作成 (VPNおよびBGPで接続するため)

  • Maketplaceにて、以下のイメージから起動します。
    • イメージは「VyOS Universal Router for AWS (Standard Support) - Pay-as-You-Go
    • バージョンは「1.3.5
  • Site-to-Site VPNにて、以下の設定をダウンロードします。
    • ベンダーは「Vytta
    • プラットフォームは「Vyatta Network OS
    • ソフトウェアは「Vyatta Network OS 6.5+
    • IKEバージョンは「ikev1
  • 構成やバージョンの違いにより、設定を以下のように修正し、VyOSに流し込みます。
修正前修正後
set vpn ipsec site-to-site peer x.x.x.x local-address '<Public-IP-of-EIP>'set vpn ipsec site-to-site peer x.x.x.x local-address '<Private-IP-of-ENI>'
set protocols bgp 6xxxx neighbor x.x.x.x soft-reconfiguration 'inbound'set protocols bgp 6xxxx neighbor x.x.x.x address-family ipv4-unicast soft-reconfiguration 'inbound'
set protocols bgp 6xxxx network x.x.x.x/xset protocols bgp 6xxxx address-family ipv4-unicast network x.x.x.x/x

Network Manager登録

  • Network Managerにて「グローバルネットワークを作成」を押します。
    グローバルネットワークにコアネットワークを追加する」のチェックは外すこと!
  • Network Manager > グローバルネットワーク > (作成済みグローバルネットワーク) > Transit Gatewayネットワーク > 概要にて「TransitGatewayを登録」を押します。
  • Network Manager > グローバルネットワーク > (作成済みグローバルネットワーク) > Transit Gatewayネットワーク > イベントにて「CloudWatch Logs Insightsをオンボード」を押します。

EventBridge作成

  • EventBridgeにて「ルールを作成」を押します。
    • イベントソースは「AWSのサービス
    • イベントのサービスは「Network Manager
    • イベントタイプおよびイベントパターンは下表の通り。
    • ターゲットタイプは「AWSのサービス
    • ターゲットのサービスは「SNSトピック
    • ターゲットのトピックは「(作成済みトピック※自分宛メール)
イベントタイプイベントパターン
Network Manager Status Update{
    "source": ["aws.networkmanager"],
    "detail-type": ["Network Manager Status Update"]
}
Network Manager Routing Uppdate{
    "source": ["aws.networkmanager"],
    "detail-type": ["Network Manager Routing Update"]
}

テスト

  • VyOSにて「reset ip bgp all」コマンドですべてのBGPネイバーをリセットすることにより、Network ManagerのイベントやSNSからのメールで下記メッセージが確認できました。
    (レコードを展開することにより、例えば追加されたルートなどの詳細も確認できました。)
    • 「BGP for a VPN connection has been established.」
    • 「BGP for a VPN connection has gone down.」
    • 「Routes in one or more Transit Gateway route tables have been installed.」
    • 「Routes in one or more Transit Gateway route tables have been uninstalled.」
Network Managerのイベント

今後の期待

 Network ManagerはTGWやCloudWANが対象であり、VGWやDXGWなどは対象となってません。
今後は同様のイベントが監視できるように、その他ゲートウェイも対象となることに期待!

まとめ

 Network ManagerによりBGPネイバーやルートのなど状態変化が検知できるようになりました。
今まで以上に詳細な情報が確認でき、トラブルシュートなどで役立つものと思われます。

おわりに

 AWSのネックワークモニタリングをご検討の方にとって、本記事の課題・対処がご参考になりますと幸いです。