3
2

More than 1 year has passed since last update.

IPv4 しか話せないWEBサーバーと Azure Front Door を組み合わせて、IPv6 に対応させてみる

Last updated at Posted at 2022-12-18

Azure Front Door で IPv6 to IPv4 ができる…?

IPv4 の WEBサービスを Azure へリフトしたものの、IPv6のクライアントからのアクセスへの対応はどうしようか… という場合があります。
「Azure では IPv6/IPv4変換はできないんだ…おわった…」と思っていたら、実は Azure Front Door を立てるだけでアッサリ対応できました! というお話です。

Azure Front Door は IPv4のみならず IPv6 対応のサービスですので、クライアントからの IPv6アクセスを受け付けてくれます。また、Azure Front Door のバックエンドには IPv4も用意されており、IPv6 に対応できない WEBサービスとも IPv4 で疎通が可能です。

環境用意

環境用意と言っても、以下の図のように、IPv4のみのバックエンドの前に、Azure Fornt Door を用意してあげるだけです。

image.png

早速 Azure Front Door をデプロイしてあげました。
試しに、Azure Front Door の エンドポイント を名前解決してみると、確かに IPv4 と IPv6 両方を持っていることが確認できます。IPv6 で受付してくれそうです!

image.png

image.png

バックエンドには、IPv4 の IPアドレスしか持たない WEBサーバーを立てておきます。
今回は IPv4 のパブリックIPアドレスのみを割り当てた Windows Server に、IIS をインストールしたものを用意しました。
当たり前ですが、このままでは、このWebサーバーには IPv4 でないと到達できません。

  • IPv4 クライアントからのアクセス
    image.png

  • IPv6 クライアントからのアクセス
    image.png

念のためWEBサーバー内で、アクセスログを確認しておきましょう。
IISですので、アクセスログの設定は [IIS manager] を開いて [Logging] を選択すると、設定ができます。
既定のままでも、接続元IPアドレスが記録されるようになっていると思いますので、今回特に設定は変更してはいません。
ログの保管されているディレクトリを開き、ログファイルを確認てみます。

image.png
image.png
image.png

147.243.. などからのアクセスが記録されています。
また、正常性プローブの確認であることも記録されています。

実はこの 147.243.. というIPアドレスは、 Azure Front Door のバックエンドのIPアドレスです。
Azure Front Door は、ユーザからの接続を受け付けるフロントエンド側のIPアドレスと、バックエンドと接続するためのIPアドレスが、異なっているサービスなのです。

なお、バックエンド側のIPアドレスについては こちら で公開がされています。
NSGで接続を許可する場合には、サービスタグで「AzureFrontDoor.Backend」を許可することで、許可できます。

確認結果: IPv6クライアントから表示できました!

さて、Azure Front Door を配置することで、IPv6 で疎通可能になったかどうか、確認をしてみます。
確認用のクライアントとしては、パブリック IPv4 を持たず、IPv6 のみをもつ VM を作成しておきます。

image.png

ipv6しか持っておらず、大丈夫そうです。
image.png

それでは、Azure Front Door のURLを開いてみましょう。
結果は以下の通りで、無事、 IIS のお馴染みのページが表示できました!

image.png

アクセスログを確認すると、Azure Front Door のバックエンドIPアドレス からの アクセスであることが記録されています。

image.png

2022-12-18 13:08:48 10.1.0.4 GET / - 80 - 147.243.28.137 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/108.0.0.0+Safari/537.36+Edg/108.0.1462.46 - 200 0 0 1
2022-12-18 13:08:48 10.1.0.4 GET /iisstart.png - 80 - 147.243.28.137 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/108.0.0.0+Safari/537.36+Edg/108.0.1462.46 http://***-ckh3fsfyafe5acgq.z01.azurefd.net/ 304 0 0 1
2022-12-18 13:08:48 10.1.0.4 GET /favicon.ico - 80 - 147.243.28.137 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/108.0.0.0+Safari/537.36+Edg/108.0.1462.46 http://***-ckh3fsfyafe5acgq.z01.azurefd.net/ 404 0 2 1

Azure Front Door を設置することで、IPv6 からの接続を受け付けることができるようになりました。
一方で、クライアントの発信元IPアドレスが確認できなくなってしまいますので、取得したい場合には x-forwarded-for を確認する必要がありそうですね。

デュアルスタック

なお、WEBサービス自体も IPv6 対応できるのであれば、Azure VM は IPv4 と IPv6 デュアルスタック可能ですので、普通に VMに IPv6 を持たせればよいと思います。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2