【VPC/サブネット】AWSによる予約IPアドレスについて

【VPC/サブネット】AWSによる予約IPアドレスについて

Amazon VPC(Virtual Private Cloud)のサブネットについて、AWSによる予約IPアドレスについて紹介します。

VPCとは、AWSが提供する仮想ネットワークです。
サブネットは、そのVPCをIPアドレスで論理的に切り分けたものになります。
AWS上のリソースは、基本的にはこのサブネットに対して配置していくようになっています。

そのサブネットですが、実はCIDRで指定した分のIPアドレスをすべて使用できるわけではありません。
一部のIPアドレスは、AWSが予約したIPアドレスであり、利用者側が自由に使うことができません。

この記事を読むことで、サブネットについてAWSが予約したIPアドレスを知ることができます。

サブネットで使用できないIPアドレス

サブネットで使用できないIPアドレスは、下記の通りです。
(ここでは、例として10.0.0.0/24でサブネットを作成したと仮定します)

  • 10.0.0.0 ネットワークアドレス
  • 10.0.0.1 VPCルータ用のアドレス
  • 10.0.0.2 DNSサーバのIPアドレス
  • 10.0.0.3 将来利用のためAWSが予約
  • 10.0.0.255 ブロードキャストアドレス

要約すると、
サブネットの先頭4つと末尾の、計5つのIPアドレスを使用することができません。

したがって、
サブネットは /28 ~ /16 の範囲で分割することができますので、
最小の /28 で区切ると、利用できるIPアドレスは11個、
最大の /16 で区切ると、利用できるIPアドレスは65,531個となります。

使用できない理由

では、それぞれの理由について紹介します。

ネットワークアドレス・ネットワークブロードキャストアドレス

ネットワークアドレスとブロードキャストアドレスは、AWSに限った話ではなく、
サブネットマスクの仕組みとして利用されるIPアドレスです。

ネットワークアドレスは、ネットワーク自体を指すアドレスとして使用されます。
ブロードキャストアドレスは、そのサブネット内の全てのホストに送信するアドレスとして使用されます。

VPCルーター

VPCルーターのIPアドレスです。

パブリッククラウドでも、どこかに必ずデータセンターがあり、そこでネットワーク機器が動作しています。
ルーターもそのうちの一つで、ルーターにもIPアドレスを割り当てる必要があります。

DNSサーバー

DNSサーバーのIPアドレスです。

このDNSサーバーは、サブネット内のリソースからAWSリソースへの名前解決で使用されます。
例えば、サブネット内のEC2インスタンスは、デフォルトでこのDNSサーバを参照するように /etc/resolve.conf に記載されています。

# cat /etc/resolve.conf
; generated by /sbin/dhclient-script
search ap-northeast-1.compute.internal
nameserver xx.xx.xx.xx <—– ここにDNSサーバのIPアドレスが記載

サブネット設計のポイント

最後に、サブネット設計のポイントを紹介しておきます。

今回紹介したように、サブネットにはAWSに予約されたIPアドレスが5個あります。
そのため、利用したいIPアドレスの数で、CIDRを入力しないようにする必要があります。

例えば、サブネット内で最大14個のIPアドレスを使用したい場合、
CIDR表記では /28 にすることで、16個のIPアドレスが割り当てられるので条件を満たしているように見えますが、
AWSに予約されたIPアドレスのことを考えると、/28 では 11個しか使用できず、3個足りません。
この場合は、 /27 (32 – 5 = 27個のIPアドレスを使用可能)のサブネットにするのが望ましいです。

また、マネジメントコンソールで利用可能なIPアドレスの数は確認することが可能です。

後々のトラブル防止のために、サブネットを作成した際に、念のためこちらの項目を確認することをおすすめします。

そのほか、サブネットはルーティングポリシーに応じて分ける・高可用性のために2つ以上のAZに分けるなどの設計が推奨されています。

まとめ

今回は、サブネットにおけるAWSによる予約IPアドレスについて紹介しました。

AWSによる予約IPアドレスの数は、合計5個です。
サブネットを設計する際には、この分のIPアドレス数を考慮して設計する必要があります。

\ 私たちと一緒に働きませんか? /

エムトラッドでは現在デザイナー・エンジニアを募集しています!