简介
IP地址是以
网络号和主机号来标示网络上的主机的,只有在一个网络号下的计算机之间才能”直接”互通,不同网络号的计算机要通过网关(Gateway)才能互通
- 为什么要划分子网?
IPv4地址如果只使用有类(A、B、C类)来划分,会造成大量的浪费或者不够用,为了解决这个问题,可以在有类网络的基础上,通过对IP地址的主机号进行再划分,把一部分划入网络号,就能划分各种类型大小的网络了
子网划分
为了解决
IPv4的不足,提高网络划分的灵活性,诞生了两种非常重要的技术,那就是VLSM(可变长子网掩码 Variable Length Subnet Mask)和CIDR(无类别域间路由 Classless Inter-Domain Routing),把传统标准的IPv4有类网络演变成一个更为高效,更为实用的无类网络
VLSM用于IPv4子网的划分,也就是把一个大的网络划分成多个小的子网;而CIDR则用于IPv4子网的聚合,当然主要是指路由方面的聚合,也就是路由汇总。通过CIDR可以把多个小的子网路由条目汇总成一个大网络的路由条目,以减少路由器中路由条目的数量,提高路由效率
通过VLSM实现子网划分的基本思想很简单:就是借用现有网段的主机位的最左边某几位作为子网位,划分出多个子网
什么是CIDR
无类域间路由,它是一种IP寻址方案,它改进了IP地址的分配。它取代了基于A、B、C类的旧系统,极大地延长了IPv4的使用寿命,减缓了路由表的增长速度
- 基于分类的IP地址的问题
旧的IP地址寻址方法效率低下,耗尽IPv4地址的速度比需要的速度更快

当你需要超过254台主机时,你将不得不舍弃C类地址转而采用B类地址。这意味着你需要使用申请B类地址,尽管它们拥有的主机远远少于B类地址所拥有的65535台。
如果一个组织只需要2500台主机,那么使用有B类地址将浪费大约63000台主机
CIDR基于变长子网掩码(VLSM)。这使得它可以定义任意长度的前缀,这种灵活性使其比旧系统更高效。CIDR IP地址由两组数字组成。网络地址被写成一个前缀,就像你看到的普通IP地址一样(例如192.255.255.255)。
第二部分是后缀,表示整个地址中有多少位(例如/12)。综上所述,CIDR IP地址如下所示:192.255.255.255/12
网络前缀也指定为IP地址的一部分。这取决于所需的比特数。因此,通过上面的例子,我们可以说前12位是地址的网络部分,而最后20位是主机地址
192.255.255.255二进制表示为1100 0000. 1111 1111. 1111 1111. 1111 1111
前12位为网络地址,即子网掩码为:1100 0000. 1111 0000. 0000 0000. 0000 0000 转成十进制即为255.240.0.0
以下是IPv4 CIDR块表

等长子网划分
等长子网划分就是将一个有类网络等分成多个网络,也就是等分成多个子网,所有子网的子网掩码都相同
C类地址等分为两个子网:
将192.168.0.0 255.255.255.0这个网络等分成2个子网
该网络子网掩码为/24,要划分为2个子网,要借用主机位1位作为子网位
借用主机1位,所以子网掩码+1位,由原来的255.255.255.0(/24)变为255.255.255.128(/25)

变长子网划分
VLSM规定了如何在一个进行了子网划分的网络中,不同子网使用不同的子网掩码。这对于网络内部不同网段需要不同大小子网的情形来说很有效,这种划分子网的方式叫变长子网划分
变长子网划分其实就是在等长子网的划分上,分别取不同等分子网中的某个或者多个子网

子网掩码
子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
二是用于将一个大的IP网络划分为若干小的子网络
子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网
为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码。子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,这时只有在同一子网的计算机才能”直接”互通
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯
- 怎样确定子网掩码?
要将一个网络划分为多个子网,因此**网络号将要占用原来的主机位**,如对于一个C类地址,它用21位来标识网络号,要将其划分为2个子网则需要占用1位原来的主机标识位。
子网掩码和IP地址一样有32bit,确定子网掩码的方法是其与IP地址中标识网络号的所有对应位都用1,而与``主机号对应的位都是0。如分为2个子网的C类IP地址用22位来标识网络号,则其子网掩码为:11111111 11111111 11111111 10000000即255.255.255.128
下表是C类地址子网划分及相关子网掩码:
| 子网位数 | 子网掩码 | 主机数 | 可用主机数 |
|---|---|---|---|
| 1 | 255.255.255.128 | 128 | 126 |
| 2 | 255.255.255.192 | 64 | 62 |
| 3 | 255.255.255.224 | 32 | 30 |
| 4 | 255.255.255.240 | 16 | 14 |
| 5 | 255.255.255.248 | 8 | 6 |
| 6 | 255.255.255.252 | 4 | 2 |
用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目
定义子网掩码的步骤为:
确定哪些组地址归我们使用,比如我们申请到的网络号为
210.73.124.89,该网络地址为C类IP地址,网络标识为210.73.124,主机标识为89根据我们现在所需的
子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。
比如我们现在需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为1(即把第四字节的最后四位作为主机位,其实在这里有个简单的规律,非网络位的前几位置1原网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第四个字节为11110000,这个数我们暂且称作新的二进制子网掩码把对应初始网络的各个位都置为
1,即前三个字节都置为1,第四个字节后四位置为0,则子网掩码的间断二进制形式为:11111111.11111111.11111111.11110000把这个数转化为间断十进制形式为:
255.255.255.240,这个数为该网络的子网掩码
具体计算方法:
- 利用子网数来计算
- 将子网数目转化为二进制来表示
- 取得该二进制的位数,为 N
- 取得该IP地址的类子网掩码,将其主机地址部分的的前N位置1 即得出该IP地址划分子网的子网掩码
例如将B类IP地址168.195.0.0划分成27个子网:27=11011,该二进制为五位数,N = 5,将B类地址的子网掩码255.255.0.0的主机地址前5位置1,得到255.255.248.0
- 利用主机数来计算
- 将主机数目转化为二进制来表示
- 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位
- 使用
255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值
A类地址的默认子网掩码为255.0.0.0;B类地址的默认子网掩码为255.255.0.0;C类地址的默认子网掩码为:255.255.255.0
运算示例
- 示例1
IP地址 192.168.0.1
子网掩码 255.255.255.0
转化为二进制进行运算:
IP地址 11000000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算 11000000.10101000.00000000.00000000
转化为十进制后为 192.168.0.0