VPC のCIDR追加時はプライベートIPアドレスの重複に注意する
概要
- 今回は、AWS 環境において、VPC にセカンダリ CIDR ブロックを追加しようとした際に発生する、プライベートIPアドレス範囲の制限について解説します。
症状
- VPC において、既存のCIDR ブロック(例:10.0.0.0/8 の一部)ではIPアドレスが不足し、RFC 1918 で定められている他のプライベートIPアドレス範囲(例:172.16.0.0/12や192.168.0.0/16)からセカンダリCIDR ブロックを追加しようとすることがあります。しかし、この際に予期せぬエラーが発生し、追加が拒否される場合があります。
- 実際に、既存のVPC CIDRが10.100.0.0/24(10.0.0.0/8の範囲)である環境で、192.168.0.0/18の追加を試みたところ、以下のエラーメッセージが表示されました。
The CIDR '192.168.0.0/18’ is restricted. Use a CIDR from the same private address range as the current VPC CIDR, or use a publicly-routable CIDR. For additional restrictions, see https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html
- 以下は、実際のコンソール画面です。

原因
- エラーの原因は、VPC の仕様により、RFC 1918 で定義されている異なるプライベートIPアドレスの範囲をまたいでCIDR ブロックを追加することが制限されているためです。
- プライマリCIDRブロックとして以下の3つのRFC 1918で定められたプライベートIPアドレス範囲のいずれかを選択した場合、他の異なるRFC 1918の範囲に属するCIDRブロックをセカンダリとして追加することができません。
| 既存のVPC CIDRの範囲 | 制限される関連付け |
|---|---|
| 10.0.0.0/8 | 他の RFC 1918 範囲 (172.16.0.0/12 および 192.168.0.0/16) からの CIDR ブロック |
| 172.16.0.0/12 | 他の RFC 1918 範囲 (10.0.0.0/8 および 192.168.0.0/16) からの CIDR ブロック |
| 192.168.0.0/16 | 他の RFC 1918 範囲 (10.0.0.0/8 および 172.16.0.0/12) からの CIDR ブロック |
対処方法
- この制約に直面した際、VPC のIPアドレス空間を拡張するために選択できる対処法は以下の2点です。
対処法①:既存のプライベートアドレス範囲内での拡張
- 最もシンプルな解決策は、現在VPCが使用しているRFC 1918 の同じアドレス範囲(今回の例では 10.0.0.0/8 の範囲内)から、未使用のCIDRブロックを選択して追加することです。
対処法②:パブリックルーティング可能なCIDRの使用
- もしセカンダリCIDR ブロックがプライベートIPアドレスである必要がなければ、パブリックルーティングが可能なIPv4アドレス をセカンダリCIDRとして関連付けることができます。
