找回密码
 立即注册
首页 业界区 业界 IP计算不求人,掩码,反掩码,通配符一次学会 ...

IP计算不求人,掩码,反掩码,通配符一次学会

百谖夷 3 小时前
1. 还在为一堆 0 和 1 抓狂吗?

你是否还在为 IP 计算和各种掩码规则而困惑?掩码、反掩码和通配符,它们都是用来计算匹配IP地址的?又有什么区别?
在配置路由器,交换机或防火墙时,你是否对 255.255.255.0 和 0.0.0.254 感到迷惑?。明明长得差不多,凭什么在配置网卡时用这个,配置 OSPF 路由时用那个,到了写 ACL(访问控制列表)防火墙策略时,又换了一套玩法?
如果你也为些感到困惑,别担心,今天,我们将拨开网络底层的迷雾,一次性教会你掩码反掩码通配符的核心逻辑和速算技巧。读完这篇,你的网络基础功力将再上一个台阶!
2. 历史渊源:为什么会有这三种“尺子”?

在深入计算之前,我们需要明白它们为什么存在。在早期互联网(ARPANET)时代,IP 地址的设计非常简单粗暴(A,B,C类,具体可查看我的博客文章IP地址是什么?MAC地址是什么?)。但随着网络规模爆炸式增长,工程师们遇到了几个痛点:

  • 如何区分“街道”和“门牌号”? 于是诞生了​子网掩码​,用来严格划分网络位和主机位。
  • 硬件计算如何更高效? 在早期的路由器 CPU 中,执行“按位与”和“匹配 0”的逻辑门电路运行速度最快。为了让路由协议(如 OSPF)快速筛选出需要激活的接口,工程师逆向思维,发明了​反掩码​,去适配硬件计算。
  • 如何实现极其复杂的安全过滤? 防火墙需要极其灵活的抓取能力(比如只允许特定网段的奇数 IP 通过),传统的连续掩码根本做不到。因此,完全打破连续性限制的通配符应运而生。
3. 子网掩码 (Subnet Mask):划定地盘的界碑

核心作用:告诉设备,这个 IP 地址里哪部分是网络号,哪部分是主机号。
铁律:在二进制下,所有的 1 必须是连续的,所有的 0 必须是连续的。1 代表网络位,0 代表主机位。
3.1 如何计算?

假设我们有一个 IP:192.168.1.130,掩码是 255.255.255.224(即 /27)。我们要怎么算出它的网络地址,广播地址,谁和它在一个 IP段内?

  • 常规做法(费脑子)​:
把 IP 和掩码全转成 32 位二进制,上下对齐做“按位与”运算。这种算法在此不做介绍,相信你在很多书籍或文章里都见到过。

  • 快捷口算(简单):

  • 找到掩码中不等于 255 的那一段,这里是 224。
  • 计算块大小(Block Size):256 - 224 = 32。
  • 这意味着子网是按 32 递增的:0, 32, 64, 96, 128, 160...
  • 看看我们的 IP 尾数 130 落在哪个区间?它落在 128 到 159 之间。
  • 得出结论:网络地址是 192.168.1.128,广播地址是192.168.1.159,可用的IP段(主机位)范围是129-158。一秒搞定!


  • 借助Excel/WPS计算(方便)
如果你还觉得麻烦,又不想去搜索寻找IP计算小工具,你可以使用Excel/WPS轻松的“看”出。
例如,在你管理的网络中,有大量的设备互联使用252的掩码(2个主机位),那么哪些IP是我们可以用的呢?你可以在Excel/WPS像下图所示,轻松的拉出一个表格,看出你能用哪些IP地址。
可以看到,可用主机位被划分为了1,2,5,6,9,10……245,246,249,250,253,254。
1.gif

同理,对于其他掩码,你也可以这样,只需几秒钟就能搞定。
2.png

3.png

4.png

3.2 掩码的特殊应用示例


  • "/32 "掩码 (255.255.255.255):

    主机路由。代表网络中唯一的一台特定设备,没有其他主机。常用于 Loopback 环回口。
  • "/31" 掩码 (255.255.255.254):

    点对点(P2P)链路专属。传统的掩码会浪费网络地址和广播地址,而在两台路由器直连的线路上使用 /31,刚刚好只包含 2 个 IP,极致节省 IP 资源(RFC 3021 标准)。
    不过在实际中网络中,你可能看到更多的是依旧使用/30(255.255.255.252)来做掩码,包含 4 个IP,其中有2个主机位。这是因为:
  • 现代设备都支持RFC3021 标准,但一些老旧设备可能不支持。
  • windows/Linux中不支持或需要配置才能实现。
  • 内网中不缺IP,没必要节省那2个IP。
  • 习惯与“心理安全感”,配置 /30 意味着路由表清清楚楚,排查故障(Ping)时逻辑非常稳健。“多一事不如少一事”。
4. 反掩码 (Inverse Mask):路由协议的定位器

