2016-05-30 57 views
0

我的总体目标是创建1个公有子网+ 3个私有子网的VPC,每个私有子网有4个可用的IP。如何通过Terraform或亚马逊VPC UI为大小不是2的幂的子网定义VPC CIDR块?

先前回答#1告诉我,对4个可用-IP子网我渴望创造的,我需要一个地址范围跨度为9级的IPS: Amazon VPC n^2 -4 IP Addresses? CIDR Block

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

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

但是,当我试图进入这2个号码VPC控制台给出错误信息:

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

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

+1

如果你仔细阅读Sqlbot答案,你会发现它是5保留的IP,而不是4. – mootmoot

+0

感谢Mootmoot。就我所知,我上面说过:我要求每个子网使用4个ips,其中5个将由亚马逊保留。因此,我需要为每个子网分配9个ips(4个可用的ips; +将由Amazon保留的5个)。 –

+0

如果你坚持,你应该使用的较小的VPC CIDR应该是/ 27。然后你可以为你的子网使用CIDR/28。但是设置一个微小的VPC CIDR没有多大意义。您只需设置小型子网/ CIDR,而不是VPC/CIDR。 – mootmoot

回答

0

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 ..... 

如果您打算稍后从内部网到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 

注:上面的设置给多个-AZ一些空余空间,不同的子网,如果你打算使用RDS。尽管如此,它可以很混乱