干网络这行不管你是刚入门还是已经摸爬滚打好几年IP地址和子网划分永远是绕不开的一道坎。刚开始我也觉得这东西不就是配置设备时填几个数字嘛直到有一次在真机上把子网掩码配错整个办公室的同事集体掉线我才意识到这玩意儿到底有多重要。后来带了几个新人发现大家普遍卡在同一个地方会算十进制但不知道掩码为什么这么写知道要划分子网但一到规划就乱套。这篇文章我把IP地址基础、子网掩码原理、等长子网划分到变长子网掩码VLSM的整体思路全部梳理一遍最后再附上一些实操中踩过的坑和排查方法。不管是准备认证考试、做网络规划还是日常排查故障这些内容应该都能用得上。1. IP地址基础先把门牌号的规则搞清楚1.1 IPv4地址结构32位二进制怎么变成192.168.1.1很多教材上来就讲IPv4地址是32位二进制分四组每组8位然后直接给出一堆分类。说实话这种讲法对初学者不太友好。我更喜欢用一个类比IP地址就是一个设备的门牌号网络位是哪个小区主机位是几号楼几单元几室。IPv4地址一共32位平时看到的那种点分十进制写法其实是把这32位拆成四段每段8位再把二进制转成十进制。比如192.168.1.1转成二进制就是11000000.10101000.00000001.00000001。这里的每一段8位范围就是0到255。关键要理解的是这32位不是平分的它被拆成两个部分——网络位和主机位。网络位决定了这个地址属于哪个网段主机位决定了它在这个网段里是第几台设备。至于网络位和主机位各占多少位这就引出了分类地址和子网掩码的概念。1.2 公网地址、私网地址和特殊地址IPv4地址分为公网地址和私网地址。公网地址在互联网上唯一需要向相关机构申请私网地址则在本地网络内部使用不会直接出现在公网上。私网地址有三段是固定的地址段CIDR表示IP范围10.0.0.0/810.0.0.0 - 10.255.255.255大型网络内部使用172.16.0.0/12172.16.0.0 - 172.31.255.255中型网络192.168.0.0/16192.168.0.0 - 192.168.255.255小型网络、家庭网络私网地址要上网靠的是NAT网络地址转换技术。公司内部几十上百台设备都可以用私网IP出口设备把私网IP映射成公网IP这样外部才能访问到内部网络。这就是为什么你在家里、在办公室看到的IP大多是192.168开头。还有一些特殊地址我建议你记牢主机位全0的地址是网络地址不能分配给设备主机位全1的地址是广播地址也不能分配给设备127.0.0.1是回环地址用来测试本机协议栈169.254.0.0/16是链路本地地址DHCP获取不到IP时系统会自动分配这个网段的地址。这些看着不起眼排查故障的时候经常会碰到。2. 子网掩码网络边界的标尺2.1 掩码到底在干什么子网掩码是很多人学IP地址时的第一个拦路虎。其实它的原理特别简单掩码的二进制中前面连续的1代表网络位后面连续的0代表主机位。比如255.255.255.0转成二进制就是11111111.11111111.11111111.00000000前面24个1后面8个0所以它表示这个地址前24位是网络位后8位是主机位。判断两个IP是否在同一个网段办法就是拿同一个掩码分别和两个IP做与运算结果一样就说明在同一网段不一样就要走网关。拿192.168.1.10和192.168.1.20举例掩码都是255.255.255.0做与运算后都是192.168.1.0所以这两台设备之间可以直接通信不需要经过路由器。2.2 CIDR斜杠表示法255.255.255.0这种写法太长了业界通用的做法是CIDR斜杠表示法直接写/24代表网络位是24位。常见几个对应关系要烂熟于心掩码CIDR主机数量255.255.255.0/24254255.255.255.128/25126255.255.255.192/2662255.255.255.224/2730255.255.255.240/2814255.255.255.248/296255.255.255.252/302注意这里的254是怎么来的8位主机位2的8次方是256去掉网络地址和广播地址就是254。这个减2的原则是子网划分里最基础的算法后边的所有计算都建立在这上面。2.3 选掩码之前先算两笔账做子网规划前务必要先搞清楚两个问题这个子网需要多少台设备这个子网未来会不会扩容。设备数决定了你要留多少主机位而主机位又决定了掩码长度。举个例子一个办公区现在有30台电脑为了照顾以后可能的扩容最好按50台设备来规划。2的5次方减2等于30不够502的6次方减2等于62够用。那就要留6个主机位掩码就是/26也就是255.255.255.192。注意这里千万别卡着上限选万一哪天多装几台设备整个网段就得重新规划麻烦得很。3. 等长子网划分从借位到落地3.1 借位是怎么回事子网划分的核心操作就是借位——把原本属于主机位的某些高位置成1用来表示子网号。一张图就能说明白假如有一个/24的网段它的二进制结构原本是前24位网络位、后8位主机位。如果你从主机位里借2位出来当子网位网络位就变成26位主机位剩6位。借出来的2位可以有00、01、10、11四种组合这样就得到了4个子网。子网数就是2的借位数次方。借2位就是2的2次方等于4个子网每个子网的主机位数是2的6次方减2等于62台。这个减2不用我再强调了吧网络地址和广播地址不能分配给设备。3.2 完整案例把192.168.1.0/24划分成4个子网以最经典的192.168.1.0/24为例划分成4个等大小子网。借2位后掩码变成/26也就是255.255.255.192。子网块大小有个快速算法256减去掩码最后一个非零字节的值。这里256减192等于64那么每个子网的大小就是64。子网1192.168.1.0 - 192.168.1.63网络地址192.168.1.0广播地址192.168.1.63可用IP192.168.1.1 - 192.168.1.62子网2192.168.1.64 - 192.168.1.127网络地址192.168.1.64广播地址192.168.1.127可用IP192.168.1.65 - 192.168.1.126子网3192.168.1.128 - 192.168.1.191网络地址192.168.1.128广播地址192.168.1.191可用IP192.168.1.129 - 192.168.1.190子网4192.168.1.192 - 192.168.1.255网络地址192.168.1.192广播地址192.168.1.255可用IP192.168.1.193 - 192.168.1.254每个子网62台设备四个加起来就是248台可用主机。看起来没有浪费但问题在于如果四个部门规模不一样有的部门需要100台有的部门只要10台等长划分就非常尴尬了。你需要的是变长子网掩码。3.3 等长划分的局限等长子网划分最大的问题就是一刀切。部门和设备分布从来就不是均匀的用同一个掩码去套不同规模的区域必然导致有的地方地址不够用有的地方地址大把闲置。有一次我帮朋友的小公司做规划他们三个部门分别需要120台、50台、10台设备我一开始就用等长划分把/24切成四个/26结果呢——120台那个部门塞不进62台的子网只能再申请一个网段VLAN、路由、防火墙策略全部跟着改那叫一个折腾。后来老老实实换成了VLSM一次到位。4. 变长子网掩码VLSM按需分配才是正确姿势4.1 为什么需要VLSMVLSM的核心思想是不同的子网使用不同的掩码长度子网的大小完全根据实际需要来定。大部门给大网段小部门给小网段既不浪费地址也能让每个子网拥有足够的空间。VLSM不是简单地把一个网段切成几块而是有先后的、树状的划分过程每一步生成的新子网可以继续往下细分也可以直接作为最终网段使用。这种设计在企业网络里简直是刚需。你想想如果所有部门一律配/24一个200人的公司有六个部门光规划就要占掉六个C类地址段用到对端路由器时路由表就越堆越臃肿。而用VLSM一个/24的网段就能把整个公司的需求全包住。4.2 VLSM的规划步骤第一步统计各部门的设备数量。第二步按需求量从大到小排列。第三步从最开始的网段向大网段逐级划分先用大掩码满足需求最大的部门剩下的空间继续划分给需求较小的部门直到所有部门都拿到地址段。这是最关键的一步顺序千万不能乱。你要是先给小部门划分再把大部门塞进去很容易把地址空间切得支离破碎不但浪费而且后续扩展根本没有余量。还有一个原则也很重要划分时要为每个子网预留一部分扩展空间。设备数量永远在涨别把算出来的主机位数压到极限留出20%到30%的余量才是稳妥的做法。4.3 实战案例一个/24怎么装下四个部门假设某公司有一个192.168.1.0/24的网段需要划分给四个部门研发部120台设备市场部50台设备财务部20台设备管理层6台设备计算一下主机位需求。120台需要7个主机位2的7次方减2等于126所以掩码是/25。50台需要6个主机位2的6次方减2等于62掩码是/26。20台需要5个主机位2的5次方减2等于30掩码是/27。6台需要4个主机位2的4次方减2等于14掩码是/28。按从大到小的顺序划分第一步研发部120台取/25也就是255.255.255.128。第一个子网是192.168.1.0/25占用192.168.1.0到192.168.1.127网关可以用192.168.1.1广播地址是192.168.1.127可用地址126个。第二步剩下的是192.168.1.128到192.168.1.255总计128个地址。市场部50台取/26255.255.255.192。第二个子网是192.168.1.128/26占用到192.168.1.191广播地址192.168.1.191可用地址62个。第三步剩下的是192.168.1.192到192.168.1.255总计64个地址。财务部20台取/27255.255.255.224。第三个子网是192.168.1.192/27占用到192.168.1.223广播地址192.168.1.223可用地址30个。第四步剩下的是192.168.1.224到192.168.1.255共32个地址。管理层6台取/28255.255.255.240。第四个子网是192.168.1.224/28占用到192.168.1.239广播地址192.168.1.239可用地址14个。最后剩192.168.1.240到192.168.1.255共16个地址留作备用未来哪个部门扩容直接从这里切。整体分配情况整理成表格部门网段掩码可用IP范围可用地址数研发部192.168.1.0/25255.255.255.128192.168.1.1 - 192.168.1.126126市场部192.168.1.128/26255.255.255.192192.168.1.129 - 192.168.1.19062财务部192.168.1.192/27255.255.255.224192.168.1.193 - 192.168.1.22230管理层192.168.1.224/28255.255.255.240192.168.1.225 - 192.168.1.23814预留192.168.1.240/28255.255.255.240192.168.1.241 - 192.168.1.25414一个/24网段总共254个可用地址这里分配了126623014232个预留14个使用率超过九成而且每个部门都有余量。这就是VLSM的价值。4.4 VLSM和路由汇总的配合VLSM还有一个隐藏优势就是配合路由汇总能把路由表压缩得很小。核心思路是把连续的子网尽可能规划在相邻的地址块里让路由器能用一条路由就覆盖多个子网。比如上面这个例子虽然四个子网掩码长度不同但由于它们拼起来正好是完整的192.168.1.0/24在核心路由器上就可以用一条192.168.1.0/24来通告不需要逐个子网都写一条路由。这样做不但减少配置量还能降低路由环路和黑洞的风险。但要特别注意路由汇总的前提是子网必须连续并且子网边界要对齐标准块大小。如果你划分时东一块西一块中间留出空洞路由器做汇总就可能把不属于这个区域的地址也包含进去导致流量被错误转发这就是所谓的汇总黑洞。所以划分之前就得先规划好地址块的对齐关系而不是划完再想怎么汇总。5. 实操中的常见问题和排查技巧5.1 新手最容易踩的坑先说几个我自己踩过、也看别人反复踩的坑。掩码配错导致跨网段不通。这个最隐蔽。设备能ping通网关但访问不了外网查了半天发现掩码从/24错写成了/16。你可能会问掩码变大了网络范围不是更大了吗问题就在于设备认为对方在同一个大网段里直接发ARP去解析不会把数据交给网关而对方实际上并不在同一个子网里ARP解析不到包就丢了。这种问题排查起来特别费劲因为ping网关是通的给人一种网络正常的错觉。网段重叠。尤其是多个站点或者VLAN共用同一个地址池时路由表里出现两条指向不同接口但网段重叠的路由流量就会乱窜。这种问题常规手段很难发现大部分时候要靠IP地址管理表格来查。把广播地址分配给了服务器。我见过有人给打印机配IP时填了x.x.x.255结果这台打印机开机后整个网段广播风暴所有设备都间歇性卡顿。找了一下午才发现是这个原因。DHCP地址池和VLSM规划对不上。划分好了VLSM但DHCP服务器上的地址池还是老的/24整个网段结果设备拿到的IP落在应保留的预留地址里等真正用到预留地址时就会冲突。规划是规划配置是配置两边对不上等于白规划。5.2 排查思路从底层往上捋排查IP和掩码问题时我习惯按下面这个顺序来第一步ping 127.0.0.1确认本机协议栈正常。如果这里都不通说明系统网络协议栈出问题了。第二步ping本机IP确认网卡和IP配置正常。第三步ping网关确认本地链路和网关设备工作正常。第四步ping目标地址如果网关通目标不通问题在中间链路或者目标主机上。最后如果ping目标IP通但 ping目标域名不通问题通常出在DNS配置上。还有一个特别有用的工具是tracertWindows下是tracertLinux下是traceroute。它能显示数据包从本机到目标每一跳的路径。看到某条路径上一路都是星号基本就能定位到问题出在哪一段。5.3 规划前的准备工作我强烈建议做任何子网规划前先做一张Excel表格。列清楚子网名称、网段、掩码、网关、起始IP、结束IP、广播地址、预留数量、负责人等信息。网段一多光靠脑子记根本记不住而且后面设备上线、变更、扩容都需要查这张表。没有这张表早晚会出网段重叠或者地址冲突的乱子。还有一个小技巧网关地址固定用每个子网的第一个可用IP也就是网络地址加1。比如192.168.1.0/25网关就固定用192.168.1.1192.168.1.128/26网关就是192.168.1.129。这个约定在团队协作时特别有用大家不用每次都在那里问这台设备的网关是多少一看网段就能写出来。另外子网划分的结果做完之后一定要同步到DHCP、防火墙、路由器、交换机三层接口、网管系统等每一处配置别只在一两个设备上改了其他地方还拿着旧的地址规划。我个人的体会是子网划分这件事公式就那么多算起来不难难的是提前想清楚需求和将来的扩展。见过太多临时抱佛脚的例子等网络搭上线了才发现地址不够用然后被迫重新分配网段所有设备重新配置损失比当初多花半小时做规划要大得多。所以当你有机会做一次网络规划时多花点时间把现状和未来的扩容空间都考虑进去尤其是VLSM这种按需分配的方案值得好好掌握。后面有时间我再写一篇关于DHCP、VLAN和VLSM如何配合落地的实操笔记到时候见。