在正式开始了解子网划分开始前,我觉得有必要简单介绍一下IP地址的基本知识
IP地址的基本知识
我之前写文章介绍过IP地址与IP —— 《什么?一串数字居然能连接世界!》 但是我觉得还是有必要在此简单介绍并补充一下关于IP地址的细节
!{warning}
本文中提及的IP地址均为IPv4地址
首先 IP地址的本质实际上是一串二进制数 例如某台主机的IP地址为 11000001001000011011000000001001
为了方便记忆现实中通常使用点分十进制来表示,则这串IP地址则表示成193.32.216.9
ip地址内部包含两个部分,分别为网络号和主机号
-
网络号: 也称网络地址,用于表示网络组成的网络中的单个网络
!{tip}
互联网的本质就是一堆小网络组成的全球性的大规模网络
就好比现实生活中一个大规模的住宅区,其由一个个小区组成的;
这种大规模的网络就像一个大规模的住宅区,而网络地址就相当于住宅区中的一个小区的名字 。
-
主机号: 也称主机地址,用于表示一个网络中的某台设备的地址
!{tip}
就相当于小区中的某一户的地址
IP地址中的网络号与主机号总共占了32位(4字节),那么如果网络号占用的位数更少则主机号位数会更多,这样网络中所能容纳的主机也更多,反之如果网络号占用的位数更多则主机号占用的位数会更少,也就是网络中能容纳的主机数量也会更少;因为网络的规模不同,为了方便管理,IP地址分为A、B、C、D、E五类,不过本文只介绍A、B、C这三类;其中A~C类网络号占用的位数会不断增加,每次会增加8位(1字节)主机号占用的位数则会减少8位(也就是A~C类能组成的网络规模越小)
子网划分技术
在实际中,很多单位会将某个单一的网络划分成多个物理网络,并用路由器将其连接起来。这些物理网络被称为子网,这个操作的过程就叫做子网划分。子网划分其实是为了充分利用IP地址、方便管理以及提升网络性能(因为隔离了广播域)
子网掩码
子网掩码(也叫子网屏蔽码)和 IP 地址一样,也是 32 位二进制数。它的作用是:区分网络号和主机号。在对应 IP 地址的“网络号”部分填 1,“主机号”部分填 0
!{tip 例如}
IP地址:
11000001001000011011000000001001
(193.32.216.9
)子网掩码:
11111111111111111111111100000000
(255.255.255.0
)在这里前24位为网络位(193.32.216);后8位为主机位(9)
子网掩码除了用点分十进制表示以外,还可以用网络前缀标记法,表示形式为 /<网络地址的位数>; 用这种方式表达上面的例子则是这样表示 193.32.216.0/24
(因为网络地址占用了24位)
使用子网掩码求网络地址
首先我们先了解一个二进制上的计算操作 按位与(AND),我们只需要拿着IP地址和子网掩码做按位与操作就能求出网络地址,仍然拿上面的例子举例:
子网划分
从上面可以看出,通过修改子网掩码就能实现子网划分
一般来说子网划分分为下面这些步骤
-
根据所需要的网络数量来确定要有多少位作为子网号
!{tip}
可以根据公式 $\lceil log_2N\rceil$($\lceil x\rceil$表示对x向上取整) 来求出需要多少位作为子网号,其中N就是需要的网络数量
-
检查主机地址部分是否能容纳下那么多主机
!{tip}
这个的计算也有公式的$ 2^N-2$,其中N就是剩下的主机号的位数
-
符合要求的话计算出子网掩码
-
确定每一个子网的范围
假设某个网络中要求划分4个网络,每个网络需要包含最多50台主机,而给你的可用地址范围为192.168.100.0/24
首先我们计算出要多少位作为子网号,通过计算可得$log_24=2$位作为子网号;
主机号还剩下6位也就是说能容纳下$2^6-2=62$个主机,满足要求
原始子网掩码为11111111111111111111111100000000
(255.255.255.0
)我们只需要将后面的2个0改为1就行了(因为占用了2位主机号作为子网号)也就是11111111111111111111111111000000
(255.255.255.192
)
通过这个子网掩码,可以计算出以下4个网络地址
这4个子网的范围分别是(去除网络号和定向广播地址):
192.168.100.1 ~ 192.168.100.62
192.168.100.65 ~ 192.168.100.126
192.168.100.129 ~ 192.168.100.190
192.168.100.193 ~ 192.168.100.254
CIDR和超网
CIDR(无类域间路由)它的出现是为了解决A、B、C类地址这种一棒子打死的分配方式导致ip地址被浪费的问题,之前只能在这个基础上做子网划分
而CIDR出现的引入打破了基于类别的划分,引入了可变长度子网掩码(VLSM)的概念。CIDR使用前缀长度来表示IP地址的网络部分的位数,这样就可以更加灵活地分配IP地址,并实现对地址空间的高效利用
一个两千台主机的网络若使用B类网络会造成大量的地址浪费,而C类网络却只能容纳254台主机;但是有了CIDR那么就只需要分配8个C类网络就能容纳2032台主机(这种合并网络的操作在CIDR出现之前是不被允许的),这种多个网络合并成一个网络的网络就是超网