AWS - 子網(wǎng)劃分策略

IPV4地址分類

傳統(tǒng)的IP地址分類將IP地址分為了A類,B類,C類,D類和E類。其中A類,B類和C類是正常使用的,而D類用來(lái)做組播,E類是保留使用的。

     ---------      -----      -----      -----
A類 | 0******* | . | Host | . | Host | . | Host |
     ---------      -----      -----      -----
0 ~ 126

127 (01111111) 是一個(gè)A類地址,是給loopback testing保留的,不能在network中使用。

     ---------      --------      -----      -----
B類 | 10****** | . | NetWork | . | Host | . | Host |
     ---------      --------      -----      -----
128 ~ 191

     ---------      --------      --------      -----
C類 | 110***** | . | NetWork | . | NetWork | . | Host |
     ---------      --------      --------      -----
192 ~ 223    
     

私有IP地址

一般來(lái)說(shuō)內(nèi)網(wǎng)都用private ip address,而外網(wǎng)都用public ip address。

Class Private Address Range
A 10.0.0.0 ~ 10.255.255.255
B 172.16.0.0 ~ 172.31.255.255
C 192.168.0.0 ~ 192.168.255.255

VPC

Amazon Virtual Private Cloud (Amazon VPC) 是AWS云中的自定義虛擬私有網(wǎng)絡(luò), 它在邏輯上與 AWS 云中的其他虛擬網(wǎng)絡(luò)隔絕。VPC與你在數(shù)據(jù)中心中運(yùn)行的傳統(tǒng)網(wǎng)絡(luò)極其相似,你可以在你定義的VPC內(nèi)啟動(dòng) AWS 資源。

當(dāng)創(chuàng)建一個(gè)VPC時(shí),我們需要指定它的VPC CIDR。我們創(chuàng)建的是私有網(wǎng)絡(luò),所以我們VPC CIDR可以從私有地址里任意選擇。但是如果我們是在設(shè)計(jì)一個(gè)大的組織的網(wǎng)絡(luò),那么就需要按需分配你的VPC CIDR,這是因?yàn)樵诖笮徒M織里,我們經(jīng)常會(huì)遇到兩個(gè)VPC需要不經(jīng)過(guò)共有網(wǎng)絡(luò)實(shí)現(xiàn)互聯(lián),這需要兩個(gè)VPC CIDR沒(méi)有沖突。

假設(shè),我們現(xiàn)在有一個(gè)A類子網(wǎng)地址:10.0.0.0/16,這個(gè)地址前16位是網(wǎng)絡(luò)部分,后16位是主機(jī)部分。如果我們不繼續(xù)對(duì)這個(gè)子網(wǎng)進(jìn)行子網(wǎng)劃分的話那么這個(gè)網(wǎng)絡(luò)可以容納216-2(65534)臺(tái)主機(jī)。為了便于網(wǎng)絡(luò)管理、減少IP地址浪費(fèi)減少網(wǎng)絡(luò)廣播風(fēng)暴,我們需要繼續(xù)進(jìn)行子網(wǎng)劃分。

讓我們進(jìn)入真實(shí)的項(xiàng)目情景中。通常情況下一個(gè)項(xiàng)目會(huì)用3個(gè)部署環(huán)境:

  • Dev(開發(fā)環(huán)境)
  • Staging(類生產(chǎn)環(huán)境)
  • Production(生產(chǎn)環(huán)境)

如果我們的服務(wù)需要支持Production環(huán)境Region級(jí)別的High Availability(高可用性),比如需要同時(shí)部署在Tokyo Region和Singapore Region以提供高可用性,那么Production環(huán)境就包含了Tokyo和Singapore兩Region。為了實(shí)現(xiàn)環(huán)境之間的隔離,我們每個(gè)獨(dú)立的環(huán)境都會(huì)創(chuàng)建獨(dú)立的VPC,對(duì)這個(gè)項(xiàng)目來(lái)說(shuō),我們需要?jiǎng)?chuàng)建4個(gè)VPC:

  • Dev Singapore(開發(fā)環(huán)境)
  • Staging Singapore(類生產(chǎn)環(huán)境)
  • Production Tokyo(生產(chǎn)環(huán)境)
  • Production Singapore(生產(chǎn)環(huán)境)

