

# VPC CIDR ブロック
<a name="vpc-cidr-blocks"></a>

仮想プライベートクラウド (VPC) の IP アドレスは、Classless Inter-Domain Routing (CIDR) 表記で表されます。VPC には、関連付けられた IPv4 CIDR ブロックがある必要があります。オプションで、追加の IPv4 CIDR ブロックと、1 つ以上の IPv6 CIDR ブロックを関連付けることができます。詳細については、「[VPC とサブネットの IP アドレス指定](vpc-ip-addressing.md)」を参照してください。

**Topics**
+ [IPv4 VPC CIDR ブロック](#vpc-sizing-ipv4)
+ [VPC の IPv4 CIDR ブロックを管理する](#vpc-resize)
+ [IPv4 CIDR ブロック関連付けの制限](#add-cidr-block-restrictions)
+ [IPv6 VPC CIDR ブロック](#vpc-sizing-ipv6)

## IPv4 VPC CIDR ブロック
<a name="vpc-sizing-ipv4"></a>

VPC を作成するときに、VPC に IPv4 CIDR ブロックを指定する必要があります。許容されるブロックサイズは、`/16` ネットマスク（65,536 個の IP アドレス）から `/28` ネットマスク（16 個の IP アドレス）の間のサイズです。VPC を作成したら、VPC と追加の IPv4 CIDR ブロックを関連付けることができます。詳細については、「[CIDR ブロックを追加するまたは VPC から削除する](add-ipv4-cidr.md)」を参照してください。

VPC を作成するときは、[RFC 1918](http://www.faqs.org/rfcs/rfc1918.html) に指定されているように、プライベート IPv4 アドレス範囲からの CIDR ブロックを指定することをお勧めします。


| RFC 1918 の範囲 | CIDR ブロックの例 | 
| --- | --- | 
| 10.0.0.0～10.255.255.255（10/8 プレフィックス） | 10.0.0.0/16 | 
| 172.16.0.0～172.31.255.255（172.16/12 プレフィックス） | 172.31.0.0/16 | 
| 192.168.0.0～192.168.255.255（192.168/16 プレフィックス） | 192.168.0.0/20 | 

**考慮事項**
+ VPC に次の CIDR ブロックを指定することはできません。
  + 0.0.0.0/8
  + 127.0.0.0/8 (内部ホストループバックアドレス範囲)
  + 169.254.0.0/16 ([リンクローカルアドレス範囲](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#link-local-addresses))
  + 224.0.0.0/4 (マルチキャストアドレス範囲)
+ AWS サービスでの使用向けに VPC を作成する場合は、サービスドキュメントを参照して、その設定に特定の要件があるかどうかを確認します。
+ 一部の AWS サービスでは、`172.17.0.0/16` CIDR 範囲が使用されています。IP アドレス範囲がネットワークで既に使用されている場合、サービスで IP アドレスの競合が発生する可能性があります。例えば、AWS Cloud9 と Amazon SageMaker AI は `172.17.0.0/16` を使用します。競合が発生しないように、VPC を作成するときはこの範囲を使用しないでください。詳細については、「*AWS Cloud9 ユーザーガイド*」の「[VPC の IP アドレスを Docker が使用しているため、EC2 環境に接続できません](https://docs.aws.amazon.com/cloud9/latest/user-guide/troubleshooting.html#docker-bridge)」を参照してください。
+ RFC 1918 に指定されているプライベート IPv4 アドレスの範囲に含まれない、パブリックルーティングが可能な CIDR ブロックで VPC を作成できます。ただし、このドキュメントで使用される「プライベート IP アドレス」とは、VPC の CIDR 範囲に含まれる IPv4 アドレスのことです。
+ コマンドラインツールや Amazon EC2 API を使用して VPC を作成する場合、CIDR ブロックは正規形式に自動変更されます。例えば、CIDR ブロックに 100.68.0.18/18 を指定した場合、100.68.0.0/18 の CIDR ブロックが作成されます。

## VPC の IPv4 CIDR ブロックを管理する
<a name="vpc-resize"></a>

セカンダリ IPv4 CIDR ブロックを VPC に関連付けることができます。VPC に CIDR ブロックを関連付けると、ルートが VPC ルートテーブルに自動的に追加され、VPC 内でのルーティングが可能になります (ルーティング先は CIDR ブロックで、ターゲットは `local`)。

次の例では、VPC にプライマリ CIDR ブロックとセカンダリ CIDR ブロックの両方があります。Subnet A および Subnet B の CIDR ブロックは、プライマリ VPC CIDR ブロックからのものです。Subnet C の CIDR ブロックは、セカンダリ VPC CIDR ブロックからのものです。

![単一および複数の CIDR ブロックを使用する VPC](http://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/images/vpc-multiple-cidrs.png)


次のルートテーブルは、VPC のローカルルートを示しています。


| ルーティング先 | ターゲット | 
| --- | --- | 
| 10.0.0.0/16 | ローカル | 
| 10.2.0.0/16 | ローカル | 

CIDR ブロックを VPC に追加するときは、次のルールが適用されます｡
+ 許可されているのは、`/28` ネットマスクから `/16` ネットマスクの間のブロックサイズです。
+ CIDR ブロックは、VPC に関連付けられている既存の CIDR ブロックと重複してはいけません。
+ 使用できる IPv4 アドレスの範囲には制限があります。詳細については、「[IPv4 CIDR ブロック関連付けの制限](#add-cidr-block-restrictions)」を参照してください。
+ 既存の CIDR ブロックのサイズを増減することはできません。
+ VPC に関連付けることができる CIDR ブロックの数と、ルートテーブルに追加できるルートの数にはクォータがあります。そのため、クォータを超えると CIDR ブロックを関連付けることはできなくなります。詳細については、「[Amazon VPC クォータ](amazon-vpc-limits.md)」を参照してください。
+ CIDR ブロックは、VPC ルートテーブルのいずれかのルートの送信先 CIDR 範囲と同じ､またはそれ以上に大きくすることはできません｡ 例えば、プライマリ CIDR ブロックが `10.2.0.0/16` である VPC では、`10.0.0.0/24` のルーティング先が仮想プライベートゲートウェイになっているルートテーブル内に既存のルートがあります。`10.0.0.0/16` 範囲内のセカンダリ CIDR ブロックを関連付けるとします。既存のルートが原因で、`10.0.0.0/24` 以上の CIDR ブロックを関連付けることはできません。ただし、`10.0.0.0/25` 以下のセカンダリ CIDR ブロックを関連付けることは可能です。
+ VPC ピアリング接続の一部である VPC に IPv4 CIDR ブロックを追加するときは、次のルールが適用されます。
  + VPC ピアリング接続が `active` の場合、ピア VPC の CIDR ブロックと重複していない VPC に CIDR ブロックを追加できます。
  + VPC ピアリング接続が `pending-acceptance` の場合、リクエスタ VPC の所有者は、アクセプタ VPC の CIDR ブロックと重複しているかどうかにかかわらず、VPC に CIDR ブロックを追加できません。アクセプタ VPC の所有者がピアリング接続を受け入れるか、またはリクエスタ VPC の所有者が VPC ピアリング接続要求を削除し、CIDR ブロックを追加してから、新しい VPC ピアリング接続を要求する必要があります。
  + VPC ピアリング接続が `pending-acceptance` の場合、アクセプタ VPC の所有者は CIDR ブロックを VPC に追加できます。セカンダリ CIDR ブロックがリクエスタ VPC の CIDR ブロックと重複している場合、VPC ピアリング接続要求は失敗し、承諾されません。
+ Direct Connect を使用して Direct Connect ゲートウェイ経由で複数の VPC に接続する場合、Direct Connect ゲートウェイに関連付けられた VPC 間では重複する CIDR ブロックが許可されません。Direct Connect ゲートウェイに関連付けられたいずれかの VPC に CIDR ブロックを追加する場合は、追加する CIDR ブロックが、他の関連付けられた VPC の既存の CIDR ブロックと重複しないことを確認してください。詳細については、*Direct Connect ユーザーガイド*の「[Direct Connect ゲートウェイ](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-gateways.html)」を参照してください。
+ CIDR ブロックは、追加または削除に伴い、以下の状態を経過します: `associating` \| `associated` \| `disassociating` \| `disassociated` \| `failing` \| `failed`。CIDR ブロックは、`associated` 状態になると利用可能になります。

VPC に関連付けた CIDRブロックの関連付けを解除できます。ただし、VPC の作成当初に使用した CIDR ブロック (プライマリ CIDR ブロック) の関連付けを解除することはできません。Amazon VPC コンソールで VPC のプライマリ CIDR を表示するには、VPC のチェックボックスをオンにして **[VPC]** を選択し、**[CIDR]** タブを選択します。AWS CLI を使用してプライマリ CIDR を表示するには、次の [describe-vpcs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpcs.html) コマンドを使用します。プライマリ CIDR は最上位の `CidrBlock element` で返されます。

```
aws ec2 describe-vpcs --vpc-id {{vpc-1a2b3c4d}} --query Vpcs[*].CidrBlock --output text
```

以下は出力の例です。

```
10.0.0.0/16
```

## IPv4 CIDR ブロック関連付けの制限
<a name="add-cidr-block-restrictions"></a>

次の表には、既存の VPC CIDR ブロックの許可および制限された VPC CIDR ブロック関連付けの概要が記載されています。制限の理由は、一部の AWS サービスでは、AWS サービス側で競合しない CIDR ブロックを必要とするクロス VPC およびクロスアカウント機能を利用しているためです。


| 既存の IPv4 アドレス範囲 | 制限される関連付け | 許可される関連付け | 
| --- | --- | --- | 
| 10.0.0.0/8 | 他の RFC 1918\* 範囲 (172.16.0.0/12 と 192.168.0.0/16) からの CIDR ブロック｡<br />VPC に関連付けられたいずれかの CIDR ブロックが 10.0.0.0/15 の範囲 (10.0.0.0～10.1.255.255) である場合、10.0.0.0/16 の範囲 (10.0.0.0～10.0.255.255) から CIDR ブロックを追加することはできません。<br />198.19.0.0/16 範囲からの CIDR ブロック。 | 制限されていない /16 ネットマスクから /28 ネットマスクの間の 10.0.0.0/8 範囲にある他の CIDR ブロック。<br />/16 ネットマスクと /28 ネットマスクの間でパブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)、または 100.64.0.0/10 範囲にある /16 ネットマスクから /28 ネットマスクの間の CIDR ブロック。 | 
| 169.254.0.0/16 | 「リンクローカル」ブロックの CIDR ブロックは、[RFC 5735](https://www.rfc-editor.org/rfc/rfc5735) で説明されているように、予約されているため、VPC に割り当てることはできません。 |  | 
| 172.16.0.0/12 | 他の RFC 1918\* 範囲 (10.0.0.0/8 と 192.168.0.0/16) からの CIDR ブロック｡<br />172.31.0.0/16 範囲からの CIDR ブロック。<br />198.19.0.0/16 範囲からの CIDR ブロック。 | 制限されていない /16 ネットマスクから /28 ネットマスクの間の 172.16.0.0/12 範囲にある他の CIDR ブロック。<br />/16 ネットマスクと /28 ネットマスクの間でパブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)、または 100.64.0.0/10 範囲にある /16 ネットマスクから /28 ネットマスクの間の CIDR ブロック。 | 
| 192.168.0.0/16 | 他の RFC 1918\* 範囲 (10.0.0.0/8 と 172.16.0.0/12) からの CIDR ブロック｡<br />198.19.0.0/16 範囲からの CIDR ブロック。 | /16 ネットマスクと /28 ネットマスクの間の 192.168.0.0/16 範囲にある他の CIDR ブロック。<br />/16 ネットマスクと /28 ネットマスクの間のパブリックにルーティングが可能な IPv4 CIDR ブロック (RFC 1918 以外)、または /16 ネットマスクから /28 ネットマスクの間の 100.64.0.0/10 範囲からの CIDR ブロック。 | 
| 198.19.0.0/16 | RFC 1918\* 範囲からの CIDR ブロック｡ | /16 ネットマスクと /28 ネットマスクの間でパブリックにルーティング可能な IPv4 CIDR ブロック (RFC 1918 以外)、または 100.64.0.0/10 範囲にある /16 ネットマスクから /28 ネットマスクの間の CIDR ブロック。 | 
| パブリックルーティングが可能な CIDR ブロック (非 RFC 1918)、または 100.64.0.0/10 範囲からの CIDR ブロック | RFC 1918\* 範囲からの CIDR ブロック｡<br />198.19.0.0/16 範囲からの CIDR ブロック。 | /16 ネットマスクと /28 ネットマスクの間のパブリックルーティングが可能なその他すべての IPv4 CIDR ブロック (非 RFC 1918)、または 100.64.0.0/10 範囲 からの /16 ネットマスクから /28 ネットマスクの間の CIDR ブロック。<br />また、いずれかの RFC 1918 範囲に CIDR を関連付けることもできますが、これを行うには、まず VPC の作成時にその CIDR を追加し、次に RFC 1918 以外の CIDR を追加する必要があります。 | 

\* RFC 1918 範囲は、[RFC 1918](http://www.faqs.org/rfcs/rfc1918.html) で指定されているプライベート IPv4 アドレス範囲です。

## IPv6 VPC CIDR ブロック
<a name="vpc-sizing-ipv6"></a>

新しい VPC を作成する場合、単一の IPv6 CIDR ブロックを関連付けるか、または `/44` から `/60` の、`/4` 刻みで最大 5 つの IPv6 CIDR ブロックを関連付けることができます。Amazon の IPv6 アドレスプールからの IPv6 CIDR ブロックをリクエストできます。詳細については、「[CIDR ブロックを追加するまたは VPC から削除する](add-ipv4-cidr.md)」を参照してください。

IPv6 CIDR ブロックと VPC を関連付けている場合、IPv6 CIDR ブロック を VPC の既存のサブネットに関連付けるか、または新しいサブネットを作成するときに関連付けることができます。詳細については、「[IPv6 のサブネットのサイズ設定](subnet-sizing.md#subnet-sizing-ipv6)」を参照してください。

例えば、VPC を作成して、VPC に Amazon が提供する IPv6 CIDR ブロックを関連付けるよう指定します。Amazon は IPv6 CIDR ブロック `2001:db8:1234:1a00::/56` を VPC に割り当てます。IP アドレスの範囲を自分で選択することはできません。サブネットを作成して、この範囲からの IPv6 CIDR ブロック (`2001:db8:1234:1a00::/64` など) を関連付けることができます。

IPv6 CIDR ブロックと VPC の関連付けを解除できます。VPC から IPv6 CIDR ブロックの関連付けを解除すると、その後で IPv6 CIDR ブロックと VPC を再度関連付けるときに同じ CIDR を受け取ることは見込めません。