2016-05-30 64 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。儘管如此,它可以很混亂