VPC Subnet

VPC Subnet就是對(duì)VPC網(wǎng)絡(luò)子網(wǎng)劃分后的子網(wǎng),我們可以在指定的VPC Subnet內(nèi)啟動(dòng)AWS 資源。每個(gè)子網(wǎng)必須完全位于一個(gè)可用區(qū)內(nèi),并且不能跨越區(qū)域

通常,在一個(gè)VPC中我們會(huì)創(chuàng)建3種類型的VPC Subnet:

  • Public Subnet
  • NAT Subnet
  • Private Subnet

為了提供High Availability(高可用性),通常我們會(huì)把服務(wù)部署在多個(gè)Availability Zones(可用區(qū))上。

比如,我們現(xiàn)在需要將服務(wù)部署在Singapore Region的可用區(qū)ap-southeast-1aap-southeast-1b,那么我們的Subnet會(huì)是:

  +-------------------------VPC--------------------------+
  |                                                      |
+----+ap-southeast-1a+----+      +----+ap-southeast-1b+----+
| |                       |      |                       | |
| | +-----------------+   |      |   +-----------------+ | |
| | | Public Subnet A |   |      |   | Public Subnet B | | |
| | +-----------------+   |      |   +-----------------+ | |
| |                       |      |                       | |
| |                       |      |                       | |
| | +-----------------+   |      |   +-----------------+ | |
| | | Nat Subnet A    |   |      |   | Nat Subnet B    | | |
| | +-----------------+   |      |   +-----------------+ | |
| |                       |      |                       | |
| |                       |      |                       | |
| | +-----------------+   |      |   +-----------------+ | |
| | | Private Subnet A|   |      |   | Private Subnet B| | |
| | +-----------------+   |      |   +-----------------+ | |
| |                       |      |                       | |
+-------------------------+      +-------------------------+
  |                                                      |
  +------------------------------------------------------+

而將服務(wù)部署在Tokyo Region的可用區(qū)ap-northeast-1aap-northeast-1c,那么我們的Subnet會(huì)是:

  +-------------------------VPC--------------------------+
  |                                                      |
+----+ap-northeast-1a+----+      +----+ap-northeast-1c+----+
| |                       |      |                       | |
| | +-----------------+   |      |   +-----------------+ | |
| | | Public Subnet A |   |      |   | Public Subnet B | | |
| | +-----------------+   |      |   +-----------------+ | |
| |                       |      |                       | |
| |                       |      |                       | |
| | +-----------------+   |      |   +-----------------+ | |
| | | Nat Subnet A    |   |      |   | Nat Subnet B    | | |
| | +-----------------+   |      |   +-----------------+ | |
| |                       |      |                       | |
| |                       |      |                       | |
| | +-----------------+   |      |   +-----------------+ | |
| | | Private Subnet A|   |      |   | Private Subnet B| | |
| | +-----------------+   |      |   +-----------------+ | |
| |                       |      |                       | |
+-------------------------+      +-------------------------+
  |                                                      |
  +------------------------------------------------------+

現(xiàn)在我們來(lái)列一下我們一共要?jiǎng)?chuàng)建多少Subent:

Dev Singapore VPC:

  • Public Subnet A
  • Public Subnet B
  • NAT Subnet A
  • NAT Subnet B
  • Private Subnet A
  • Private Subnet B

Staging Singapore VPC:

  • Public Subnet A
  • Public Subnet B
  • NAT Subnet A
  • NAT Subnet B
  • Private Subnet A
  • Private Subnet B

