首页 / 资讯中心 / 文章详情

IP地址与子网掩码详解:从二进制到子网划分实战指南

IP地址与子网掩码详解:从二进制到子网划分实战指南 ★ FEATURED ARTICLE
1. 为什么每个搞网络的人都要吃透IP和子网掩码刚入行那会儿我以为配个IP地址就是填四个数字的事。直到有一次给一台新服务器配地址随手写了192.168.1.100/24结果怎么都连不上隔壁机柜的10.0.0.50排查了大半天才发现——这俩压根不在一个网段中间没有路由物理上通着也白搭。那次之后我才真正明白IP地址和子网掩码不是填个数字那么简单它决定了这台设备能跟谁直接说话、跟谁必须绕道走。这篇内容就是把我这些年踩过的坑、算过的账、讲给新人听过的例子系统性地整理一遍。IP地址是设备在网络里的门牌号子网掩码则是用来划分哪些门牌号算同一个小区的标尺。两者配合才能判断两台机器是邻居还是异地。不管你是刚接触网络运维的新手还是写了几年代码但对底层网络一知半解的开发者又或者是准备考证、面试需要快速复习的老手这篇都能让你把这块知识彻底焊死在脑子里。我会从最基础的二进制讲起把IP分类、私有地址、子网划分、掩码计算、网段判断这些核心内容全部拆开揉碎配上可以直接抄作业的计算方法和速查表。重点是——每一个为什么我都会讲清楚比如为什么掩码必须是连续的1、为什么主机位不能全0或全1、为什么划分子网要借位。这些才是真正让你从会填变成懂行的关键。2. IP地址到底是什么从二进制到点分十进制2.1 32位二进制与点分十进制的换算逻辑IPv4地址本质上是一个32位的二进制数。32位听起来抽象你可以把它想象成32个开关每个开关要么是0要么是1。但人脑记32个0和1太痛苦了所以发明了点分十进制的写法把这32位平均切成4段每段8位然后把每段二进制转成十进制中间用点隔开。举个例子二进制11000000 10101000 00000001 01100100分段转换后就是192.168.1.100。这个转换过程是理解一切计算的基础必须练到条件反射。每段8位能表示的范围是00000000到11111111也就是十进制的0到255。所以一个合法的IPv4地址每一段都不能超过255这也是为什么你填192.168.1.300会直接报错。我整理了一张常用二进制与十进制的对照表建议背下来后面算掩码和网段时能省大量时间二进制十进制二进制十进制000000000100000001280000000111100000019200000011311100000224000001117111100002400000111115111110002480001111131111111002520011111163111111102540111111112711111111255这张表的规律很明显右边那一列都是从高位开始连续填1的结果。这个规律在算子网掩码时会反复用到因为合法的子网掩码其二进制形式必然是前面连续一段1、后面连续一段0。2.2 IP地址的两大部分网络位与主机位一个IP地址在逻辑上被分成两部分网络位和主机位。网络位标识设备属于哪个网段主机位标识它是这个网段里的第几台设备。这就像XX市XX区XX街道XX号——前面的行政区划是网络位最后的门牌号是主机位。那到底前多少位是网络位、后多少位是主机位这就轮到子网掩码登场了。掩码里为1的位对应网络位为0的位对应主机位。比如最常见的255.255.255.0二进制是24个1加8个0意味着前24位是网络位后8位是主机位。这里有个新手极易混淆的点网络位和主机位的划分不是看IP地址本身而是看掩码。同一个IP地址192.168.1.100配/24掩码和配/25掩码它所属的网段、可用主机数、广播地址全都不同。这也是为什么配地址时掩码绝对不能填错。2.3 传统的有类地址分类A/B/C/D/E类在早期IP地址是按类来划分的看第一段的数值就能判断属于哪一类类别第一段范围默认掩码用途网络位/主机位A类1-126255.0.0.0 (/8)超大型网络8/24B类128-191255.255.0.0 (/16)中型网络16/16C类192-223255.255.255.0 (/24)小型网络24/8D类224-239无组播无E类240-255无保留实验无注意127开头的地址不在A类里它被单独保留为环回地址比如127.0.0.1永远指向本机。这个分类方法现在基本被**CIDR无类别域间路由**取代了但面试和考试里还经常考而且理解分类有助于你记住哪些是私有地址。2.4 私有地址内网里随便用公网上一律不认有三段地址被专门保留给内部网络使用它们不会在公网上被路由你在家里、公司里随便用都不会跟别人冲突10.0.0.0/8范围10.0.0.0到10.255.255.255一个A类大小的私有空间大企业最爱用。172.16.0.0/12范围172.16.0.0到172.31.255.255注意不是整个172段只有16到31这16个B类网段。192.168.0.0/16范围192.168.0.0到192.168.255.255家用路由器默认就用这段。还有两个特殊地址要记住169.254.0.0/16是链路本地地址当设备开了DHCP却拿不到地址时系统会自动给自己配一个这个段的地址——所以如果你看到某台机器是169.254.x.x基本可以断定它的DHCP出问题了这是排查故障时的重要线索。实操心得很多人以为172.16.0.0/12就是172.16.0.0到172.31.255.255但经常有人误写成172.0.0.0/12那范围就完全错了。记住是16到31不是0到15。3. 子网掩码的核心原理与三种表示法3.1 掩码为什么必须是连续的1前面提过合法掩码的二进制必须是前面连续1、后面连续0。为什么因为网络位和主机位必须是连续划分的不能中间插一段主机位再插一段网络位。如果掩码写成255.0.255.0二进制11111111 00000000 11111111 00000000网络位就被切成了不连续的两段路由器根本无法正确判断网段边界这种掩码是非法的。所以判断一个掩码是否合法就看它转成二进制后是不是一串1后面跟一串0。255.255.255.192合法26个1加6个0255.255.255.100就不合法。3.2 三种写法点分十进制、CIDR前缀、二进制同一个掩码有三种表达方式实际工作中都会遇到点分十进制255.255.255.0配置界面里最常见。CIDR前缀/24表示有24个1命令行和路由配置里常用简洁。二进制11111111.11111111.11111111.00000000计算时用平时不写。三者是一一对应的。/24就等于24个1也就是255.255.255.0。下面这张表把常用的掩码对应关系列全了建议收藏CIDR点分十进制可用主机数二进制末尾/24255.255.255.025400000000/25255.255.255.12812610000000/26255.255.255.1926211000000/27255.255.255.2243011100000/28255.255.255.2401411110000/29255.255.255.248611111000/30255.255.255.252211111100/31255.255.255.2542特殊11111110/32255.255.255.2551单主机111111113.3 可用主机数为什么是2的n次方减2这是新手最容易记错的地方。假设主机位有n位那么理论上能表示2的n次方个地址。但有两个地址不能分配给设备网络地址主机位全为0代表这个网段本身。广播地址主机位全为1代表这个网段里的所有设备。所以可用主机数 2^n - 2。比如/24的主机位是8位2^8256减去2就是254台。这里有个例外要说明/31的主机位只有1位按公式算2^1-20没法用。但在点对点链路比如两台路由器直连场景下/31被特殊允许两个地址分别给两端不保留网络地址和广播地址。/32则用于指定单个主机地址比如配置环回接口。注意很多人算可用主机数时忘了减2或者把网络地址和广播地址也算进去导致规划IP时地址不够用。规划时一定要按2^n-2来算。4. 手把手教你算子网划分从需求到落地4.1 子网划分的本质向主机位借位划分子网的核心动作就一句话从主机位借几位过来当子网位。借的位数越多能划分的子网越多但每个子网里的主机越少。这是一个此消彼长的权衡。举个实际场景。假设你拿到一个192.168.10.0/24的网段公司有4个部门每个部门大概50台设备要求每个部门独立成网段。怎么划/24原本主机位有8位能容纳254台。现在要拆成4个子网需要借位。借1位能分2个子网借2位能分4个子网借3位能分8个子网。4个部门需要至少4个子网所以借2位刚好2^24。借2位后新的掩码长度是242/26对应255.255.255.192。每个子网的主机位剩下6位可用主机数2^6-262台满足50台的需求。4.2 完整计算过程网络地址、广播地址、可用范围接着上面的例子把4个子网的详细信息全部算出来。借的2位放在第4段的最高两位组合有4种00、01、10、11。子网子网位网络地址可用范围广播地址子网100192.168.10.0.1 - .62192.168.10.63子网201192.168.10.64.65 - .126192.168.10.127子网310192.168.10.128.129 - .190192.168.10.191子网411192.168.10.192.193 - .254192.168.10.255计算逻辑拆解每个子网的块大小是256÷464。所以网络地址从0开始每次加640、64、128、192。每个网络地址加63就是广播地址中间的就是可用范围。这个块大小的概念非常实用。块大小 256 - 掩码最后一段的十进制值。比如/26掩码最后一段是192块大小256-19264。记住这个公式算网段飞快。4.3 反向计算给定IP和掩码求所属网段实际工作中更常见的是反过来给你一个IP和掩码问它属于哪个网段、广播地址是多少。方法是用IP和掩码做按位与运算。比如192.168.10.130/26求网络地址掩码/26255.255.255.192最后一段二进制11000000。IP最后一段130二进制10000010。按位与11000000 AND 10000010 10000000即128。网络地址 192.168.10.128。广播地址 128 63 192.168.10.191。可用范围 .129到.190。按位与的规则很简单两个都是1才是1否则是0。这个运算在判断两台设备是否同网段时是核心。4.4 判断两台设备是否在同一网段这是排查网络故障时最常用的技能。方法分别用各自的IP和同一个掩码做按位与得到各自的网络地址如果相同就是同网段。假设设备A是192.168.10.50/26设备B是192.168.10.100/26A的网络地址50的二进制00110010与11000000按位与得00000000即192.168.10.0。B的网络地址100的二进制01100100与11000000按位与得01000000即192.168.10.64。两者网络地址不同所以不在同一网段通信必须经过网关路由。如果掩码都是/24那A和B的网络地址都是192.168.10.0就是同网段可以直接通信。实操心得排查ping不通的问题时第一步永远是确认双方IP和掩码算出网络地址看是否同网段。我遇到过太多次因为掩码配错比如一边/24一边/25导致明明IP很接近却不通的情况。5. 进阶技巧与实战避坑指南5.1 VLSM让地址利用率最大化的变长子网掩码前面划分子网时每个子网大小都一样。但现实中各部门需求往往不同技术部要100个地址财务部只要10个。如果都按100来分财务部就浪费了90个。**VLSM变长子网掩码**就是解决这个问题的——不同子网用不同长度的掩码。还是192.168.10.0/24需求变成技术部100台、财务部50台、行政部20台、管理层5台。用VLSM这样划先满足最大的技术部需要100台2^7-2126够用用/25。分配192.168.10.0/25范围.1-.126。剩下192.168.10.128/25。财务部50台2^6-262够用用/26。分配192.168.10.128/26范围.129-.190。剩下192.168.10.192/26。行政部20台2^5-230够用用/27。分配192.168.10.192/27范围.193-.222。剩下192.168.10.224/27。管理层5台2^3-26够用用/29。分配192.168.10.224/29范围.225-.230。核心原则从大到小分配每次从剩余空间里切。这样地址利用率最高浪费最少。VLSM是现代网络规划的标配考试和实战都绕不开。5.2 常见错误速查表下面这张表是我这些年见过的高频错误对照排查能省很多时间错误现象可能原因排查方法同网段却ping不通掩码配错实际不同网段算双方网络地址对比拿到169.254.x.x地址DHCP失败自动配了链路本地地址检查DHCP服务或网线配了IP但无法上网网关不在本网段内确认网关IP与自身同网段子网主机不够用借位太多主机位太少重新按2^n-2计算需求掩码填了非法值二进制不是连续1和0转二进制检查连续性两台机器IP冲突手工配了重复地址用ARP扫描或DHCP排查5.3 快速计算的口诀与心算法算多了之后我总结了几条心算口诀分享给你块大小 256 - 掩码最后一段。比如/27掩码最后一段224块大小32。网络地址 IP向下取整到块大小的整数倍。比如IP是.100块大小32100÷323余4向下取整到3×3296网络地址就是.96。广播地址 下一个网络地址 - 1。.96的下一个网络是.128广播就是.127。可用主机数 块大小 - 2。用这套口诀给你任意一个IP和掩码几秒钟就能报出网段、广播和可用范围。我面试新人的时候经常现场出题考这个能快速算出来的基本都过关了。5.4 网关配置的隐藏陷阱最后说一个特别容易翻车的点网关地址必须和本机IP在同一网段。很多人配了192.168.1.10/24网关却填192.168.2.1结果就是上不了网。因为本机判断网关不在自己网段根本不会把包发给它。还有一种情况是网关地址被配成了网络地址或广播地址。比如/24网段里把网关设成192.168.1.0或192.168.1.255这俩地址不能分配给设备配了也不通。网关通常选网段里第一个或最后一个可用地址比如.1或.254这是约定俗成的习惯。注意云环境里的网关地址有时不在你看到的子网范围内这是虚拟化平台的实现方式不要用传统思维去套。遇到云主机网络问题优先看平台文档而不是自己硬算。6. 把这些知识用起来几个真实场景的拆解6.1 场景一给新办公室规划网络假设新办公室拿到运营商给的192.168.50.0/24要分给办公区、会议室、访客WiFi三个区域办公区60台、会议室30台、访客20台。按VLSM思路办公区60台2^6-262够用/26分配192.168.50.0/26。会议室30台2^5-230刚好/27分配192.168.50.64/27。访客20台2^5-230够用/27分配192.168.50.96/27。剩下的192.168.50.128/25留着扩展。每个区域配各自的网关访客区还可以单独做隔离策略。这套规划清晰、好维护后续加设备也有余量。6.2 场景二排查跨网段通信故障某次同事反馈A机10.1.1.5/24ping不通B机10.1.2.8/24。这俩明显不同网段需要经过路由器。排查步骤确认A的网关配置正确且网关可达。确认B的网关配置正确。检查中间路由器是否有到两个网段的路由。检查是否有防火墙策略拦截。最后发现是路由器上少配了一条回程路由加上就通了。这个案例说明跨网段通信依赖路由同网段通信依赖ARP两者的排查思路完全不同。6.3 场景三容器网络的地址规划现在容器化部署很普遍容器网络也涉及IP规划。以常见的桥接模式为例宿主机上会创建一个虚拟网桥容器从某个子网里分配IP。如果这个子网和宿主机所在网段冲突就会出现路由混乱。所以规划容器网段时一定要避开宿主机网段和公司内网网段通常选一个冷门的私有段比如172.20.0.0/16。理解IP和掩码的计算能让你在配置容器网络、K8s的Service CIDR和Pod CIDR时心里有数不会因为网段重叠导致莫名其妙的通信问题。7. 我个人的几点体会学IP和子网掩码这件事光看是没用的必须动手算。我当年就是拿张纸把/24到/30每个掩码对应的网络地址、广播地址、可用范围全部手算了一遍算完那一遍之后这辈子都忘不了。现在虽然有很多在线计算器但建议你至少在初学阶段手算几十遍把二进制转换和按位与练成肌肉记忆。另外别把CIDR和掩码当成两个东西它们就是一回事的两种写法。看到/26脑子里要立刻浮现255.255.255.192和块大小64看到255.255.255.240要立刻反应出/28和块大小16。这种条件反射建立起来之后你排查网络问题的速度会快一个量级。最后分享一个我常用的验证方法配完IP和掩码后先别急着测业务用ping测一下同网段的其他地址和网关再用tracertWindows或tracerouteLinux看一下第一跳是不是网关。如果第一跳就不是网关那基本可以断定掩码或网关配错了。这个习惯帮我提前发现过无数次配置错误比等到业务报障再排查高效得多。
阅读完成 · 觉得有帮助?
咨询建站