ExpressRouteの冗長構成時にトラフィックの経路を制御する
ExpressRouteの冗長化構成を組む場合に、トラフィックの経路を明示的に指定したいというご要望があります。
わかりやすい例としては、通常時は、お客様の東日本拠点とAzureの東日本リージョン上のVNetの間の経路を使用し、広域災害などDR発動時に接続先をAzure西日本リージョンに切り替えるといったケースです。(逆のケースも含めて)
通常時
DR発動時
では、このようなご要望を実現するためにはどうすればよいでしょうか。
これから、トラフィックの向きごとに実現方法をご説明します。なお、本内容は、プライベートピアリング(VNet接続)経由であることを前提とします。
お客様拠点からAzure向けのトラフィック
お客様ネットワーク内のL3機器にてBGP Local Preference属性を使用・設定することで、お客様拠点からAzure向けのトラフィックの経路制御が可能です。
BGP Local Preference属性
最も評価優先度が高いBGP属性で、トラフィックが特定の経路を経由するポリシーを反映するために使用されます。32ビットの整数で表わされ、数値の「大きいほう」が優先されます。(デフォルトは『100』)
上記図の例では、優先したい最寄りのVNet向けの経路を『400』として、DR用の経路をデフォルトの『100』としています。
Azureからお客様拠点向けのトラフィック
実現方法として大きく2つの方法があります。まず、一つ目はBGP AS-Path属性(AS-Pathプリペンド)で優先経路を指定する方法です。
BGP AS-Path属性
経路選択の際、Local Preference値が同じ場合には、AS-Pathが短い経路情報が優先されます。この特性を活かし、自身の経路情報を近隣ASに広報するときに通ってほしくないAS向けに自身のAS番号をあえて余分に付加し、AS-Pathを長く見せることで(AS PATH プリペンドと呼ばれる手法)、外部から自身宛に流れてくるトラフィックの経路を優先的に制御するようなポリシーを実装することが可能です。
東日本・西日本拠点で各々プレフィックスがシンプルに分けられているようなケースであれば、AS-Pathでの経路指定は有効な手段となります。
※凡例:
- 東日本拠点:10.0.0.0/10
- 西日本拠点:10.64.0.0/10
しかしながら、お客様の拠点ごとにプレフィックスがバラバラでまとめられない場合は、拠点の新規開設や統廃合がある都度、ルーターの設定変更が必要となるケースも多分に考えられます。
※凡例:10.0.0.0/8を全国の拠点で利用
東京オフィス:10.0.0.0/12
名古屋オフィス:10.16.0.0/16
横浜オフィス:10.17.0.0/16
大阪オフィス:10.18.0.0/16
・・・
そこで、AS-Pathプリペンドの代わりになるのが、ExpressRoute回線での重み付け設定(RoutingWeight)です。
ExpressRoute回線と仮想ネットワーク(VNet)をリンクする際に、ローカル接続側に割り当てる重み付けをリモート接続側よりも大きくなるように指定します。(上記図の例では、ローカル接続側が『100』で、リモート接続側がデフォルトの『0』)VNet は、複数の接続上でもう一方の VNet のプレフィックスを受信すると、重みが大きい方の接続を優先的に選んで、そのプレフィックス宛てのトラフィックを送信することが可能です。
この重み付けは、ExpressRoute回線に対してPowerShell コマンドで設定します。
詳しくはこちら↓をご参照ください。
※追伸:
広域災害・機器や回線の故障/障害時などによる突発的なルート切替が発生した場合の所要時間は、ExpressRouteのBGPホールド時間が180秒(3分)でkeep aliveメッセージが60秒ごとに送信されることから、3分程度になろうかと想定されます。
最後に・・・大事なおことわり
お客様WAN内の拠点の局所障害や通信機器の故障・障害に伴う経路切替については、別途ご契約の通信キャリア様およびネットワークを担当するSIer様などとよくご相談・ご確認いただいた上で設計・実装を進めていただけますよう、お願いいたしますm(_)m
ご参考