核心作用​:在 OSPF、EIGRP 等路由协议中,用于宣告哪些网段或接口参与路由协议。
铁律​:正好是子网掩码的按位取反。0 代表必须严格匹配1 代表忽略(随便是什么都行)。通常,它也必须是连续的。
4.1 反掩码的计算

反掩码计算很简单,每段都用255 减去子网掩码即可。
例如对于ip地址192.168.1.1,掩码255.255.255.252

  • 计算:255.255.255.255 - 255.255.255.252 = 0.0.0.3。
那么在OSPF中使用network进行路由宣告时,你就可以这么写
  1. # 仅为示例,不同品牌命令有差异
  2. network 192.168.1.1 0.0.0.3 area 0.0.0.0
复制代码
那么它代表的意义就是,0对应的位必需严格匹配,即192.168.1是严格匹配,IP地址最后是1,对应00000001,反掩码中3对应的是00000011,即前面6位也必需严格匹配,即前6位必需都是0,最后2位随意是什么都行,那就可以是00,01,10,11,即0,1,2,3。
所以在OSPF中,命令network 192.168.1.1 0.0.0.3 ,代表的就是192.168.1.0~192.168.1.3这 4 个IP是匹配路由的,可通信的。当你执行完这条指令,实际宣告的结果是192.168.1.0 0.0.0.3,也就是说,这4个IP你用这个反掩码生成的结果是一样的。
看到这里很多人难免有疑问,这结果不是用252掩码算出来一样吗?为什么还要写成0.0.0.3这种反掩码?在第2章节“历史渊源”中已简单解释过原因:

  • 早期CPU性能较关,使用0在电路设计上能实现最快的硬件计算速度。
  • “0 = 匹配,1 = 忽略”的逻辑在早期的访问控制列表(ACL)中就已经定型,OSPF 作为与之紧密配合的路由协议,直接沿用了这一套逻辑。
小知识:可以不用反掩码了

很多现代厂商(如华为、华三或某些新版系统)已经支持直接在接口下开启 OSPF,或者在 network 命令后面直接跟正掩码。因为对人来说,正掩码确实更直观。
例如,指令network 192.168.1.1 255.255.255.252,实际宣告结果也是network 192.168.1.0  0.0.0.3。
4.2 特殊应用示例(精确宣告)

在配置 OSPF 时,很多新手喜欢用 network 192.168.1.0 0.0.0.255 来宣告整个网段。但在大型复杂网络中,更推荐的“极客写法”是精确宣告特定接口的 IP。

  • 命令:network 192.168.1.1 0.0.0.0
  • 解析:四个 0 代表 32 位全部必须严格匹配。这行命令告诉路由器:“仅在这个特定 IP 为 192.168.1.1 的接口上开启 OSPF”。这能最大程度防止误宣告。
5. 通配符 (Wildcard Bits):防火墙的超级滤网

核心作用​:主要用于 ACL(访问控制列表),用来精准抓取或过滤特定的网络流量。
铁律​:0 代表匹配,1 代表忽略。最重要的一点:它可以是不连续的!
和反掩码相同,因为都是0 代表匹配,1 代表忽略,很多工程师把反掩码和通配符混为一谈,因为在匹配整个网段时,它们长得一模一样。但通配符的精髓在于“可以不连续”,并因此而拥有的 “跳跃匹配”IP地址的能力。
5.1 经典应用示例:只允许奇数 IP 上网

假设你要在 192.168.1.0/24 这个网段中,只允许尾数是奇数(.1, .3, .5...)的电脑访问外网。正掩码和反掩码对此无能为力,但通配符可以。

  • 奇数的二进制特征​:最后一位必定是 1。
  • 编写通配符​:前三个网段必须匹配(0.0.0);第四个网段,前 7 位随便变(写 1),最后 1 位必须匹配(写 0)。
  • 结果​:第四个网段的通配符二进制是 11111110,十进制就是 254。
  • ACL 规则​:permit 192.168.1.1 0.0.0.254。
通过这行简单的代码,所有偶数 IP 瞬间被精准拦截。这就是通配符的魅力。
5.2 常规示例,匹配192.168.1.16 到 192.168.1.31

如下图所示,16在第5位(倒数),32在第6位,那么16~31均在后5位内,且第5位(倒数)均为1。
即,最后4位不关心,其余均需要匹配上,所以匹配这16个IP地址的方式是192.168.1.16 0.0.0.15。
5.png

5.3 进阶示例:通配符的“跳跃匹配”艺术

