Azure のネットワーク周りを整理してみる


ここ半年で Azure のネットワーク機能が進化しすぎて、正直ついていけません。
備忘とリンク集を兼ねて各種機能・接続形態を整理しておきます。(注釈がない限り ARM が対象です)

※ 2016/09/18 時点の情報に基づいて書いていますが、Azure の進化が速すぎるので記載が正しくない可能性が多分にあります。

Azure Network 関連機能

ざっと書き出すと、以下が Azure Network 関連機能ですかね。

ポータルに項目としてあるやつを書き出したつもりですが、これで網羅できてますかね…。(まだありそう)

Azure 内で VNet 同士を繋ぐ方法

最近 VNet Peering が増えたので、ざっくり三通り?

Azure とオンプレを繋ぐ方法

オンプレとの接続も三通り。

ただ、BGP の有無とか、Active-Active とか、オプションを組み合わせると膨大に…。

原則として Azure の VNet Gateway は IPsec のパラメーターをいじれないので、オンプレ側を調整して繋ぎましょう。(繋がらない・繋がってもすぐ切れる場合は、オンプレ側の VPN 機器で設定ミスってるか、ファームが古いか、そもそも対応してない可能性大で、Azure はほぼ問題ないです。ずっと繋がってたのが突如切れた場合を除いて。)

ExpressRoute の種類

ExpressRoute にも L2 / L3 の二種類のモデルあります。

  • L2 モデル
    国内だとおそらく Equinix のみが提供中で、L2 の名の通り回線設備のみを提供してくれます。
    ルーターのコンフィグ (経路制御とか) は全部自前でやる必要があるので、BGP が喋れない人には無理。
    l2
  • L3 モデル
    Equinix 以外の各社はルーターの面倒も見てくれる L3 モデルのはずです。(IIJ, Softbank, NTT Com, etc…)
    l3

それから、ExpressRoute は Azure のエッジ ルーターとオンプレ側のルーターを繋ぐ部分なので、上図の通り Azure エッジ ルーターと各 VNet にある Gateway をリンクする必要があります。リンクできる VNet は 10 個までです。(Premium アドオンが有効な場合はそれ以上)

同じジオ (日本だと東・西日本) 内の VNet にはバックボーン経由でリンクが可能で、その他にも費用が二倍かかりますが東・西日本でそれぞれ ExpressRoute 引いたりも多分できるはず。

multiregion

S2S VPN の種類

VPN は Gateway が二種類あります。

  • 静的 / ポリシー ベース / IKEv1
  • 動的 / ルート ベース / IKEv2

静的だと 1 拠点としか接続できないので、基本的には動的で。動的の場合には Basic / Standard SKU で 10 拠点、High Performance で 30 拠点まで行けます。ただし、オンプレミス側の VPN 機器が動的に対応していない場合は静的を使うしかないです。(対応状況はこちらおよび各ベンダーのページを確認しましょう。なお、国内でよく使われているヤマハの RTX は動的未対応です。)

それから、気づけば VPN でも BGP が喋れるようになりました。下図のように組めば、切断が発生しても BGP で経路が再計算されて、迂回経路を通るようにできます。(多分) 詳しくは図の拝借元でもあるこちらのドキュメントを参照。

multiple-active-tunnels

full-mesh-transit

さらに、Azure PowerShell 2.1.0 からは Active-Active というパラメーターが追加されています。まだコマンドのオプションがこっそり用意された段階で、プレビューにすらなっていないので使えないようですが、コマンドのエラーを見ると High Performance SKU 限定の機能のようです。通常は Active-Standby で単一の Public IP を持っている VPN Gateway (2 台) を、Public IP を一つずつ持たせて、Active-Active にできるようですね。(なんか発表されたら後日書き足します。)

VNet Peering の構成

まだ Public Preview 中ですが、Azure の “同一リージョン内” の VNet を VPN なしに接続できるのが VNet Peering です。Azure の基盤は NVGRE を使っているので、SDN 側でよしなに繋いでくれるんでしょう。

いろいろ組み合わせがありますが、現状以下の模様。ARM 同士を繋ぐ場合は、双方向で Peering が必要です。

  • 同一サブスクリプション内の ARM 同士: OK
  • 同一サブスクリプション内の ARM と ASM: OK
  • 異なるサブスクリプションの ARM 同士: 同一 AAD 配下なら OK (?)
  • 異なるサブスクリプションの ARM と ASM: NG
  • ASM 同士: NG

この辺は「焦げlog」さんが詳しいです。

 

また気まぐれで書き足します。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です