こんにちは。
最近、IaaS を自分で触ってなかったので、久々に仮想ネットワーク回りを自分で触ってみました。
今回は、今時点で仮想ネットワークでプライベートなネットワークを構成する上での基礎の基礎的な部分を、自分の知識の整理という位置付けでおさらいをしてみました。
今回試したこと
検証計画
今回は、以下の絵のような構成を作成してみました。
West US 2 と East US 2 をメインに、VPN 接続は South Central US を混ぜた構成にしています。
ざっくりいうと、US 中を Azure の仮想ネットワークでつなげた構成です。
検証結果
以下のような通信ができる環境ができました。
通信不可のオレンジの部分も、通信できるようにはできますが、今回はあえてしてないです。
各ネットワークのルーティングテーブル
前の項で、通信結果を絵にまとめているので、だいたいイメージができると思いますが、各 vnet のルーティングテーブルを載せておきます。
※ 2018/10/31 追記
ルーティングテーブルの確認方法の記事をかきました。
◆vnet111
vnet111 では、Virtual network Gateway が、vnet112,vnet113,vnet221 の場所をわかっている状態です。
vnet peering は、ない状態ですね。
◆vnet112
vnet112 では、vnet221 と vnet peering でつながっていて、
Virtual network Gateway が、vnet111とvnet113を知っている状態です。
◆vnet113
vnet113は、vnet111と同じような状態で、
Virtual network Gateway が、vnet111とvnet112とvnet221を知っている状態で、
vnet peering はない状態です。
◆vnet221
vnet221は、vnet112 と vnet peering でつながっていて、
Virtual network Gateway が vnet111 と vnet113 を知っている状態です。
ただ、Virtual network Gatewayは、vnet112 の VPN Gateway となります。
※ vnet221には、VPN Gateway はないです。
◆vnet222
vnet222 は、vnet221と vnet peering でつながってるだけです。
いくつか気になる点はあるかもしれませんが、次の項から解説をします。
なお、解説は、
- VPN 接続
- vnet Peering
の2つにわけでまとめます。
VPN 接続
今回の検証、VPN 接続では、vnet to vnet の接続を試しました。
ちなみに、VPN 接続には、このほかに、Site to Site 接続、Point to Site 接続や、ExpressRoute接続がありますが、今回は環境の問題で vnet to vnet 接続のみを試しています。
(っていうか、Expressroute 接続は、個人でやるのはきつい。。。誰か環境貸してくれないかなー。)
VPN 構成の設計には、以下のドキュメントに書いてあります。
ちなみに、VPN Gateway では、最大トンネル数が 30 個の制限があります。
30 個を超える大規模ネットワークを構築する場合は、Virtual WAN を利用することがドキュメントにも記載されています。
設定概要
今回の VPN Gateway は、
- VPN Type は、Route-Based
- Active-Active mode
で、構成しています、
VPN Type を、Route-Based にしたのは、vnet to vnet 接続だと、Policy Based が選択できないからです。
Active-Active mode を選んだのはなんとなくw
構築手順は、
- vnet の作成
- VPN Gateway を作成
- VPN Gateway 同志を接続する
って感じです。
補足
VPN接続で利用する Gateway について
Gateway は、以下の2種類のリソースがあります。
- Virtual Network Gateway
- Local Network Gateway
使い方としては、Azure vnet に置く Gateway が、Virtual Network Gateway
オンプレミス側のGateway として、Local Network Gateway
があります。
絵にするとこんな感じ
VPN Typeについて
VPN Type は以下の2つがあります。
- Policy Base
- Route Base
Policy Base は、ドキュメントを読むとクラシックデプロイメントの静的ルーティングと呼ばれていたものとのこと。
ただ、使えるのが、
- Site to Siteのケース
- SKU は Basic のみで、他との互換はない(つまり対向も、Basic が必要)
- トンネルは 1 つのみ
と、とても限定的なものです。
ちなみに、Route Base は、Site to Site 接続もフォローしているので、新規にネットワークを組む時には、Route Base でいいと思います。
それぞれのサポート範囲はドキュメントから持ってきました。
BGP
BGP に関しては、以下のドキュメントに記載されています。
vnet to vnet 接続だけで構成する場合は、特に何も関係ありませんが、オンプレミスとの Site to Site 接続を行う場合に、オンプレミス側の VPN GW が BGP に対応している場合に利用できると考えていいと思います。
ちなみに、SKU は、Basic は BGP 非対応となります。(つまり、VPN Type が Policy Base の Virtual network Gateway は非対応)
BGP を使うとこんなことができちゃいます。(ドキュメントより抜粋)
VPN Gateway の高可用性
VPN Gateway の高可用性については、以下のドキュメントに記載されています。
簡単に言ってしまえば、Active – Active の構成を作ってしまえばいいってことですね。
Virtual network Gateway であれば、Act – Act 構成を作るのには、チェックボックスにチェックを付けるだけです。
ただし、Public IP を 2つ使うことになることにはご注意を。
vnet peering
今回の環境では、vnet peering は、以下の2パターンを使っています。
- VPN Gateway を持っている vnet との peering(VNET112 と VNET121 の間の Peering)
- VPN Gateway を持たない vnet 間の peering(VNET121 と VNET122 の間の Peering)
疎通結果の絵を見て頂くとわかる通り、VPN GW をもつ vnet と Peering をした場合、VPN GW を Transit して、VPN GWの接続先にルーティングすることができます。
ちなみに、Vnet peering についてのドキュメントは、以下になります。
設定概要
VPN Gateway を持っていない vnet 間の peering
VPN Gateway を持っていない vnet 間の peering は、vnet 間を L2 ネットワークで接続したような通信ができます。
イメージ的には、Hub 配下で構成されている ネットワーク同士をそのままつなげるような感じ。
ですので、接続した vnet 間を相互に通信することができます。
今回ですと、vnet122 と vnet121の関係です。
VPN Gateway を持っている vnet 間の peering
VPN Gateway を持っている vnet との peering は、VPN Gateway を介して他のネットワークと通信することができます。
今回ですと、vnet121 から、vnet112の GW を介して、vnet111 と vnet113 と相互に通信できるようになっています。
設定方法は、vnet121 から vnet112 への peering の設定では、Use remote gateways を有効にし、
vnet112 から vnet121 への peering の設定で、Allow gateway transit を有効にするだけです。
補足
リージョン間の Peering をした際の通信速度と、クラシックデプロイメントの対応
vnet peering で接続した場合、通信が使う回線は、Microsoft のバックボーンネットワークを使用することになります。
で、これがめちゃめちゃ早いです。
Global vnet peering は、去年の Microsoft Ignite で Preview したのですが、その時に測定した結果で、1Gbps 以上出ていました。
今は、さらにスピードが出ます。
また、仮想ネットワークは、ARM のものと ASM(クラシックデプロイメント)の二つがあるのですが、ARM と ASM の仮想ネットワーク間でも Peering することができます。
ちょうどその辺は、1年前にネスケラボで以下の記事を書いていますので、よかったらご覧ください。
まとめ
Azure の仮想ネットワークは、ネットワークの知識があまりなくても構築できるサービスとなっています。
ただ、複雑な構成になったり、ネットワークの数が増えてきた場合は、以下を意識して設計した方がよさそうです。
- ネットワーク同志が接続できる
- ネットワーク的に接続(ルーティング)することができる。
また、リージョン間の接続でも、VPN 接続と vnet peering のどちらでも構築することができますので、料金の違いやネットワークの速度を意識して構成する必要もあります。
まぁー、MS のバックボーンネットワークはとても高速ですので、その経路をうまく使いたいですよね。
オンプレミスと接続するケースでは、仮想ネットワークを使うことがとても多いので、色々試してみてうまく使いこなしちゃいましょう~!!
それにしても、こんなに長い記事になっちゃったけど、誰か読むのかなw
※ 2018/11/18 追記
Virtual Network Gateway と VNET Peering を使ったネットワークの構築例的な記事を書きましたので、よかったらこちらもご覧ください。
コメント