结合上例,如果把IP换成192.168.1.32,继续使用通配符 0.0.0.15,匹配到的是什么地址呢?很明显,最大匹配到32+15=47,即,
对于IP地址“192.168.1.32”:
使用0.0.0.15,则会匹配到192.168.1.{32-47}共16个IP;
使用0.0.0.16,则会匹配到192.168.1.32和192.168.1.48共2个IP;
使用0.0.0.17,则会匹配到192.168.1.{32-33}和 192.168.1.{48-49}共4个IP;
使用0.0.0.18,则会匹配到192.168.1.{32,34}和 192.168.1.{48,50}共4个IP;
使用0.0.0.19,则会匹配到192.168.1.{32-35}和 192.168.1.{48-51}共8个IP;
使用0.0.0.20,则会匹配到192.168.1.{32,36}和 192.168.1.{48,52}共4个IP;
使用0.0.0.21,则会匹配到192.168.1.{32,33,36,37}和 192.168.1.{48,49,52,53}共8个IP;
……
使用0.0.0.31,则会匹配到192.168.1.32- 192.168.1.63共32个IP;
表格展示如下:
通配符 (十进制)通配符 (二进制末 8 位)匹配逻辑 (0 必相同, 1 随便变)最终匹配到的 IP 地址匹配数量0.0.0.10 0 0 0 0 0 0 1最后1位忽略192.168.1.{32,33}2个 (连续)……0.0.0.150 0 0 0 1 1 1 1锁定前 4 位,后 4 位全忽略192.168.1.32 到 192.168.1.4716 个 (连续)0.0.0.160 0 0 1 0 0 0 0仅允许第 4 位(权重 16)变化32,482 个 (跳跃)0.0.0.170 0 0 1 0 0 0 1允许 16 和 1 的位变化32, 33 和 48, 494 个 (成对跳跃)0.0.0.180 0 0 1 0 0 1 0允许 16 和 2 的位变化32, 34 和 48, 504 个 (等距跳跃)0.0.0.210 0 0 1 0 1 0 1允许 16, 4, 1 的位变化32, 33, 36, 37, 48, 49, 52, 538 个 (组合跳跃)……0.0.0.310 0 0 1 1 1 1 1锁定前 3 位,后 5 位全忽略192.168.1.{32-63}32 个 (连续)也许到这里你又有点迷糊了,为什么会出现这种“跳跃”?其实很简单:​通配符里哪一位是 1,对应的 IP 位就获得了自由​,这也是通配符最硬核的地方:它可以不连续!
通配符这种精准的“定点打击”能力,是掩码永远无法企及的!相信到这里,你一定再也不会将通配符和反掩码混为一谈了。
掌握了这些,你不仅能轻松应对 CCNA/HCIA 的考试,更能在实际工程中写出极简、优雅的 ACL 策略。记住,网络不仅是技术,更是一门关于 0 和 1 的艺术。
6. 结语:一张表看懂核心差异

为了方便大家记忆,我们将这三者的核心特征整理成表格:
工具名称核心用途0 的含义1 的含义必须连续吗?子网掩码划分网络与主机主机位网络位必须连续反掩码路由协议接口宣告必须匹配忽略不计必须连续通配符ACL 流量过滤抓取必须匹配忽略不计可以不连续网络技术的魅力,在于这些看似枯燥的数字背后,隐藏着极致的逻辑美感。当你再次面对各类IP计算时,相信你已经成竹在胸。告别死记硬背,理解底层逻辑,你也是 IP 计算大师!
7. 彩蛋:IPv6 时代,我们还需要这些复杂的计算吗?

如果你觉得刚才的 0 和 1 算起来还是太费脑细胞,那么这里有一个好消息:在未来的 IPv6 世界里,很多“反人类”的掩码设计都被无情地淘汰了!
随着 IP 地址资源池的耗尽,IPv6 正在逐步接管网络世界。在这个新纪元里,规则变得极其清爽:

  • 子网掩码的“消亡” :IPv6 彻底抛弃了 255.255.255.0 这种冗长且容易算错的十进制表达,全面拥抱 CIDR(前缀长度)。你看到的配置只有类似 2001:db8::/64 这样干净利落的写法。斜杠后面的数字直接告诉你网络位有多少,剩下的全是主机位,简单粗暴。
  • 反掩码的“失业”:在 OSPFv3(专为 IPv6 设计的版本)中,网络协议的底层逻辑迎来了大升级。工程师宣告网段时不再需要用 network 命令配合反掩码去“盲狙”,而是直接进入路由器的接口视图,敲入类似 ospfv3 1 area 0 的命令——直接在物理接口上激活协议,精准、安全且无歧义。
  • 通配符的“退居二线”:虽然在 IPv6 的高级 ACL 中,为了实现极致的安全控制,依然保留了类似掩码的过滤机制,但由于 IPv6 地址结构高度标准化(通常固定前 64 位为网络前缀,后 64 位为接口 ID),日常的安全策略配置变得更加模块化,很少再需要像 IPv4 那样用通配符去硬抠“奇偶数”了。
所以,趁着 IPv4 还在统治网络世界的这段时间,好好掌握上面那套 0 和 1 的魔法吧。能把掩码、反掩码和通配符玩转,不仅是你扎实基本功的体现,更是属于网络工程师独有的“硬核浪漫”!
文章同步发表于我的WX个人号:ICT通信知识库,欢迎关注。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册