Production Singapore VPC:

  • Public Subnet A
  • Public Subnet B
  • NAT Subnet A
  • NAT Subnet B
  • Private Subnet A
  • Private Subnet B

Production Tokyo VPC:

  • Public Subnet A
  • Public Subnet C
  • NAT Subnet A
  • NAT Subnet C
  • Private Subnet A
  • Private Subnet C

我們現(xiàn)在已經(jīng)知道,我們需要?jiǎng)?chuàng)建4個(gè)VPC,24個(gè)VPC Subnet。那么我們要直接將10.0.0.0/16劃分為四個(gè)子網(wǎng)(VPC),然后再對(duì)四個(gè)子網(wǎng)繼續(xù)劃分子網(wǎng)(VPC Subnet)嗎?回答這個(gè)問(wèn)題之前,我們先想一下如果現(xiàn)在就將其劃分為四個(gè)子網(wǎng),那么以后我們有其他的環(huán)境要?jiǎng)?chuàng)建怎么辦?

最好的辦法就是按需劃分網(wǎng)絡(luò),為了按需劃分網(wǎng)絡(luò)我們得提前預(yù)估網(wǎng)絡(luò)需要容納多少臺(tái)主機(jī)。

如果我們的每個(gè)VPC Subnet網(wǎng)絡(luò)需要容納100臺(tái)主機(jī)。通過(guò)計(jì)算:27 - 5 = 123 > 100,我們得知主機(jī)位需要7位就可以滿足我們需求。主機(jī)部分7位,則網(wǎng)絡(luò)部分25位。

至于什么要減5:

The first four IP addresses and the last IP address in each subnet CIDR block are not available for you to use, and cannot be assigned to an instance. For example, in a subnet with CIDR block 10.0.0.0/24, the following five IP addresses are reserved:

  • 10.0.0.0: Network address.

  • 10.0.0.1: Reserved by AWS for the VPC router.

  • 10.0.0.2: Reserved by AWS. The IP address of the DNS server is always the base of the VPC network range plus two; however, we also reserve the base of each subnet range plus two. For VPCs with multiple CIDR blocks, the IP address of the DNS server is located in the primary CIDR. For more information, see Amazon DNS Server.

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

VPC CIDR 劃分

由于每個(gè)VPC是由6個(gè)VPC Subnet組成,通過(guò)計(jì)算:23 = 8 > 6,所以VPC CIDR網(wǎng)絡(luò)部分需25 - 3 = 22位,主機(jī)部分10位:

VPC CIDR 網(wǎng)絡(luò)部分 主機(jī)部分
Dev VPC 00001010 00000000 000000 00 00000000
Staging VPC 00001010 00000000 000001 00 00000000
Production Singpore VPC 00001010 00000000 000010 00 00000000
Production Tokyo VPC 00001010 00000000 000011 00 00000000

我們將10.0.0.0/16劃分成了26 = 64個(gè)/22的子網(wǎng),而我們只使用了其中的4個(gè)/22的子網(wǎng)。

VPC Subnet CIDR 劃分

Dev VPC Subnet CIDR

現(xiàn)在我們?cè)賮?lái)將Dev環(huán)境VPC CIDR10.0.0.0/22劃分成VPC Subnet CIDR:

VPC Subnet 網(wǎng)絡(luò)部分 主機(jī)部分
Public Subnet A 00001010 00000000 00000000 0 0000000
Public Subnet B 00001010 00000000 00000000 1 0000000
NAT Subnet A 00001010 00000000 00000001 0 0000000
NAT Subnet B 00001010 00000000 00000001 1 0000000
Private Subnet A 00001010 00000000 00000010 0 0000000
Private Subnet B 00001010 00000000 00000010 1 0000000
未使用 00001010 00000000 00000011 0 0000000
未使用 00001010 00000000 00000011 1 0000000

轉(zhuǎn)換成VPC Subnet CIDR:

