Microsoft AzureにおけるBGP回線の構成
■前書き
ご無沙汰しております。滝を登った鯉です。
先日、自前のAzure環境とVPN接続している
オンプレミスネットワークを切り替える作業を実施しました。
その際、BGP設定の有効化を試しにやってみたので、
簡単な手順と、作業時に得られた気づきを皆さんに共有したく、
記事をしたためました。
■そもそもBGPとは?
BGP(Border Gateway Protocol)とは、ルーティング(経路制御)を行う
プロトコルの一種です。
ネットワーク機器同士で互いが持つ経路情報を動的に交換することで、
目的地にデータを送るための経路を導き出します。
ルーティングの動作については、概ね以下の図のようなイメージです。
例えばルータAからネットワーク①に向けてデータを送る場合、
ルータAは自身が保持するルーティングテーブル(経路表)に従い、
ルータBにデータを転送します。
ルーティングには大きく分けて、静的ルーティングと動的ルーティングの
2種類が存在します。
・静的ルーティング
⇒各ルータのルーティングテーブルの情報は変動しない。
ネットワーク構成が変わると、すべてのテーブル情報を
手動で変更する必要がある。
・動的ルーティング
⇒各ルータが、互いにルーティングテーブルを交換する。
ネットワーク構成が変更された場合、ルーティングテーブルも
自動的に更新される。
■AzureにおけるBGP構成の方法
ここからが本題です。
前提条件
・Azureサブスクリプション内に仮想ネットワークとAzure VPN Gatewayが
デプロイされており、オンプレ環境Aとのサイト間VPN接続が構成されている。
・BGPは未設定。また、ローカルネットワークゲートウェイにはオンプレ環境AのグローバルIPアドレスの他、オンプレ環境Aの内部で用途別に区切られたセグメント情報が「アドレス空間」の欄に設定されている。
実施した作業
新たにオンプレ環境BとのVPN接続を構成する(BGP設定有り)
①仮想ネットワークゲートウェイにてBGPを有効化
Azureポータルより、対象の仮想ネットワークゲートウェイの画面から
「設定」⇒「構成」より『BGPの構成』にチェックを入れる。
その後、BGP通信用に、以下の値を任意に設定する。
・自律システム番号(ASN)
・カスタムの Azure APIPA BGP IP アドレス
②ローカルネットワークゲートウェイを新規作成
既存のオンプレ環境A用のリソースとは別に、
オンプレ環境Bの接続先情報を登録した
ローカルネットワークゲートウェイを作成する。
登録する情報は以下の通り。
・グローバルIPアドレス
・自律システム番号(ASN)
・BGPピアの IP アドレス
※アドレス空間はBGPで広報されるため、あえて設定しない
③接続リソースの作成
「接続」という種類のリソースを新規作成し、
仮想ネットワークゲートウェイに紐づける。
■想定外の事態
オンプレ環境BとのVPN接続そのものは成功し、
オンプレ環境BからBGPで広報された経路情報が受信できていることも確認しました。
しかし、Azure側からオンプレB側に、本来は広報する必要のない
経路情報まで広報されていることが判明。
それは何かというと、「・前提条件」の項で説明した、
オンプレ環境Aのローカルネットワークゲートウェイに設定されている
アドレス空間の情報でした。
サポートに独自で問い合わせた結果、以下の回答が得られました。
・各ローカルネットワークゲートウェイのアドレス空間の情報を
広報するのは、想定された動作である。
・特定の経路情報だけを広報するようユーザ側で制御することはできない。
個人的にショックだったのは2番目の回答でした。
その辺りは自由に設定できるものだと思い込んでいたので、意表を突かれました。。。
(※広報したい経路情報を制御できるクラウドサービスも存在します)
■対処
VPN Gateway⇔オンプレ環境Aに対応する接続リソースを削除しました。
VPN接続が途絶されたことで、経路情報も広報されなくなりました。
■最後に
この度、私がAzureでBGPを利用してのはじめての検証は以上になります。
経路情報の制御や、ネットワーク構成のルールといった点において
壁にぶつかってしまったものの、それも含めてよい勉強になりました。
今後、さらにAzureについて学びを深めていきたいと思います。