title: 2018.9.4 子网划分
tags: 计算机网络, 网络安全, IP地址, 子网划分, VLSM
IP子网划分
首先,在进行子网划分的学习之前,我们先来回顾一下IP地址的相关知识,同时了解一下公有和私有IP地址:
在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址。Internet IP地址由NIC(Internet Network Information Center)统一负责全球地址的规划、管理;同时由Inter NIC、APNIC、RIPE三大网络信息中心具体负责美国及其它地区的IP地址分配。
在现在的网络中,IP地址分为公网IP地址和私有IP地址。公网IP是在Internet使用的IP地址,而私有IP地址则是在局域网中使用的IP地址。
上一篇博客中我们介绍到了A、B、C、D、E五类IP地址,其中D、E类有特殊用途,所以实际我们可用的IP地址就为A、B、C三类地址,其中公有地址(Public address)由Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
以下列出留用的内部私有地址
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
除去这些地址以外,其他的即为公有IP,所以共有IP的地址范围为:
A类:0.0.0.1-- 9.255.255.255 & 11.0.0.0--126.255.255.255
B类:128.0.0.0--172.15.255.255 & 172.32.0.0--191.255.255.255
C类:192.0.0.0-- 192.167.255.255 &192.169.0.0--223.169.255.255
子网划分的原因
今天讨论的子网划分技术是在ipv4协议的基础上实施的。
首先看一看百度对ipv4的定义:
IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基础的协议。1981年 Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。
ipv4提出来时才1981年,当时互联网并不普及,人们对于互联网的需求极小,然而随着时代的发展,互联网上网民数量的不断增加,人们对网络的需求量日趋庞大,原有的IPv4地址逐渐开始不够用了。
在互联网中,我们用交换机可以组成一个局域网,一个局域网即可单独成为一个网段,两个局域网之间通信就需要使用路由器相连,路由器的功能便是用来连接不同网段设备进行通。
而世界上那么多的路由器,若是全部都连在一起,现有的ipv4网段是绝对不够用的。而全世界的互联网上只能出现公有IP,一个网段在公网任何地方出现过一次,在其他地方就不能再次出现,一旦出现就会造成互联网的网络冲突。
ABC三类地址加起来也就那么多网段,我们设想一下,假如一个公司拥有着一个A类的地址网段,例如:140.0.0.0/8
,这个网段里最大可容纳主机数为2^24-2=16777214,而这个公司员工可能还不到1000人,在网络资源如此紧张的情况下,这个公司如果使用这个网段就会造成资源上的极大浪费。
所以在这样的情况下,我们就需要应用子网划分的技术对这种情况进行资源的充分利用。
<font size=2 color=black>总结一下子网划分的原因:</font>
<font color=red><b>
- 满足不同网络对IP地址的需求
- 实现网络的层次性
- 节省IP地址
</b></font>
子网划分的原理
实际就是通过改变子网掩码对IP地址进行网段的重新划分
VLSM 可变长子网掩码
VLSM(Variable Length Subnet Mask,可变长子网掩码) 是为了有效的使用无类别域间路由(CIDR)和路由汇聚(route summary)来控制路由表的大小,网络管理员使用先进的IP寻址技术,VLSM就是其中的常用方式,可以对子网进行层次化编址,以便最有效的利用现有的地址空间。
<font color=red>VLSM规定了如何在一个进行了子网划分的网络中的不同部分使用不同的子网掩码。这对于网络内部不同网段需要不同大小子网的情形来说很有效。</font>
VLSM的作用就是在类的IP地址的基础上,从它们的主机号部分借出相应的位数来做网络号,也就是增加网络号的位数。各类网络可以用来再划分子网的位数为:A类有二十四位可以借,B类有十六位可以借,C类有八位可以借。
子网划分
这里继续用上面的140.0.0.0/8,该网段下可用主机数为16777214台,假设这个网段现在被中国买下使用,但是中国那么多的省份,每个省份都有着大量的IP需求,我应该怎么去分配这个资源呢?
例如:
140.0.0.1/8 - 140.0.0.255/8 北京
140.0.1.0/8 - 140.0.1.255/8 上海
140.0.2.0/8 - 140.0.2.255/8 广州
140.0.3.0/8 - 140.0.3.255/8 深圳
现在我们使用VLSM技术的话,可以将其划分出一些子网网段进行资源的一个合理分配,让我们看下面两个网段:
140.1.0.0/16
140.2.0.0/16
这个和上面的网段看似不同,实际就是我们使用VLSM进行子网划分以后的结果,我们通过对主机位借位的方式,将前16位作为新IP的网段(网络号),通过这种方式,我们可以从之前的网段中分出140.0.0.0/16到140.255.0.0/16等256个新网段,这些网段就是上一个网段的子网段,通过这种形式,我们就可以对之前的网络进行重新划分,如下:
140.0.0.0/16 北京
140.1.0.0/16 上海
140.2.0.0/16 广州
140.3.0.0/16 深圳
......
以上,我们就可以将之前的网段进行一个更好的划分,满足了不同的地区对于网络的需求
那现在,北京地区已经拿到了属于自己的IP网段140.0.0.0/16
,其中可用主机数为65534,那么北京地区的网络应该如何规划呢?这里我们可以继续使用VLSM对北京的网段进一步子网划分
140.0.0.0/24 朝阳区
140.0.1.0/24 海淀区
140.0.2.0/24 西城区
140.0.3.0/24 东城区
······
可以看出来,这里我们再次对主机位借了8位用作网络位,把北京的网段也划分为了256个子网,实现了北京不同城区的网络需求。
这里我们通过两次的主机借位,实现了一个A类网段的子网划分,这样的划分方式,不仅满足了不同地区对网络的需求,还可以让我们的子网划分具有很好的层次性。
理想条件下,如果全世界的IP地址按照VLSM进行重新划分,在国际层次上,可以极大的提高国际带宽。例如一个上面的规划,中国使用通过划分,很好的利用好140.0.0.0/16
网段,别的国家也如此,相互之间的路由规则就会简单的多。但是由于ipv4的发布时间过早,全世界上的网络分配相对杂乱,导致核心路由书写时非常的复杂。
接下来我们再进一步要求,当朝阳区拿到自己的网段后,朝阳区也需要分配IP地址给自己城区的不同街道或者社区,我们看看上面的网段140.0.0.0/24,前面的三个位置成网络位了,接下来怎么借位呢?
这里我们不能将思维局限在IP地址的十进制表示方式上,实际IP地址为一个32位的二进制数
IP | 01001100.00000000.00000000.00000000 |
---|---|
子网掩码 | 11111111.11111111.11111111.00000000 |
所以这里朝阳区的IP网段地址实际是这样:
<font color=red>01001100.00000000.00000000</font>.<font color=blue>0000000</font>
(<font color=red>红色-->网络位</font> <font color=blue>蓝色-->主机位</font>)
前面我们一直用十进制表示IP,每借一次就借用了八个二进制位,所以到了这里我们若还要进行子网划分的话,就需要将这个网段拆分为二进制来进行借位划分。
<font color=red>但需要注意的是,当以十进制表示IP地址时,我们借一个数字位相当于借了8个二进制位,可划分出的子网段数为2^8=256个,但是当我们换成二进制数表达的时候,我们借一个二进制位只能划分出两个子网段。</font>
如此一来,朝阳区的IP中还有最后8个位置属于主机位,接着我们再借4个位来进行子网划分:
A社区:01001100.00000000.00000000.0000 0000 /11111111.11111111.11111111.1111 0000
B社区:01001100.00000000.00000000.0001 0000 /11111111.11111111.11111111.1111 0000
C社区:01001100.00000000.00000000.0010 0000 /11111111.11111111.11111111.1111 0000
D社区:01001100.00000000.00000000.0011 0000 /11111111.11111111.11111111.1111 0000
·······
转为十进制表示:
A社区:140.0.0.0/28
B社区:140.0.0.16/28
C社区:140.0.0.32/28
D社区:140.0.0.48/28
这样一来就可以进一步对朝阳区的网段进行子网划分。但是需要注意的是,划分以后每个社区的网段只有4位主机位,所以每个社区的可用主机数量为:2^4-2=14台
可以看出,每次对网段的子网划分,划分出的子网中有两个地址是无法使用的(网段地址和广播地址),所以使用子网划分的话,会减少一个网段中的可用主机数量。
<font size=2 color=black>这里对上面内容总结一下:</font>
<font color=red><b>
- 在进行子网划分时候,我们只能动主机位
- 对十进制的子网进行划分时,每借一个数字位就等于借了8个二进制位
- 每个子网中需要注意,网段地址和广播地址是不可用的地址
- 一个网段的可划分子网段数:2^n(n=划分时借的主机位数)
- 子网可用主机数的计算方式:2^n-2(n=子网主机位数)
</b></font>
开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个网分成多个子网时有更大的灵活性。如果没有VLSM,一个子网掩码只能提供给一个网络。这样就限制了要求的子网数上的主机数。
一个子网划分习题
<font color=green>问:将20.1.1.0/24划分为四个子网,每个子网网段,广播地址、可用ip数量</font>
这里为了简写,我们将前24位以十进制位形式书写
20.1.1.00 000000
20.1.1.00 111111
子网网段:20.1.1.0/26 广播地址:20.1.1.63/26
20.1.1. 01 000000
20.1.1. 01 111111 //64-127
网段:20.1.1.64/26 广播地址:20.1.1.127/26
20.1.1. 10 000000
20.1.1. 10 111111 //128-191
网段:20.1.1.128/26 广播地址:20.1.1.191/26
20.1.1. 11 000000
20.1.1. 11 111111 //192-255
网段:20.1.1.192/26 广播地址:20.1.1.255/26
每个子网可用的ip数量都为62(2^6 - 2)
*主机位全置0为网段,主机位全置1为广播地址,除了网段和广播地址,其他皆为可用IP地址