
上一篇已经用子网掩码和 CIDR 前缀长度划清了网络部分与主机部分已知地址和/前缀长度我们可以求出网络地址、广播地址、地址范围也能判断两台主机是否位于同一子网。本篇仍在 TCP/IP 五层模型的网络层把这些计算真正用起来一个单位拿到一段地址后怎样按网络数量或主机数量把它划成多个大小合适的子网子网划分的本质是把原地址块的一部分主机位固定下来使网络前缀变长。前缀变长后子网数量增加可留给每个子网的主机位减少每网容量也随之缩小。一、为什么一个网段还要继续划分假设公司获得了192.168.4.0/22。这个地址块一共有 1024 个地址范围是192.168.4.0到192.168.7.255。你可以把它直接理解成192.168.[4 ~ 7].[0 ~ 255]如果把它直接作为一个大局域网所有设备都在同一个二层广播域中ARP 广播会扩散到所有设备部门之间也没有明确的网络边界。现实中往往需要按楼层、部门、业务区域或安全要求分开例如研发、财务、访客 Wi-Fi 和服务器区各自使用一个子网。不同子网之间必须经由路由器或三层交换设备转发因此可以分别配置网关、访问控制和路由策略。对外部网络而言这些内部子网仍可汇总为原来的大地址块对内部网络而言它们是边界清楚、可独立管理的小网络。早期教材把这一过程描述为“从主机号借位形成子网号”。从 CIDR 的视角看不必在地址中固定划出一个子网号字段只要把原块的前缀加长得到的每个更长前缀地址块就是一个子网。二、先掌握三条计算关系设原地址块前缀为/p划分后的每个子网前缀为/q且 q 大于 p。借用的主机位数 q - p 可划分的等大子网数 2 的 (q - p) 次方 每个子网的地址总数 2 的 (32 - q) 次方若子网直接作为普通 IPv4 广播子网使用通常可用的主机地址数为可用主机地址数 2 的 (32 - q) 次方 - 2减去的两个地址分别是主机位全 0 的网络地址和主机位全 1 的广播地址。这里的“主机数”应理解为能配置的接口地址数实际规划时还应为网关、服务器等保留地址。已知需求计算方式至少需要 N 个等大的子网找最小的 k使 2 的 k 次方不小于 N借 k 位新前缀为/pk每个子网至少需要 H 个可用主机地址找最小的 h使 2 的 h 次方减 2 不小于 H保留 h 位主机位新前缀为/32-h若两个条件同时存在必须同时满足子网数量和每个子网容量不能只计算其中一个。三、实战一把/22等分为 4 个子网把192.168.4.0/22划成 4 个大小相同的子网。1. 确定新前缀4 个子网需要 2 位不同的组合2 的 2 次方 4原前缀是/22借 2 位后新前缀就是/24。原来有 10 位主机位划分后每个子网剩下 8 位主机位所以每个子网有 256 个地址通常可使用 254 个主机地址。192.168.4.0/22 前 22 位原地址块共同的网络前缀 再借 2 位区分 4 个子网 剩余 8 位每个子网自己的主机部分2. 列出子网边界/24的地址块大小为 256 个地址。原/22覆盖四个连续的/24因此得到子网网络地址广播地址常见可用主机范围192.168.4.0/24192.168.4.0192.168.4.255192.168.4.1到192.168.4.254192.168.5.0/24192.168.5.0192.168.5.255192.168.5.1到192.168.5.254192.168.6.0/24192.168.6.0192.168.6.255192.168.6.1到192.168.6.254192.168.7.0/24192.168.7.0192.168.7.255192.168.7.1到192.168.7.254四个子网首尾相接不重叠也没有越出192.168.4.0/22的范围。它们可以分别分配给四个楼层公司出口路由器对外仍可用一条192.168.4.0/22汇总这四条连续路由。3. 每个小子网都有自己的边界未划分时192.168.4.0/22的网络地址是192.168.4.0广播地址是192.168.7.255。划成/24后每个小子网都有自己的网络地址和广播地址192.168.5.0、192.168.6.0这些中间边界也不能再分配给各自子网中的主机。所以地址是否可用取决于实际配置的子网前缀而不取决于它表面上是否以.0或.255结尾。四、实战二每个子网至少需要 50 台主机假设仍拥有192.168.4.0/22但需求换成“每个部门至少需要 50 个可用主机地址”。这次应从保留多少主机位开始计算保留 5 位主机2 的 5 次方 - 2 30不够 保留 6 位主机2 的 6 次方 - 2 62够用因此每个子网要保留 6 位主机位新前缀为/26掩码为255.255.255.192。每个/26块总共 64 个地址通常可分配 62 个主机地址。在192.168.4.0/24范围内/26的块大小为 64网络地址的最后一段每次递增 64子网网络地址广播地址常见可用主机范围192.168.4.0/26192.168.4.0192.168.4.63192.168.4.1到192.168.4.62192.168.4.64/26192.168.4.64192.168.4.127192.168.4.65到192.168.4.126192.168.4.128/26192.168.4.128192.168.4.191192.168.4.129到192.168.4.190192.168.4.192/26192.168.4.192192.168.4.255192.168.4.193到192.168.4.254从/22到/26一共借了 4 位因此整个/22最多可以划出 16 个等大的/26子网。上表只列出了192.168.4.*这一段的 4 个后面还可以按相同规则继续划分。五、怎样快速检查子网边界子网列表最容易错在“步长”。地址块大小就是每个子网占用的地址数量在发生变化的那个字节中网络地址必须落在这个步长的整数倍位置。例如/26有 6 位主机位块大小为 64因此最后一段的合法网络起点只有0、64、128、192所以192.168.4.64/26是正确的网络地址192.168.4.70/26不是子网起点而是属于192.168.4.64/26的普通地址。把192.168.4.70与/26掩码按位与得到的网络地址仍是192.168.4.64。当边界跨字节时更不能只看最后一段。例如/22的块大小体现在第三段第三段会从 0、4、8、12……开始。192.168.4.0/22就覆盖第三段为 4、5、6、7 的连续地址范围。六、子网数与主机数的取舍地址块固定时借的位数越多子网越多但每个子网保留的主机位越少从/22划分后的前缀等大子网数每个子网地址总数常见可用主机地址数/232512510/244256254/258128126/26166462子网不是切得越细越好。切得过细某个部门会很快没有可用地址切得过粗广播域可能过大、隔离也不足。合理做法是先统计各区域所需接口数再选择有适当余量的前缀。如果区域规模差异很大可以按需划分出不同大小的子网先为主机数最多的区域分配较大的块再依次分配较小的块。这种做法常称为可变长子网掩码VLSM。无论子网大小是否相同都要保证边界对齐、彼此不重叠并且完全包含在原地址块中。七、常见误区误区更准确的理解切成 4 个子网就是把范围随意分成 4 份子网必须是更长的连续网络前缀边界必须按块大小对齐借 3 位后每网仍有原来的主机数借出的位来自原主机位每网地址数变为原来的八分之一只需保留大地址块的第一个和最后一个地址划分后每个小子网都有各自的网络地址和广播地址.0一律不能配置给主机只有当前前缀下主机位全为 0 时它才是网络地址CIDR 没有子网号字段就不能划分子网CIDR 仍可通过延长前缀划分出更小的地址块八、总结子网划分就是从已有地址块的主机位中借出若干位使网络前缀变长。借 k 位能得到 2 的 k 次方个等大的子网每个子网剩余的主机位决定地址总数和可用主机数。实际规划时应先明确要多少个网段、每个网段要容纳多少接口再计算前缀、列出网络地址和广播地址并检查边界是否对齐、是否重叠。至此IPv4 地址、掩码、CIDR 和子网划分已经形成一条完整的计算链。接下来会回到 IP 数据报本身看看它在路由器之间转发时TTL 为什么递减、过大的数据报为什么可能需要分片以及首部校验和究竟校验什么。如果这篇文章对你有帮助欢迎点赞、评论、关注、收藏。你们的支持是我前进的动力