🦐

【Azure】予約アドレスに気を付けよう

に公開

はじめに

Azureにて、ネットワークの詳細設計を行う中で、自由に使用できるIPアドレスは範囲にある全てではないことを知りました。今回はその概要についてまとめます。
https://learn.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-faq#are-there-any-restrictions-on-using-ip-addresses-within-these-subnets

予約アドレスとは

各サブネットにおいてAzure側によってあらかじめ予約されているIPアドレスです。
予約アドレスの数は5つであるため、自由に使用できるIPアドレス数は『範囲全部の数-5』となります。

例えば、
192.168.0.0/24のVNetがあり
192.168.0.0/27のサブネットを作成したとします。

下記の5つはすでに予約済みのIPアドレスであるため使用することができません。

IPアドレス 用途 説明
192.168.0.0 ネットワーク アドレス サブネット全体を表すためのアドレス。ホストには割り当て不可。
192.168.0.1 予約済み (デフォルト ゲートウェイ) Azure によってデフォルトゲートウェイとして予約されている。
192.168.0.2 ~ 192.168.0.3 予約済み (Azure DNS マッピング) Azure DNS IP アドレスを仮想ネットワーク空間にマップするために予約されている。
192.168.0.31 /27の場合のブロードキャストアドレス サブネット内の全ホスト宛通信に使用されるため、利用不可。
デフォルトゲートウェイ/DNSマッピングについて

デフォルトゲートウェイとは

デフォルトゲートウェイとは、サブネットの外部(他のサブネットやインターネットなど)に通信を行うための出口となるアドレスです。
仮想マシン(VM)などがサブネット外のリソースへ通信するとき、通信はこのデフォルトゲートウェイを経由してAzureの仮想ルーターに渡されます。このアドレスはAzure内部で管理されており、ユーザーが直接利用したり、リソースに割り当てたりすることはできません。

DNSマッピングとは

Azureでは、仮想ネットワーク内のリソース(VMやPrivate Endpointなど)から、
名前解決(FQDN → IP変換)を行うために 内部DNSサーバー(168.63.129.16) を提供しています。
ただし、このDNSサーバーは「Azure全体で共通の仮想サービス」であり、各サブネットごとに“そのDNSへつなぐための中継点が必要です。
その中継点として使われているのが、サブネット内の192.168.0.2〜192.168.0.3 の2つのIPアドレスです。

VM (192.168.0.4) が "myvm.internal.cloudapp.net" を名前解決しようとする
     ↓
DNS問い合わせを仮想ネットワーク内に送信
     ↓
192.168.0.2 or 192.168.0.3 が Azure DNS (168.63.129.16) に中継
     ↓
名前解決結果(IPアドレス)がVMに返る

実際に確認してみる

AzureではPrivateEndpointを作成するときに、IPアドレスを『静的』と『動的』に設定することができます。静的の場合、個人でIPアドレスを決めることができ、動的では頭から順に自動割り当てがされます。
これらを活用して、本当に予約アドレスを使用することができないのか確かめます。

VNetとサブネットを作成します。

このBlobStorageにPrivateEndpointを作成して、紐づけてみます。

動的で確認

予想では、頭から順にIPアドレスが振られるので、192.168.0.4がつくはずです。

予想通り、192.168.0.4でした。

静的で確認

次に、静的に設定する際に、手動で予約アドレスを選ぶことができないか確認します。




やはり予約アドレスによって既に使用されており、設定することができませんでした。

まとめ

Azureでネットワークの設計を行う際は、自由に使えるIPアドレスには範囲があるということを理解しました。IPアドレスの割り振りには気を付けていきます。

ヘッドウォータース

Discussion