世界の中心で Azure Firewall を置いてみる

さて、前回は以下記事にて、Azure Firewall Manager を使って、オンプレネットワークの通信をコントロールしてみました。

minorun40.hatenablog.com

今回は、引き続きこの環境を使って Azure Firewall でネットワークトラフィックの集中管理をやってみたいと思います。前回の環境がある前提で話が進みますので、まだの方は前回の記事を参考に作ってみてください。
※本記事は、プレビュー中である Azure Firewall Manager を使っているため、一般提供時に画面や操作手順他が変わる可能性があります。
※ちなみに、Azure Firewall 、 Virtual WAN はそれぞれ単体のサービスとしては一般提供されています。

さて。

Azure Firewall はインターネット ⇔ Azure 内部 の通信をコントロールできますが、実は Vnet 間や VPN のブランチ間の通信もコントロールできるのです。

ということで、今回は以下のような構成を作ってみたいと思います。

f:id:minorun40:20200512223548p:plain

今回構築する構成

ではやってみます。

新しい Vnet を作成して接続する

  • 新しい Vnet を作成します。注意として、今回のネットワーク構成の場合、AzureVM への RDP 接続は Bastion 経由でないとうまくいきません。これは、インターネット向けの通信が全て Azure Firewall を通るようになるため、そのポートが空いてないことによります。ですので、最初から AzureBastionSubnet を作っておきましょう。

f:id:minorun40:20200512223808p:plain

  • Virtual WAN の Virtual network connections から作成した Vnet を接続します。

f:id:minorun40:20200512223918p:plain

  • 接続してしばらくすると、オンプレ側ネットワークにも新しい Vnet の情報が流れてきます。オンプレ NW 側の ネットワークインターフェイスで有効なルートを確認してみましょう。

f:id:minorun40:20200512224123p:plain

仮想マシンを作成する

作成された Vnet に接続される仮想マシンを作ります。インターネットからの RDP 、パブリック IP を設定しないようにします。

f:id:minorun40:20200512224502p:plain

f:id:minorun40:20200512224516p:plain

  • 作成したらこちらもネットワークインターフェイスを見てみましょう。ルート情報が伝播されていますね。

f:id:minorun40:20200512224648p:plain

  • 事前に作成した AzureBastionNetwork に Bastion をセットアップしてみましょう。

f:id:minorun40:20200512224747p:plain

  • Bastion が出来上がると仮想マシン接続の際に Bastion が選択できるようになります。ポータルから複数タブで仮想マシン接続を同時に行えます。便利…!

f:id:minorun40:20200512224845p:plain

  • Azure Firewall Manager から「 Secured Virttual Hubs 」→ 該当の Hub を選択→「 Settings 」「 Connections 」を確認し、新しく接続された Vnet 接続が Secured になっていることを確認します。

f:id:minorun40:20200512225129p:plain

  • 「 Route Settings 」から Traffic from Virtual Networks の箇所を「 Send via Azure Firewall 」に設定して、保存します。(※ 2020/5/10 現在 この設定が、Azure ポータルの言語設定が日本語だとうまく設定できません。こちらの設定をする際には、ポータルの言語設定を English に変更してから設定ください)

f:id:minorun40:20200512225426p:plain

疎通確認してみましょう

  • 疎通確認する前に! Windows Server はデフォルトで Ping に応答するように設定されていません。こちらを参考に、Windows Firewall を設定しておきましょう。

Windows Server 2016 : 初期設定 : Ping 応答を許可する : Server World

 

  • オンプレ NW 、Azure Vnet それぞれのサーバにログインして、相互に Ping を飛ばしてみます。双方通りますね。

f:id:minorun40:20200512225925p:plain

オンプレ NW → Azure Vnet への ping

f:id:minorun40:20200512230010p:plain

Azure Vnet → オンプレ NW への ping

 

  • Azure Vnet に追加した仮想マシンからインターネットアクセスします。前回と同じように、Google は 接続できず、 Bing には接続できますね。同じ FW ポリシーが適用されていることがわかります。

f:id:minorun40:20200512230216p:plain

Google は接続できない

f:id:minorun40:20200512230251p:plain

Bing にはアクセスできる

以上、終わり。

簡単すぎますね・・・

 

ところが、これでは世界の中心に Azure Firewall を置いてみたことにはならないですね。オンプレ NW と Azure Vnet 間の通信も制御しなくては(使命感

 

Azure Firewall を再度設定する

  • 再度、Azure Firewall Manager から「 Secured Virttual Hubs 」→ 該当の Hub を選択→「 Settings 」「 Rpute settings 」を確認します。ここで、「Azure Private traffic 」という設定がありますね。ここが Bypass Azure Firewall になっているはずです。これを、Internet traffic と同じように Send via Azure Firewall に変更して保存します。この時、現時点では IP アドレスプレフィクスを設定しないといけないようなので、今回のオンプレ NW と Azure Vnet のアドレス帯を登録しておきます。

f:id:minorun40:20200512230840p:plain

  • そうすると、今度は 仮想マシン間の Ping が通らなくなります。はて、、

f:id:minorun40:20200512231029p:plain

  • ここで思い出してほしいのですが、一番最初に作成した Firewall Policy です。こいつは Azure Firewall のポリシーにアタッチされています。

f:id:minorun40:20200512231156p:plain

  • このリソースの「 Settings 」→「 Rules 」を開いて、ネットワーク疎通のルールを追加しましょう。

f:id:minorun40:20200512231318p:plain

  • そうすると、オンプレ NW (192.168.0.0/16)→ Azure Vnet (172.16.0.0/16)への Ping が通ります。しかし、その逆は通りません。ルール設定どおりですね。

f:id:minorun40:20200512231523p:plain

オンプレ NW → Azure Vnet への ping は OK

f:id:minorun40:20200512231558p:plain

Azure Vnet → オンプレ NW への ping は通らない

いかがでしたでしょうか。

Azure Firewall を中心に置くことで、オンプレ拠点や Azure Vnet まで含めたネットワークを統合し、相互の通信を制御できることが理解いただけたかと思います。最終的にはこのような複雑なネットワークも管理できますね。

f:id:minorun40:20200512231901p:plain