ipv4 子网划分,子网掩码等
-
ip就是网络地址,你的计算机(网卡)在网络中的标识。(可以先看第23点)
-
每个 ipv4 地址 都有4个字节 32位,所以一共就是有2^32个地址
-
每台联网的电脑都要有一个ip地址才能通信,所以首先我们要规划好这些地址。
-
首先我们将ipv4 地址分为两部分网络位 + 主机位。网络位可以理解为区分不同的网段(网路),主机位就是用来区分不同的主机。
-
我们将所有的ip 划分为5类
A类 1字节网络位+3字节主机位 网络位最高为0 B类 2字节网络位+2字节主机位 网络位最高为10 C类 3字节网络位+1字节主机位 网络位最高为110 D类 不区分网络位主机位,不指向特定网络,为组播地址 ip以1110开头 E类 不区分网络位主机位,实验保留地址 ip以1111开头 从这里我们可以看出区分地址的方式是根据ip地址开头的不同方式区分,这样划分是连续的不重复的。 这样划分我们可以知道A类总地址是最多的,BCDE依次递减半 然后ABC类确定了不同字节的主机位 + 主机位。 这样我们可以知道A类地址网段少,但是每个网段容纳的主机数最多,所以A类地址分配给规模特别大的网络使用,BC类依次递减。 来个总结 类别 二进制前缀 地址范围(十进制) 默认子网掩码 网络与主机划分 用途 A类 0xxxxxxx 1.0.0.1 ~ 126.255.255.254 255.0.0.0 (/8) 网络号8位,主机号24位 大型网络(国家级、ISP) B类 10xxxxxx 128.0.0.1 ~ 191.255.255.254 255.255.0.0 (/16) 网络号16位,主机号16位 中型网络(企业、机构) C类 110xxxxx 192.0.0.1 ~ 223.255.255.254 255.255.255.0 (/24) 网络号24位,主机号8位 小型网络(家庭、办公室) D类 1110xxxx 224.0.0.0 ~ 239.255.255.255 无 不划分网络与主机 组播通信(视频会议、流媒体) E类 1111xxxx 240.0.0.0 ~ 255.255.255.254 无 保留地址 实验与研究用途 注意这个表中的地址范围看起来不连续,他是剔除了一些特殊的地址的如私有地址 如127.×.×.×:是本地环回地址,指本机地址,一般用来测试使用。回送地址(127.×.×.×)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址。 这些下面会总结提到 ps:255.0.0.0 (/8) 中的8 表示连续1的个数,其实也就是网络位有多少位, 主机位就是32 - 8 = 24位
-
好了,我们现在将所有的ipv4地址都归类完了,但是我们有时候计算机除了接入大家都在的互联网内,还可以自己组成局域网或称私网。
-
那怎么办呢?我们再将ip 拿出一部分 区分为私网ip 和 公网ip,这样清晰明了,私网和公网也就不混淆了。
-
怎么拿?
私网我们也可能有不同的规模(不同数量的主机数),所以我们分别从ABC类中取出一些网段作为私网ip 在IP地址3种主要类型里,各保留了1个区域作为私有地址,给局域网用,这些地址可以被用于私有网络,在Internet中没有这些IP地址,Internet上的路由器也没有到私有网络的路由表。 A类:10.0.0.0 ~ 10.255.255.255 (掩码255.0.0.0),保留了1个A类网段(网络):10。 ps:前1个字节为网络位 B类:172.16.0.0 ~ 172.31.255.255 (掩码255.255.0.0),保留了16个B类网络:172.16 ~ 172.31。 ps:前2个字节为网络位 C类:192.168.0.0 ~ 192.168.255.255 (掩码255.255.255.0),保留了256个C类网络:192.168.0 ~ 192.168.255。 ps:前3个字节为网络位 这样我们就有了这些私网ip,与公网ip 区分了开来 注意我们这样划分只是我们的概念,真正处理ipv4地址的是我们的硬件设备 我们的设备按照我们划分制定的标准,做了控制,比如ip过滤,拦截等
-
私网的核心特性
-
不可路由性:私有IP地址无法直接在互联网上传输,需通过**NAT(网络地址转换)**映射为公网IP进行通信。
示例:家庭路由器将内网设备192.168.1.10转换为公网IP123.45.67.89访问百度。
-
重复使用性:不同局域网可复用相同私有地址段(如多个家庭网络均可使用192.168.1.0/24)
-
安全性: 内网设备对外隐藏真实IP,降低被攻击风险。
-
-
另外,根据实际需求,我们除了私网外,还有一些特殊用途的ip的地址,总结如下
主机ID全为0的地址(如:192.168.0.0):特指某个网段,比如:192.168.0.0(子网掩码:255.255.0.0),指192.168.×.×网段。 主机ID全为1的地址(如:192.168.255.255):特指该网段的全部主机,比如:192.168.255.255(子网掩码:255.255.0.0),如果你的计算机发送数据包使用主机ID全是1的IP地址,数据链层就会使用广播地址FF-FF-FF-FF-FF-FF(ARP协议会用到)。 255.255.255.255:是一个特殊的广播地址,标识广播域内的所有主机,不是指互联网上所有主机,因为255.255.255.255传播范围非常有限,到了广播域的边界(网关)会自动终结。 127.×.×.×:是本地环回地址,指本机地址,一般用来测试使用。回送地址(127.×.×.×)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址。 0.0.0.0:用于指定默认路由;如果计算机的IP地址和网络中的其他计算机地址冲突,使用ipconfig命令看到的就是0.0.0.0,子网掩码也是0.0.0.0。 169.254.0.0:169.254.0.0-169.254.255.255实际上是自动私有IP地址,DHCP自动获取失败会获得该网段地址。 ps:所以你会看到第五点 总结的表中 剔除了一些地址,比如主机ID全为0 或 主机ID全为1 (就是没有xxx.0 和xxx.255)
-
好了,不关注另外的,我们现在关注一个问题:我有很多台设备,而且这些设备又分为很多组,要让他们处于私网的不同网段,那我们该如何处理呢?
-
这里就是涉及子网划分了(一般子网划分应该只在企业中,企业不同部门有不同的保密要求和等级才会划分子网)
-
首先我们要明白什么是子网划分,为什么子网划分。首先既然是子网,那我们就有一个原始网段,即我们所有的设备都在这个原始网段下面,但是我们又要在这个原始网段下划分子网
-
例如一个原始网段192.168.1.0(即192.168.1,前三位为网络位),这个网段主机位只有一个字节,它支持的主机数量为254 即 1-254。(192.168.1.1-192.168.1.254),也就是说在这个网段下只有254个地址,仅支持254个主机。
-
好了,现在我们要划分子网,只能拿这254个地址做文章,把他们分成n份,还得让设备能识别每个地址是属于哪一份(哪个子网)。ps:我们不可能拿不属于这个原始网段下即不属于192.168.1.0 网段下的地址做文章吧(其实可预见应该有其他复杂的技术实现,毕竟子网是它下属里面的ip 又和 外面的ip有什么关系呢?相同就相同吧,肯定有办法不影响他的唯一性,并且能证明它又属于原始网段。)
-
假如我们要划分四个子网,我们只能拿这0 - 254想办法怎么分成四份。我们能动的只有主机位,因为网络位代表了原始网段(不能动)。
-
既然如此,那好我们再从主机位 中 拿出两位 给网络号。 2^2 = 4 ,这下就分为四份了。
192.168.1.0 11000000|10101000|00000001|(网络位) 00000000(主机位) 前面的11000000|10101000|00000001 这是原始网段的网络位不能动 要划分4个子网,从主机位下手,我们要把主机位分成四份,如果我们从主机位中拿出两位,就可以这样分成四份 11000000|10101000|00000001|00(网络位) 000000(主机位) 这下有四个子网了: 11000000|10101000|00000001|00(网络位) 11000000|10101000|00000001|01(网络位) 11000000|10101000|00000001|10(网络位) 11000000|10101000|00000001|11(网络位) 每个子网能支持2^6-2 = 62个主机 子网名称 子网地址 可用IP范围 广播地址 子网掩码 子网1 192.168.1.0/26 192.168.1.1 ~ 192.168.1.62 192.168.1.63 255.255.255.192 子网2 192.168.1.64/26 192.168.1.65 ~ 192.168.1.126 192.168.1.127 255.255.255.192 子网3 192.168.1.128/26 192.168.1.129 ~ 192.168.1.190 192.168.1.191 255.255.255.192 子网4 192.168.1.192/26 192.168.1.193 ~ 192.168.1.254 192.168.1.255 255.255.255.192
-
好了,我们现在我们分成了四个子网,但我们好像忘了什么事。我们借用了两个主机位给网络位,但我们什么都没说呀,设备如何知道现在的网络位有26位了,之前设备可以通过ip地址的前几位,判断它是哪类ip地址,从而知道哪几位是网络位,恐怕它现在还以为网络位是24位吧。
-
不用慌,我们有子网掩码,子网掩码和ipv4总位数一致,但是它是由连续的1和0组成。开头有几位连续的1,就代表了有几位网络位。
比如我们的原始网段192.168.1.0, 它是C类地址,C类地址默认的子网掩码是255.255.255.0, 即24个连续的1 现在既然我们的网络位有26位,我们的子网掩码就是255.255.255.192, 即26个连续的1 所以我们要判断两个地址是否在同一网段,就可以让地址和子网掩码进行“与”运算(全部用二进制表示进行与运算),结果一致就说明是同一网段(结果必然就是各自的网络位) 可以自己随便举个例子。
-
现在我们成功的完成了一次子网的划分,但是我们会发现我们分的四个子网可容纳的主机数是一样的。似乎觉得哪里有点不太完美?因为我们实际的需求可能是每个子网有不同数量的主机,有的子网有很多主机,有的只有几台,等量分的话肯定造成了ip地址的浪费。
-
那怎么办呢?
-
我们先仔细回顾我们分配的子网,我们会发现我们的子网的子网掩码都是一样的。再想想我们子网划分的本质,本质是什么?本质是将主机位进行分类,其实就是将二进制数划分!
这个二进制划分有什么要求?
1.连续
2.不等长好的,我们现在举个例子: 原始网段仍是192.168.1.0 仍然分成四份,但是各个子网需求是50,20,20,10 这样,其余没用到的保留(该原始网段下8个主机位,共有254个地址) 192.168.1.0 11000000|10101000|00000001|(网络位) 00000000(主机位) 我们先尝试严格按照50,20,20,10 的数量连续划分主机位,即: A子网 0-49 00000000-00110001 B子网 50-69 00110010-01000101 C子网 70-89 01000110-01011001 D子网 90-99 01011010-01100011 好了,分完了,是不是很完美,哈哈 但是有个问题,观察这些数字,我们发现,根本无法区分网络位!我们不单是划分,我们还要能够轻松识别一个地址它是属于哪一个子网,要能识别分类! 比如0-49, 前面相同的00 好我们把两个零借出去当网络位 即连续两个零是A子网(这里忽略前面的原始网段的网络位) 但是50-69 前面相同的只有0 我们可以把一个零借出去当网络位 即连续一个零是B子网 好嘛,问题来了,按照约定网络位规则, 地址50 即00110010 应该是属于A子网还是B子网呢? 所以我们不能这划分! 该怎么分呢?按照2的n次方来分,这样分的数据才不会 跨位,有规律,即: 00000000 - 00000001 是一类 00000010 - 00000011 是一类 00000100 - 00000111 是一类 不跨位,就是保证所分的同一组中最大地址和最小地址前面的位数数字相同,其余位数最小值全为0,最大值全为1 (其实和最开始ipv4 分类也一样) 好,现在重新开始分,50,20,20,10 我们这样按64,32,32,16分 即:2^n - 2 > 50 (为啥减2:最小地址(主机位全0)和最大地址(主机位全1) 分别被用作表示网络地址和,广播地址;ps:除此之外的,通常第一个地址作为网关地址) 依次类推即n为6、5、5、4 就是64,32,32,16: A子网 0-63 00000000-00111111 地址数64个 主机数62 主机位6位 借出网络位2位(00) B子网 64-95 01000000-01011111 地址数32个 主机数30 主机位5位 借出网络位3位(010) C子网 96-127 01100000-01111111 地址数32个 主机数30 主机位5位 借出网络位3位(011) D子网 128-143 10000000-10001111 地址数16个 主机数14 主机位4位 借出网络位4位(1000) 加上原始网段的网络位,总体划分子网结果就是: 子网需求 网络地址 子网掩码 可用地址范围 广播地址 50主机 192.168.1.0/26 255.255.255.192 192.168.1.1 ~ 192.168.1.62 192.168.1.63 20主机 192.168.1.64/27 255.255.255.224 192.168.1.65 ~ 192.168.1.94 192.168.1.95 20主机 192.168.1.96/27 255.255.255.224 192.168.1.97 ~ 192.168.1.126 192.168.1.127 10主机 192.168.1.128/28 255.255.255.240 192.168.1.129 ~ 192.168.1.142 192.168.1.143 剩余地址作为保留地址。 这就是可变长子网掩码(VLSM) ps: 变长划分,需要遵循从大主机数 再到小主机数划分,不然可能会存在网络位无法区分的情况(碰到我们第一次尝试同样的困境) 错误顺序(先小后大): 分配10主机(/28):占用192.168.1.0~15(剩余地址被分割为192.168.1.16~255)。 分配20主机(/27):需32地址块,但剩余地址《无法对齐到32倍数》(如192.168.1.16~47),导致无法直接使用。
-
总结:什么是子网划分,其实就是一个数学中 分类数字 的游戏,
我们将ip地址分为了网络位和主机位,为什么要这样分。这样比喻:网络位就是表示一座座园子,主机位就表示园子中的人。园子有一扇门,园子内的人可以随意沟通,但是想要和其他园子中的人交流,就必须经过检查走出园子门。在园子内的人犯了事也影响不到别的园子。要追责也知道他是哪个园子的方便追责。(实际要更复杂,这样分其实就是为了好管理)
设备:
交换机用来连接相同网络的设备,
路由器用来连接不同网段的设备
网络号一样的,即在相同网段,网络号不一样的,即不同网段我们明白了为什么要分成网络位和主机位。 接下来划分子网:就是我有一个园子,我是园子管理员,我为了好管理,我又把园子划分成几个小园子。 但是这个园子能容纳总人数是固定了,怎么分我要好好规划。 有两种,一种是子园子数为主等分,一种是根据每个子园子的人数分。 剩下的就是数学游戏了,你不只要分,分了后还得想办法知道每个人分别属于哪个子园子。 ps:所以子网划分可以说是私网才有,为啥?公网相当于已经划分好了,你再怎么划,要记住在公网中 ip地址 不可重复。但不同私网中的ip 可重复使用。
-
另外,我们也存在将连续的小网段合并成一个大网段的需求,这就是超网。
即小园子合成一个更大的园子
子网划分是向主机位借位给网络位,那么超网就是将主机位聚合成网络位由此可以想到,超网聚合的前提: 连续性:待聚合的网络地址必须连续(如192.24.0.0到192.31.255.0)。 相同大小:所有网络规模需一致且为2^n(如4个C类网络合并)。 可分割性:首个IP地址需能被超网总大小整除(例如172.16.0.0的最后10位二进制为全0)。 超网(Supernetting)是一种将多个连续的小型IP网络合并为单个大型网络的技术,旨在优化路由表效率和减少IP地址浪费。其核心原理与实现如下: 定义与核心概念 与子网相反:子网划分是将大网络拆分为小网络,而超网通过聚合多个小网络(如C类地址)形成更大的地址块。 CIDR技术:超网基于无类别域间路由(CIDR),通过可变长子网掩码(VLSM)实现灵活的网络前缀分配,例如将172.16.0.0/24到172.16.3.0/24聚合为172.16.0.0/22 优势与应用 路由优化:减少路由表条目,例如将5条路由信息聚合为1条(如168.100.128.0/20代替5个/24网络)。 地址高效利用:缓解IPv4地址短缺,例如将多个C类地址分配给需要更多主机的网络。 网络性能提升:通过路由聚合减少路由器处理开销,加速收敛。
参考链接:
https://zhuanlan.zhihu.com/p/678300715(A、B、C、D、E类IP地址划分依据,小白也能秒懂)
https://cloud.tencent.com/developer/article/2106185(子网划分和计算方法(附习题详解))