見出し画像

Microsoft AzureにおけるBGP回線の構成

■前書き

ご無沙汰しております。滝を登った鯉です。
先日、自前のAzure環境とVPN接続している
オンプレミスネットワークを切り替える作業を実施しました。
その際、BGP設定の有効化を試しにやってみたので、
簡単な手順と、作業時に得られた気づきを皆さんに共有したく、
記事をしたためました。

■そもそもBGPとは?

BGP(Border Gateway Protocol)とは、ルーティング(経路制御)を行う
プロトコルの一種
です。
ネットワーク機器同士で互いが持つ経路情報を動的に交換することで、
目的地にデータを送るための経路を導き出します。

ルーティングの動作については、概ね以下の図のようなイメージです。
例えばルータAからネットワーク①に向けてデータを送る場合、
ルータAは自身が保持するルーティングテーブル(経路表)に従い、
ルータBにデータを転送します。

図1.ルーティングの概要

ルーティングには大きく分けて、静的ルーティングと動的ルーティングの
2種類が存在します。

・静的ルーティング
 ⇒各ルータのルーティングテーブルの情報は変動しない。
  ネットワーク構成が変わると、すべてのテーブル情報を
  手動で変更する必要がある。

・動的ルーティング
 ⇒各ルータが、互いにルーティングテーブルを交換する。
  ネットワーク構成が変更された場合、ルーティングテーブルも
  自動的に更新される。

■AzureにおけるBGP構成の方法

ここからが本題です。

前提条件
・Azureサブスクリプション内に仮想ネットワークとAzure VPN Gatewayが
デプロイされており、オンプレ環境Aとのサイト間VPN接続が構成されている。
・BGPは未設定。また、ローカルネットワークゲートウェイにはオンプレ環境AのグローバルIPアドレスの他、オンプレ環境Aの内部で用途別に区切られたセグメント情報が「アドレス空間」の欄に設定されている。

図2.環境構成(BGP設定前)

実施した作業
新たにオンプレ環境BとのVPN接続を構成する(BGP設定有り)

①仮想ネットワークゲートウェイにてBGPを有効化
Azureポータルより、対象の仮想ネットワークゲートウェイの画面から
「設定」⇒「構成」より『BGPの構成』にチェックを入れる。

その後、BGP通信用に、以下の値を任意に設定する。

・自律システム番号(ASN)
・カスタムの Azure APIPA BGP IP アドレス

②ローカルネットワークゲートウェイを新規作成
既存のオンプレ環境A用のリソースとは別に、
オンプレ環境Bの接続先情報を登録した
ローカルネットワークゲートウェイを作成する。
登録する情報は以下の通り。

・グローバルIPアドレス
・自律システム番号(ASN)
・BGPピアの IP アドレス

※アドレス空間はBGPで広報されるため、あえて設定しない

③接続リソースの作成
「接続」という種類のリソースを新規作成し、
仮想ネットワークゲートウェイに紐づける。

図3.環境構成(BGP設定後)

■想定外の事態

オンプレ環境BとのVPN接続そのものは成功し、
オンプレ環境BからBGPで広報された経路情報が受信できていることも確認しました。

しかし、Azure側からオンプレB側に、本来は広報する必要のない
経路情報まで広報されていることが判明。

それは何かというと、「・前提条件」の項で説明した、
オンプレ環境Aのローカルネットワークゲートウェイに設定されている
アドレス空間の情報でした。

サポートに独自で問い合わせた結果、以下の回答が得られました。
・各ローカルネットワークゲートウェイのアドレス空間の情報を
 広報するのは、想定された動作である。
・特定の経路情報だけを広報するようユーザ側で制御することはできない。

個人的にショックだったのは2番目の回答でした。
その辺りは自由に設定できるものだと思い込んでいたので、意表を突かれました。。。
(※広報したい経路情報を制御できるクラウドサービスも存在します)

■対処

VPN Gateway⇔オンプレ環境Aに対応する接続リソースを削除しました。
VPN接続が途絶されたことで、経路情報も広報されなくなりました。

■最後に

この度、私がAzureでBGPを利用してのはじめての検証は以上になります。
経路情報の制御や、ネットワーク構成のルールといった点において
壁にぶつかってしまったものの、それも含めてよい勉強になりました。
今後、さらにAzureについて学びを深めていきたいと思います。


この記事が気に入ったらサポートをしてみませんか?