ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

子网掩码从入门到实战:网络号、广播地址与CIDR计算详解

子网掩码从入门到实战:网络号、广播地址与CIDR计算详解 1. 为什么每个运维和网络初学者都被子网掩码卡住提起子网掩码Netmask很多人第一反应是我知道它跟IP地址是一对的但再追问一句它到底是干什么用的十个人里可能有六七个开始含糊。面试桌上桌面运维岗最常考的几道题里子网掩码绝对占一席实际工作中配置静态IP时把掩码填错导致网段不通的案例我见过的次数两只手数不过来。子网掩码的价值其实用一句话就能说透它是一把尺子量出一个IP地址里哪些位属于网络、哪些位属于主机。网络位决定了你所在的街区主机位决定了你是这个街区里的门牌号。没有这把尺子光给一个IP地址你根本不知道它属于哪个网段也没法判断网络通信时数据包是该直连送达还是交给网关转发。这篇文章不端着教科书腔调我尽量用大家熟悉的场景、能直接照做的计算方法和踩过的坑把子网掩码讲透。适合谁看刚接触网络的小白、做桌面运维想补基础的朋友以及所有在配IP、排网络故障时遇到过明明地址没错但就是不通的人。看完你至少能解决三类实际问题快速判断两个IP是否同网段、根据主机数量倒推掩码怎么填、看懂别人写的192.168.1.0/24到底是什么意思。不少读者私信问过我子网掩码取反是干什么用的为什么有时候要拿它跟IP做运算这些我都会在后面结合具体场景展开保证你学完之后能直接拿去用。2. 从街区加门牌号开始理解IP地址的结构2.1 IP地址为何非要区分两个部分IPv4地址一共32位二进制数平时写成四个十进制段比如192.168.1.10。为了方便管理这32位被分成两部分网络位和主机位。网络位标识你所在的物理或逻辑网络主机位标识这个网络里的某一台设备。想象一个小区网络位就是小区名主机位就是楼栋和房间号。两户人家如果小区名不一样哪怕房间号一样也不是邻居同一个小区里房间号重复就会冲突。对应到网络里两台设备的IP如果网络位不一样说明它们不在同一个二层广播域内通信必须经过路由器网关。如果网络位相同而主机位相同那就是IP冲突这俩设备抢一个门牌号谁都用不好。这个时候子网掩码出场了。它能明确告诉你这32位里面前多少位算小区名后多少位算房间号。2.2 默认掩码A/B/C类地址的固定套路早期互联网把IP地址按首位分类形成了所谓的有类编址。规则不复杂记住三张常用表就够地址类别第一段范围默认子网掩码掩码写成CIDRA类1.0.0.0 - 126.255.255.255255.0.0.0/8B类128.0.0.0 - 191.255.255.255255.255.0.0/16C类192.0.0.0 - 223.255.255.255255.255.255.0/24以C类地址192.168.1.10为例默认掩码255.255.255.0表示前三段共24位是网络位最后一段8位是主机位。这个网段里能用的地址范围是192.168.1.1到192.168.1.254其中.0是网络号.255是广播地址这两个不能配给设备。很多初学者在这种默认情况下面不会出乱子因为掩码是固定的。真正让人发晕的是后面这两个场景一是遇到非默认掩码时要自己算网络位二是通过子网掩码判断两个IP能否直接通信。这两件事是桌面运维的日常也是笔试面试的高频考点。3. 子网掩码的底层原理用二进制看网络位边界3.1 我为什么一直强调把掩码当二进制看你看着255.255.255.0这个十进制数可能觉得它只是个数字。但子网掩码的本质是一串连续为1的二进制位11111111.11111111.11111111.00000000其中值为1的位对应IP地址的网络位值为0的位对应主机位。为什么掩码必须是一串连续的1再加一串连续的0因为它要保证网络部分在二进制上是连续的一段路由器在查找路由表时按位进行匹配不需要跳跃判断处理效率最高。非连续的掩码虽然从数学上行得通但标准实现里不推荐也不会用。拿192.168.1.10/24来说把IP和掩码都写成32位二进制IP: 11000000.10101000.00000001.00001010 掩码: 11111111.11111111.11111111.00000000掩码里前24位是1所以IP的前24位11000000.10101000.00000001属于网络位。网络号怎么算把IP和掩码做按位与运算意思是只有当对应位都是1时结果才为1否则为0。这就是判断网络号的标准算法所有人都在用只不过很多人只背了结论没走一遍过程。3.2 AND运算的完整走一遍流程继续拿192.168.1.10做例子我带你完整算一次第一步把IP和掩码的二进制逐位对齐。第二步逐位做AND运算。前24位因为掩码都是1所以与完之后的结果就是IP原来的前24位原样保留。最后8位掩码全是0不管IP这位是0还是1与完都是0。第三步把结果还原成十进制11000000.10101000.00000001.00000000也就是192.168.1.0。这就是该IP所在网络的网络号。到这里你应该能看出来子网掩码不是参与通信的地址它是拿来跟IP做运算、确定网络边界的工具。网络号用于路由表匹配和判断归属广播地址是主机位全为1的那个地址用于二层广播。3.3 为什么说/24才是更常用的野路子表达实际工作里大家很少念255.255.255.0这一大串而是直接说斜杠24。这就是CIDR无类域间路由表示法斜杠后面的数字就是掩码里1的个数。比如255.255.255.0 /24255.255.255.128 /25255.255.255.192 /26255.255.0.0 /16255.255.255.252 /30这一串数字的规律就是从255往右逐个减半。128是10000000192是11000000224是11100000240是11110000248是11111000252是11111100。很多教程让你死记硬背这组数我更推荐你把它换算成二进制看一眼看一次就忘不掉了。4. 子网掩码取反的作用从网络号算出广播地址4.1 取反在实操中的真正用途热搜词里有一个很典型的问题子网掩码取反怎么取我平时在答疑时也经常遇到。很多人不知道为什么要把掩码取反实际上取反操作最常见的两个用途一是求广播地址二是做通配符匹配。先看取反的二进制做法。掩码取反就是把1变0、0变1。比如/24的掩码是11111111.11111111.11111111.00000000取反之后是00000000.00000000.00000000.11111111写成十进制就是0.0.0.255。求广播地址的公式是广播地址 网络号 取反后的掩码。这里的加不是简简单单的十进制相加而是主机位全部置1。举个例子网络号192.168.1.0掩码取反是0.0.0.255两者相加得到192.168.1.255这就是广播地址。再配一个我实操中常用的快速口诀广播地址就是把该网段的主机位全部换成1。比如下面前三个字节是网络位那广播地址最后一段就是255如果掩码是/26说明最后6位是主机位把主机位全填1算出来的广播地址是192.168.1.63。4.2 通配符掩码取反思想的另一种体现熟悉思科设备的人肯定知道ACL访问控制列表它的通配符掩码wildcard mask原理跟子网掩码取反一模一样。不过作用反过来子网掩码里1代表必须匹配的位置通配符里0代表必须匹配1代表无需匹配。最常用的通配符就是0.0.0.255等价于匹配某个C类网段里的所有主机。网上有些朋友把它和子网掩码255.255.255.0搞混过实际上你只要记住通配符子网掩码取反就不会再懵。运维排查网络策略时遇到为什么这条ACL没生效的怪问题八成就是有人把通配符按掩码写了。4.3 手算广播地址的坑求广播地址的时候最容易犯的错是拿十进制直接加。比如有人知道掩码取反是0.0.0.255就把192.168.1.0和0.0.0.255相加觉得应该是192.168.2.255这个完全是错的。正确的理解是拿二进制主机位去补网络位不动主机位填满1。更隐蔽的坑出现在借位网段里。比如192.168.1.64/26网络号是192.168.1.64最后6位是主机位。取反之后掩码是0.0.0.63广播地址是192.168.1.127而不是192.168.1.64加63等于127这个恰好是对的。但如果盲算192.168.1.64 0.0.0.63有的朋友会得到192.168.1.127没问题换个网段再算就露馅了。比如192.168.1.128/26广播地址是192.168.1.191用十进制相加即12863191也成立。这里碰巧十进制相加也成立是因为主机位全部在第四段如果网络边界跨越了第三段比如10.10.100.15/22这种光拿十进制硬加就会算错必须回归二进制理解。5. 从主机数量倒推子网掩码别再死记表格了5.1 一个公式解决90%的实际问题公司办公网300台设备你打算规划一个局域网用多大的子网合适很多人拿着网上找的计算表翻半天其实公式特别简单可用主机数 2的主机位数次方 - 2减2是因为网络号和广播地址不能分配给设备。反推掩码的步骤是第一步算主机位。300台设备2的8次方是256不够2的9次方是512够用。说明主机位至少需要9位。第二步算网络位。32位总长度减去9位主机位网络位就是23位对应掩码是255.255.254.0写成CIDR是/23。第三步验证。/23可用的地址数是2的9次方减2等于510个满足300台设备的需求还留了约200个富裕量方便以后扩容。这张表我建议你自己动手推一遍比背十遍都管用掩码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实际做桌面运维时会发现很多网络管理员给自己留了很大的网段比如只有100人的办公室却用/16掩码这没什么不对只是广播域会很大网络里的广播报文会多一些。小规模办公无所谓但如果是IDC机房或者大型局域网这种规划方式会增加网络负担这时候按需计算掩码就非常有必要了。5.2 用可用主机数快速判断该配什么掩码日常配置静态IP时最常遇到的场景是路由器或防火墙提示网段和掩码不匹配或者网管告诉你把掩码改成255.255.255.252你一脸茫然。这时候掌握快速判断很有用。拿255.255.255.252来说它的二进制是11111111.11111111.11111111.11111100主机位只有2位可用主机数是2常常用于两个路由器之间的点对点链路。如果你在路由器相连的接口上配了192.168.1.1和192.168.1.2掩码用255.255.255.252就对了。我曾经见过有人在两个路由器之间配了255.255.255.0结果两台设备能互相通信但广播也发得整个网段都是排查了半天才意识到掩码太宽。判断方法我总结为一句先把需求的主机数量转换为主机位数再用32去减得到网络位长度。不用去记什么A类B类C类的边界直接用这个公式计算简单又不容易错。5.3 划分子网时的边界陷阱需要把一个大网段切成多个小网段时又要重复使用上面这些计算。比如公司有一个/24网段192.168.1.0/24想把它分成4个能容纳50台设备的子网怎么做需要4个子网意味着需要借2位作为子网位因为2的2次方等于4。原先是/24借2位后变成/26也就是255.255.255.192。/26有4个子网192.168.1.0/26、192.168.1.64/26、192.168.1.128/26、192.168.1.192/26。每个子网的可用主机数是62满足50台的需求。这4个子网的网络号不是随便取的每个子网的步长256-19264这是由最后一个非零掩码段决定的。很多人在这一步踩坑0、64、128、192这四个起始号好记但如果借3位变成/27步长就变成32起始号是0、32、64、96、128、160、192、224排列是有规律可循的掌握步长比背列表可靠得多。6. 桌面运维里最常见的掩码错误和排查思路6.1 类型一掩码与IP不配套网络号对不上机房里有台服务器死活Ping不通网关。我登录上去一看IP是192.168.1.66掩码却填成255.255.255.0。光看IP192.168.1.66在这个/24网段里没问题但管理员的本意可能是让这台服务器跟192.168.1.64/26那边的设备通信结果掩码配错系统以为自己在192.168.1.0/24这个大网段里路由判断就全乱了。排查这类问题时我先在问题机器上用ipconfig或ip addr看掩码然后就地把IP和掩码换算成二进制做AND运算算出来的网络号跟网关的网络号对比。不一致就直接改成一致再试。这招十有八九能解决IP看着没问题但就是不通的怪事。6.2 类型二跨网段通信时掩码写太宽还有一次一个分支机构的打印机无法访问总部服务器。配置的人图省事把打印机掩码改成255.0.0.0以为这样什么都能通。结果确实能通但广播域跟着变大网络上到处都是广播报文打印任务丢包严重。跨网段通信的正确做法是设置正确的网关地址。掩码越界只是绕过网关的一种暴力方式适合临时测试不能进生产环境。遇到这种问题我会先拓扑图上确认设备在哪个网段再检查掩码是否只覆盖本网段最后查网关配置。6.3 类型三点对点链路掩码设置过宽两个路由器直连接口地址分别为10.0.0.1和10.0.0.2很多人直接配/24掩码。实际上点对点链路只用得了两个地址配/30就够了。虽然两个IP照常能通信但/24会让这条链路接入一个254台主机的大网段如果另一个路由器在这个网段里还能连到其他主机路由环路或错误路由的风险就大了。规范做法是使用/30甚至在一些回环场景下用/32。6.4 排查掩码问题的通用四步法第一步确认问题设备的IP、掩码、网关三件套有没有遗漏或冲突。第二步把IP和掩码做AND运算得出网络号跟网关所在网络号对比。第三步用ping测网关通不通再ping同网段其他设备判断是二层还是三层问题。第四步跨网段不通时逐跳tracert或traceroute定位在哪一跳断掉再回头翻那一跳设备的掩码配置。这套思路可以应对绝大部分日常网络故障。很多时候问题不是网络坏了而是掩码定义错了边界设备按照你给的错误边界去理解整个网络自然怎么排查都一头雾水。7. 一个快速掌握子网掩码的实操练习清单与其看一堆理论不如拿出一台电脑或者路由器模拟器按下面的清单走一遍很快就能形成手感。练习一写出192.168.5.30/27的网络号和广播地址。步骤是/27说明主机位5位最后一段掩码是11100000对应十进制224。256减224得32所以子网起始步长是32。192.168.5.30落在192.168.5.0到192.168.5.31这个区间里网络号就是192.168.5.0广播地址是192.168.5.31。练习二一个网段要用16个地址给打印机用但要求地址范围最小选什么掩码16台打印机加网络号和广播地址至少需要18个地址2的5次方是32主机位5位网络位就是27位掩码255.255.255.224。练习三把10.0.0.0/24划分成8个子网写下每个子网的网络号和可用地址范围。8个子网需要借3位新掩码/27子网步长32依次得到10.0.0.0/27、10.0.0.32/27、10.0.0.64/27等8个子网。这些练习看起来简单但每次面试笔试前过一遍基本都能稳稳handle住子网掩码相关的题。机房配IP的时候顺手心算一下掩码而不是每次打开在线计算器长期下来会快很多。我还习惯备一个快速对照表贴在工位上包含常用掩码、CIDR、可用主机数三项。但注意对照表只是辅助理解二进制规律才是根本否则遇到/23、/13这种不常见的掩码光靠查表还是容易出错。8. 把子网掩码真正用起来的几个心得最后分享一些实实在在的经验算是我多年桌面运维和网络管理攒下来的体会。第一配置任何设备之前先明确网络规划。哪怕只是给办公室装一台无线路由器我习惯先问一句这个网段用什么掩码网关是多少地址池从哪开始到哪结束很多人配完以后发现设备之间互相不通往往就是没做这一步就随手填了255.255.255.0。第二别怕用二进制去算。真正高手不是靠背所有表格而是拿到一个IP加掩码能在纸上几秒钟算出网络号和广播地址。只要掌握了AND运算和主机位全1就是广播这个原则任何网段都能算。用多了自然熟比查任何计算器都靠谱。第三排查网络问题先从掩码查起。我自己踩过太多次坑有时候业务连不上数据库查了半天的网线、防火墙、路由协议最后发现是有人把掩码从255.255.255.0改成了255.255.255.128两边网络号一错位数据包全去了网关又丢了回来。现在但凡遇到为什么PC获取到了IP但上不了网这类问题我第一个动作就是看掩码和网关是否配套十次里能少走一半弯路。第四用在线工具验证但不依赖。我在教新人时随手用在线子网计算器验证计算结果自己平时也会用但要求他们先手算一遍再核对。这习惯看着多余等你在没有外网、没有图形界面的服务器上排查问题时能手算就省事多了。子网掩码这东西在整张网络知识图谱里排在第一层。它的规则并不复杂但因为涉及的十进制和二进制的切换劝退了不少人。希望这篇文章能帮你把这个关卡顺利翻过去。如果你在实践中遇到跟掩码相关的奇怪问题欢迎带着具体配置来讨论网段计算这种东西聊一遍比看十遍都管用。
返回列表