什么是CIDR?
CIDR是英文Classless Inter-Domain Routing的缩写,中文是无类别域间路由,是一个在Internet上创建附加地址的方法,这些地址提供给服务提供商(ISP)。
再由ISP分配给客户。
CIDR将路由集中起来。使一个IP地址代表主要骨干提供商服务的几千个IP地址,从而减轻Internet路由器的负担。
为什么要选择CIDR,CIDR?
主要有例如以下两个作用:
1:就如之前介绍的CIDR能够减轻Internet路由器的负担
2:CIDR能够提高IP地址的利用率
再来介绍一下CIDR是怎样实现以上两个功能的。
CIDR的一个最基本的动作就是路由聚合(route aggregation),通过该动作能够实现如上两个功能,接下来举例介绍CIDR是怎样通过路由聚合实现这两个功能的。
一:CIDR功能之减轻Internet路由器的负担
如果我们有例如以下4个C类IP地址
1: 192.168.0.8 / 255.255.255.0 /11000000.10101000.00000000.00000000
2: 192.168.1.9 / 255.255.255.0 /11000000.10101000.00000001.00000000
3: 192.168.2.10 / 255.255.255.0 /11000000.10101000.00000010.00000000
4: 192.168.3.11 / 255.255.255.0 /11000000.10101000.00000011.00000000
能够看到以上4个IP地址的网络地址都不尽同样,所以在的路由表上面须要配置相应的4条路由到达相应的网络。
接下来做路由聚合,能够看到以上4个IP地址的二进制地址的前22位都是同样的,所以能够聚合成一个网络地址,这个网络地址的CIDR表达格式为192.164.0.0/22,该地址的解释为。这个网络的地址为192.164.0.0。且前22位为网络地址,后10位为主机地址。
因此如今能够将之前的4个C类地址配到这个网络以下,如此一来在路由器上面仅仅须要配置一条路由到达192.164.0.0/22网络就能够了,从而达到降低路由器负担的目的。
二:CIDR功能之提高IP地址的利用率
如果我们建立一个局域网,这个局域网初步规划将会有500个主机,因此须要500个IP地址,500个IP地址就须要这个地址是个B类地址。这个B类地址格式例如以下
192.168.0.0 / 255.255.0.0 /11000000.10101000.00000000.00000000
这个B类地址拥有256*256=65536个主机地址,可是仅仅须要500个主机地址。因此造成了IP地址浪费。接下来来做路由聚合,仅仅须要500个主机地址。因此须要后9位为主机地址
后9位为主机地址意味着将会有512个主机地址。如此一来地址浪费将大大缩小。地址的利用率将大幅提高。聚合后的网络地址例如以下:
192.168.254.0/23 (192.168.254.0 / 255.255.254.0 /11000000.10101000.11111110.00000000)
在AWS的VPC和Subnet上怎样应用CIDR?
在AWS上我们须要先创建一个VPC(Virtual Private Cloud)虚拟私有云,我们须要为这个云指定一个CIDR地址,然后向这个云中加入subnet并为每一个subnet指定CIDR地址。最后我们向subnet加入主机,AWS
会依据subnet的CIDR所拥有的主机地址自己主动分配主机地址给主机,接下来举例说明该过程:
先创建一个VPC。该VPC的CIDR地址例如以下
default-vpc , 172.31.0.0/16 ,10101100.00011111.00000000.00000000
接下来能够向这个VPC里面加入例如以下subnet
default-subnet , 172.31.0.0/20 , 10101100.00011111.00000000.00000000
public-subnet , 172.31.24.0/21 , 10101100.00011111.00011000.00000000
private-subnet , 172.31.16.0/21 ,10101100.00011111.00010000.00000000
从以上的二进制地址能够看出来全部subnet和VPC的网络地址的交集为10101100.00011111,即前16位同样 ,这正好为VPC的网络地址。因此能够顺利的将这3个subnet增加到VPC
接下来可以尝试着将例如以下一个subnet增加到VPC看是否可以成功
test-subnet , 172.31.0.0/21 ,10101100.00011111.00000000.00000000
这个地址是不能够增加到VPC的。其原由于test-subnet的21位网络地址与default-subnet的20位网络地址是重叠的。因此增加失败。
由此能够总结出AWS上配置VPC和subnet的规则即:全部subnet的网络是指必须是VPC网络地址的子集且不能与其它Subnet的网络地址重叠。这样一来就能够为VPC指定一条路由就能够到达VPC里面的全部Subnet。