AWS - 子网划分策略

IPV4地址分类

传统的IP地址分类将IP地址分为了A类,B类,C类,D类和E类。其中A类,B类和C类是正常使用的,而D类用来做组播,E类是保留使用的。

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

127 (01111111) 是一个A类地址,是给loopback testing保留的,不能在network中使用。

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

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

私有IP地址

一般来说内网都用private ip address,而外网都用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云中的自定义虚拟私有网络, 它在逻辑上与 AWS 云中的其他虚拟网络隔绝。VPC与你在数据中心中运行的传统网络极其相似,你可以在你定义的VPC内启动 AWS 资源。

当创建一个VPC时,我们需要指定它的VPC CIDR。我们创建的是私有网络,所以我们VPC CIDR可以从私有地址里任意选择。但是如果我们是在设计一个大的组织的网络,那么就需要按需分配你的VPC CIDR,这是因为在大型组织里,我们经常会遇到两个VPC需要不经过共有网络实现互联,这需要两个VPC CIDR没有冲突。

假设,我们现在有一个A类子网地址:10.0.0.0/16,这个地址前16位是网络部分,后16位是主机部分。如果我们不继续对这个子网进行子网划分的话那么这个网络可以容纳216-2(65534)台主机。为了便于网络管理减少IP地址浪费减少网络广播风暴,我们需要继续进行子网划分。

让我们进入真实的项目情景中。通常情况下一个项目会用3个部署环境:

  • Dev(开发环境)
  • Staging(类生产环境)
  • Production(生产环境)

如果我们的服务需要支持Production环境Region级别的High Availability(高可用性),比如需要同时部署在Tokyo Region和Singapore Region以提供高可用性,那么Production环境就包含了Tokyo和Singapore两Region。为了实现环境之间的隔离,我们每个独立的环境都会创建独立的VPC,对这个项目来说,我们需要创建4个VPC:

  • Dev Singapore(开发环境)
  • Staging Singapore(类生产环境)
  • Production Tokyo(生产环境)
  • Production Singapore(生产环境)

VPC Subnet

VPC Subnet就是对VPC网络子网划分后的子网,我们可以在指定的VPC Subnet内启动AWS 资源。每个子网必须完全位于一个可用区内,并且不能跨越区域

通常,在一个VPC中我们会创建3种类型的VPC Subnet:

  • Public Subnet
  • NAT Subnet
  • Private Subnet

为了提供High Availability(高可用性),通常我们会把服务部署在多个Availability Zones(可用区)上。

比如,我们现在需要将服务部署在Singapore Region的可用区ap-southeast-1aap-southeast-1b,那么我们的Subnet会是:

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

而将服务部署在Tokyo Region的可用区ap-northeast-1aap-northeast-1c,那么我们的Subnet会是:

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

现在我们来列一下我们一共要创建多少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

我们现在已经知道,我们需要创建4个VPC,24个VPC Subnet。那么我们要直接将10.0.0.0/16划分为四个子网(VPC),然后再对四个子网继续划分子网(VPC Subnet)吗?回答这个问题之前,我们先想一下如果现在就将其划分为四个子网,那么以后我们有其他的环境要创建怎么办?

最好的办法就是按需划分网络,为了按需划分网络我们得提前预估网络需要容纳多少台主机。

如果我们的每个VPC Subnet网络需要容纳100台主机。通过计算:27 - 5 = 123 > 100,我们得知主机位需要7位就可以满足我们需求。主机部分7位,则网络部分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 划分

由于每个VPC是由6个VPC Subnet组成,通过计算:23 = 8 > 6,所以VPC CIDR网络部分需25 - 3 = 22位,主机部分10位:

VPC CIDR 网络部分 主机部分
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个/22的子网,而我们只使用了其中的4个/22的子网。

VPC Subnet CIDR 划分

Dev VPC Subnet CIDR

现在我们再来将Dev环境VPC CIDR10.0.0.0/22划分成VPC Subnet CIDR:

VPC Subnet 网络部分 主机部分
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

转换成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

现在我们再来将Staging环境VPC CIDR10.0.4.0/22划分成VPC Subnet CIDR:

VPC Subnet 网络部分 主机部分
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

转换成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

现在我们再来将Production Singapore环境VPC CIDR10.0.8.0/22划分成VPC Subnet CIDR:

VPC Subnet 网络部分 主机部分
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

转换成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

现在我们再来将Production Tokyo环境VPC CIDR10.0.12.0/22划分成VPC Subnet CIDR:

VPC Subnet 网络部分 主机部分
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

转换成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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,547评论 4 374
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,787评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,175评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,752评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,169评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,056评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,195评论 2 321
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,980评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,724评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,872评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,344评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,667评论 3 264
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,379评论 3 245
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,202评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,992评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,189评论 2 286
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,987评论 2 279