【问题标题】:How, via Terraform or Amazon VPC UI does one define VPC CIDR block for subnet of size not a power of 2?如何通过 Terraform 或 Amazon VPC UI 为大小不是 2 的幂的子网定义 VPC CIDR 块?
【发布时间】:2016-09-28 07:51:34
【问题描述】:

我的总体目标是创建一个由 1 个公共子网 + 3 个私有子网组成的 VPC,每个子网有 4 个可用 IP。

以前的 Stackoverflow 回答告诉我,对于我希望创建的 4 个可用 IP 子网中的每一个,我需要一个跨越 9 个 ips 的地址范围: Amazon VPC n^2 -4 IP Addresses? CIDR Block

一切顺利。所以我们需要创建 4 个子网,每个子网有 9 个 IP 地址。

如何在 AWS VPS 定义中表达 9 Ips 的 CIDR 范围?在CIDR中,很多网站解释,9个IP的范围用2个数字表示,例如:
10.0.0.0/29 10.0.0.8/32

但是当我尝试输入这 2 个数字时,VPC 控制台会给出错误消息:

必须是有效的 CIDR 块。 如果您的 VPC 的地址范围超出 RFC 1918 指定的私有 IP 地址范围,Amazon DNS 服务器将无法解析私有 DNS 主机名。

我可以只分配 64 个 IP 的范围,并留下一些未使用的 IP。但这不是一个节俭的解决方案。

【问题讨论】:

  • 如果你仔细阅读Sqlbot的答案,你会发现它是5个保留IP,而不是4个。
  • 感谢 Mootmoot。正如我所理解的,我在上面说:我要求每个子网使用 4 个 ip,亚马逊将保留 5 个。因此,我需要为每个子网分配 9 个 ip(4 个可用 ip;+ Amazon 将保留的 5 个)。
  • 如果您坚持,您应该使用的较小的 VPC CIDR 应该是 /27。然后,您可以将 CIDR/28 用于您的子网。但是设置一个很小的 ​​VPC CIDR 没有什么意义。您只需设置小子网/CIDR,而不是 VPC/CIDR。

标签: amazon-ec2 tcp-ip subnet amazon-vpc cidr


【解决方案1】:

AWS VPC CIDR 不可变! x 3

除非您已经有可以快速部署到 VPC 中的持续集成部署/配置,否则更好地为扩展预留空间。目前,VPC 的限制范围从 CIDR/16 到 CIDR/28。你不能使用 /29,实际上有 5 个 IP 保留:IP 子网使用 = 2,AWS 保留 = 3。查看:VPC subnets

10.0.0.0: Network address.
10.0.0.1: Reserved by AWS for the VPC router.
10.0.0.2: Reserved by AWS for mapping to the Amazon-provided DNS.
10.0.0.3: Reserved by AWS for future use.
10.0.0.255: Network broadcast address. We do not support broadcast in a VPC, therefore we reserve this address.

对于私有子网,没有什么关于“浪费”的,AWS 不会通过分配“范围太广”来向您收费,但是如果您创建小子网(例如 CIDR/28)并计划扩展,例如,您将面临问题。启动多个SPOT实例,创建多个可用区等。然后你会后悔分配小子网并遇到严重的路由问题,最糟糕的是,没有扩展空间,需要拆除整个VPC。

所以我建议你使用这个简单的设置,这样你就不会后悔并说你不能启动多个 SPOT 实例。

VPC CIDR : 10.0.0.0/18
subnet 1 : 10.0.1.0/26
subnet 2 : 10.0.1.64/26 
subnet 3 : 10.0.1.128/26 
subnet 4 : 10.0.1.192/26
# if you need AZ 
AZ subnet-1 : 10.0.2.0/26
AZ Subnet-2 : 10.0.2.64/26 .....

如果您计划稍后创建从 Intranet 到 AWS VPC 的 VPN,那么您必须提前计划并确保您的 VPC CIDR 和子网不会与您的 Intranet CIDR IP 范围冲突。

不过,您可以这样做。

   VPC CIDR 10.0.0.0/27
   Subnet 1 : 10.0.0.0/28
   Subnet 2 : 10.0.0.16/28
   Subnet 3 : 10.0.0.32/28
   Subnet 4 : 10.0.0.48/28

注意:如果您打算使用 RDS,上述设置为不同子网中的多个可用区提供了一些备用空间。然而,它可能会非常令人困惑

【讨论】:

    猜你喜欢
    • 2019-11-27
    • 1970-01-01
    • 2015-09-21
    • 2021-03-14
    • 1970-01-01
    • 2020-11-09
    • 2022-12-22
    • 2021-04-19
    • 1970-01-01
    相关资源
    最近更新 更多