Azure上のPalo Altoで複数のPublic IPを使ってSNATする方法

Paloalto Paloalto
この記事は約5分で読めます。

Azure上にPalo Altoを構築する場合、インターネットへ接続する際の送信元IPを複数使い分けたいケースがあります。

例えば、仮想マシンごとに異なるPublic IPからインターネットへ通信させたい場合、Palo AltoのSNAT設定とAzure側のNIC設定を組み合わせることで実現できます。

今回は、Azure上のPalo Altoに複数のPublic IPを設定し、送信元の仮想マシンごとに異なるPublic IPを使用してSNATできるか検証しました。

PANOS内ではNATポリシーやインターフェースなどの設定を投入していくことになりますが、その際の設定値についても調べてみました。

広告

1.検証構成

今回の攻勢を図として表すと以下の通りです。

Azure上でpaloaltoが複数の送信元IPとして扱うことができるのかについて検証したときの構成図

今回の構成では、Palo Altoのインターネット側インターフェース(ethernet1/1)に対応するAzure NICへ、2つのPrivate IPとPublic IPを設定します。

Private IPPublic IP
1つ目10.0.0.6852.253.104.17
2つ目10.0.0.6920.89.82.79

また、内部にはテスト用の仮想マシンを2台用意します。

  • テスト用VM1:172.16.0.4
  • テスト用VM2:172.16.0.5

それぞれのVMからインターネット側のIISサーバへアクセスし、IISのアクセスログから実際に使用された送信元Public IPを確認します。

【参考】Azure上にPalo Altoを構築する手順

Azure上にpaloaltoを構築する | Single VM-series Firewall
Azure上でpaloaltoのVMを構築し、Azure上にある仮想マシンからインターネットに向かう通信をすべてpaloaltoVM経由にする構成を試してみました。Azure側の設定とpaloaltoOS内の設定を入れ、最後にインターネット通信をpaloalto経由にしてログ確認するところまで試してみました。

2.送信元の仮想マシンごとに異なるPublic IPを使用してSNATする

以下の流れで設定値の確認と疎通の確認を実施していきます。

2-1.eth1のNICにおけるAzure側の設定値を確認

paloaltoのeth1に対応する仮想マシンのNICにおいて、[ip構成]に対して2つ目のプライベートIPと2つ目のパブリックIPが追加されていることを確認します。

 ※今回の構成では、eth1はインターネット向けのインターフェースとして設定しています。

eth1のNICにおけるAzure側の設定値を確認

【1つ目のIP】プライベートIP:10.0.0.68、パブリックIP:52.253.104.17

【2つ目のIP】プライベートIP:10.0.0.69、パブリックIP:20.89.82.79

2.paloalto内の設定値を確認

Azure側で追加されたプライベートIPをインターフェース設定で追加してPAN-OSに認識させます。

paloalto内のインターフェース設定値を確認

NATポリシーも各テスト用仮想マシンごとに異なるパブリックIP(ここではパブリックIPに紐づくプライベートIP)を利用するように設定を入れます。

paloalto内のNATポリシー設定値を確認

2-2.テスト用仮想マシン1からwebサーバ(IIS)に通信・IISのログを確認

テスト用仮想マシンからブラウザでIISサーバにアクセスし、paloaltoのログも確認します。

paloaltoのログ確認(テスト用仮想マシン1)

IIS側のログも確認します。

IISのログ確認(テスト用仮想マシン1)

少し時間がずれていますが、52.253.104.17が送信元として確認でき、

【[172.16.0.4] は [10.0.0.68 (52.253.104.17)] でNATする】というNATポリシーで設定したルールがしっかりと適用されていることがわかります。

2-3.テスト用仮想マシン2からwebサーバ(IIS)に通信をする・IISのログを確認

同じように、テスト用仮想マシンからもブラウザでIISサーバにアクセスし、paloaltoのログも確認します。

paloaltoのログ確認(テスト用仮想マシン2)

IIS側のログも確認します。

IISのログ確認(テスト用仮想マシン2)

こちらでは、20.89.82.79が送信元として確認でき、

【[172.16.0.5] は [10.0.0.69 (20.89.82.79)] でNATする】というNATポリシーで設定したルールがしっかりと適用されていることがわかります。

3.結果のまとめ

今回試した内容から、
Azure上に構築したpaloaltoにおいて、インターネット側のインターフェースが複数の送信元IPを持つことができる
といったことがわかりました。

4.[追加検証] サブインターフェースを利用した構成について

サブインターフェースを利用して今回のインターネット側のインターフェースが複数の送信元IPを持つという構成ができないか?についても検証をしてみましたが、

サブインターフェースだけにIPを設定した構成では、テスト用仮想マシンからインターネットに対して通信ができませんでした

正確には、以下の設定を入れたときに、最初は正常に通信が成立して通信ができるように見えるのですが、30分ほど時間がたつと通信ができなくなりました。

◆インターフェース設定(サブインターフェースだけにIPを設定した構成:通信NG

インターフェース設定(サブインターフェースだけにIPを設定した構成)

◆NATポリシー設定(サブインターフェースだけにIPを設定した構成:通信NG

NATポリシー設定(サブインターフェースだけにIPを設定した構成)

補足ですが、サブインターフェースに仮想ルーターとゾーンの設定を入れると通信ができなかったので、上記設定では仮想ルーターとゾーンの設定は[none]として設定しています。

その後もいろんなパターンを試した結果、

ethernet1/1に1つ目のIPを紐づけ、そのサブインターフェースに2つ目以降のIPを紐づける構成ではテスト用仮想マシンからインターネットに対して通信が可能でした。

その時の設定値も載せておきます。

◆インターフェース設定(1つ目のパブリックIPはethernet1/1を利用した場合:通信OK

インターフェース設定(1つ目のパブリックIPはethernet1/1を利用した場合)

◆NATポリシー設定(1つ目のパブリックIPはethernet1/1を利用した場合:通信OK

NATポリシー設定(1つ目のパブリックIPはethernet1/1を利用した場合)

この構成の場合にはNATポリシーで明示的なIPアドレスを指定しなくても通信が可能でした。

また、こちらの構成でもサブインターフェースの仮想ルーターとゾーンの設定は[none]としています。

5.まとめ

今回は、Azure上のPalo Altoに複数のPublic IPを設定し、送信元VMごとに異なるPublic IPを使用してSNATできるか検証しました。

結果として、以下の構成で正常に通信できました。

  • Azure NICに複数のPrivate IP/Public IPを設定
  • Palo Altoのethernet1/1に対応するIPを設定
  • SNATで送信元VMごとにPrivate IPを指定
  • インターネット側では、それぞれ対応するPublic IPを使用

Azure上のPalo Altoで送信元IPを使い分けたい場合は、この構成を利用できるかと思います。