VPC Subnet VPC Subnet CIDR
Public Subnet A 10.0.0.0/25
Public Subnet B 10.0.0.128/25
NAT Subnet A 10.0.1.0/25
NAT Subnet B 10.0.1.128/25
Private Subnet A 10.0.2.0/25
Private Subnet B 10.0.2.128/25
Staging VPC Subnet CIDR

現(xiàn)在我們?cè)賮?lái)將Staging環(huán)境VPC CIDR10.0.4.0/22劃分成VPC Subnet CIDR:

VPC Subnet 網(wǎng)絡(luò)部分 主機(jī)部分
Public Subnet A 00001010 00000000 00000100 0 0000000
Public Subnet B 00001010 00000000 00000100 1 0000000
NAT Subnet A 00001010 00000000 00000101 0 0000000
NAT Subnet B 00001010 00000000 00000101 1 0000000
Private Subnet A 00001010 00000000 00000110 0 0000000
Private Subnet B 00001010 00000000 00000110 1 0000000
未使用 00001010 00000000 00000111 0 0000000
未使用 00001010 00000000 00000111 1 0000000

轉(zhuǎn)換成VPC Subnet CIDR:

VPC Subnet VPC Subnet CIDR
Public Subnet A 10.0.4.0/25
Public Subnet B 10.0.4.128/25
NAT Subnet A 10.0.5.0/25
NAT Subnet B 10.0.5.128/25
Private Subnet A 10.0.6.0/25
Private Subnet B 10.0.6.128/25
Production Singapore VPC Subnet CIDR

現(xiàn)在我們?cè)賮?lái)將Production Singapore環(huán)境VPC CIDR10.0.8.0/22劃分成VPC Subnet CIDR:

VPC Subnet 網(wǎng)絡(luò)部分 主機(jī)部分
Public Subnet A 00001010 00000000 00001000 0 0000000
Public Subnet B 00001010 00000000 00001000 1 0000000
NAT Subnet A 00001010 00000000 00001001 0 0000000
NAT Subnet B 00001010 00000000 00001001 1 0000000
Private Subnet A 00001010 00000000 00001010 0 0000000
Private Subnet B 00001010 00000000 00001010 1 0000000
未使用 00001010 00000000 00001011 0 0000000
未使用 00001010 00000000 00001011 1 0000000

轉(zhuǎn)換成VPC Subnet CIDR:

VPC Subnet VPC Subnet CIDR
Public Subnet A 10.0.8.0/25
Public Subnet B 10.0.8.128/25
NAT Subnet A 10.0.9.0/25
NAT Subnet B 10.0.9.128/25
Private Subnet A 10.0.10.0/25
Private Subnet B 10.0.10.128/25
Production Tokyo VPC Subnet CIDR

現(xiàn)在我們?cè)賮?lái)將Production Tokyo環(huán)境VPC CIDR10.0.12.0/22劃分成VPC Subnet CIDR:

VPC Subnet 網(wǎng)絡(luò)部分 主機(jī)部分
Public Subnet A 00001010 00000000 00001100 0 0000000
Public Subnet C 00001010 00000000 00001100 1 0000000
NAT Subnet A 00001010 00000000 00001101 0 0000000
NAT Subnet C 00001010 00000000 00001101 1 0000000
Private Subnet A 00001010 00000000 00001110 0 0000000
Private Subnet C 00001010 00000000 00001110 1 0000000
未使用 00001010 00000000 00001111 0 0000000
未使用 00001010 00000000 00001111 1 0000000

轉(zhuǎn)換成VPC Subnet CIDR:

VPC Subnet VPC Subnet CIDR
Public Subnet A 10.0.12.0/25
Public Subnet B 10.0.12.128/25
NAT Subnet A 10.0.13.0/25
NAT Subnet B 10.0.13.128/25
Private Subnet A 10.0.14.0/25
Private Subnet B 10.0.14.128/25
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容