掩码、反掩码、通配符的区别和计算 | ACL 匹配

注:本文为 “ 通配符 / 网掩码” 相关文章合辑

已重排,如有内容异常,请看原文。

英文引文,机翻未校。


ACL 通配符、子网掩码和反掩码的区别及计算方式

qq5ea97e5ed12c0 2020-05-16 16:14:04

概念解释

子网掩码

  • 用于确定 IP 地址的网络部分和主机部分。
  • 特点
    • 左边永远是 1,右边永远是 0。
    • 1 和 0 不会交叉出现。
    • 关注掩码中 1 所对应的位。

反掩码

  • 与子网掩码相反,用于某些特定应用。
  • 特点
    • 左边永远是 0,右边永远是 1。
    • 1 和 0 不会交叉出现。
    • 关注掩码中 0 所对应的位。

通配符

  • 用于 ACL 中匹配特定流量。
  • 特点
    • 关注通配符中 0 所对应的位。
  • 写法规则:
    • 相同的位直接写。
    • 不同的位变成 0。
  • 奇数和偶数处理:
    • 奇数 IP 的最后一位是 1。
    • 偶数 IP 的最后一位是 0。

ACL 编写规则

基本语法

rule {
   id} permit/deny source [x.x.x.x] 【通配符】

x.x.x.x 表示要抓取的通信流量的公共部分。

  • 公共部分写法原则

    • 相同的位直接写
    • 不同的位变成 0

示例:奇数和偶数 IP 处理

10.1.1.0 网段为例,奇数偶数如:

奇数

  • 10000 0001
  • 30000 0011
  • 50000 0101
  • 70000 0111
  • 90000 1001

偶数

  • 20000 0010
  • 40000 0100
  • 60000 0110
  • 80000 1000
  • 100000 1010

奇数 IP 的最后一位都是 1,而偶数 IP 的最后一位都是 0,这就是规律。

  • 奇数时,0001 这个不变,source ip 指的是起始 ip,若起始时 10.1.1.1 ,通配符最后是 1111 1110(看的是 0 是不变的)。

同理,

  • 偶数时,0010 这个不变,source ip 指的是起始 ip,若起始是 10.1.1.2 ,通配符最后是 1111 1110 ,十进制为 254

奇数 IP 的表示为:10.1.1.1 0.0.0.254 ;偶数 IP 的表示为:10.1.1.2 0.0.0.254

  • 奇数 IP:如 10.1.1.1,通配符最后四位为 1111 1110

    表示为:10.1.1.1 0.0.0.254

  • 偶数 IP:如 10.1.1.2,通配符最后四位为 1111 1110

    表示为:10.1.1.2 0.0.0.254

示例:ACL 通配符计算

允许以下主机 IP 访问路由器:

  • 192.168.1.5/24
  • 192.168.1.10/24
  • 192.168.1.13/24
  • 192.168.1.14/24

要求:只能用两条 ACL 代替。

解决方案

步骤 1:将 IP 转换为二进制
  • 192.168.1.500000101
  • 192.168.1.1000001010
  • 192.168.1.1300001101
  • 192.168.1.1400001110
步骤 2:分组匹配
  • 组 1513

    • 二进制:
      00000101
      00001101

    • 相同用 “0” 表示,不同用 “1” 表示。 二进制 00001000,通配符:0.0.0.8

    • ACL 规则:

      rule 10 permit source 192.168.1.5 0.0.0.8
      
  • 组 21014

    • 二进制:
      00001010
      00001110

    • 相同用 “0” 表示,不同用 “1” 表示。二进制 00000100,通配符:0.0.0.4

    • ACL 规则:

      rule 20 permit source 192.168.1.10 0.0.0.4
      
最终 ACL 配置
rule 10 permit source 192.168.1.5 0.0.0.8
rule 20 permit source 192.168.1.10 0.0.0.4

浅谈为何需要反掩码

码龄 3 年 已于 2023-05-07 10:14:52 修改

通配符掩码和反掩码的区别:

反掩码是IP地址掩码的反码,用于计算子网广播地址等;通配符掩码不连续,灵活匹配IP地址,用于路由选择、ACL等
通配符掩码,英文名 wildcard-mask,反掩码直译成 inverse-mask (感谢 蔚蓝湖网友的指正)

通配符掩码和反掩码的区别:
反掩码是IP地址掩码的反码,用于计算子网广播地址等;通配符掩码不连续,灵活匹配IP地址,用于路由选择、ACL等

反掩码,英文名wildcard - mask,也直译为inverse - mask。在介绍反掩码之前,先回顾掩码mask的相关知识点。

1. 掩码

掩码由10组成,其中 连续的 1 表示网络号, 连续的 0 表示主机范围。

举例:

255.255.255.0

转成二进制形式:

1111 1111.1111 1111.1111 1111.0000 0000

其中的124个,说明该掩码有24位网络号,也可用/24表示。/24是网络位,由24个比特(bit)位构成,且为 连续的 241。子网掩码长度共32个bit,由网络位和主机位两部分组成。在此例中,网络位有24bit,剩余的8个bit是主机位,用二进制形式表示,其范围是:

0000 0000 ~ 1111 1111

转成十进制形式:
0~255,主机编号从0255,共256个。

/24的网段里,0用于表示本网段,作为网段地址使用,255用于表示网段中的广播地址,所以可用于表示主机的主机地址有254个。这便是子网掩码的作用。

需注意,子网掩码中的1是连续的,不能出现一堆1里面夹着0的情况;子网掩码中的0也同理,不能出现一堆0里面夹着1的情况。

例如,1111 1111.1111 0000.1111 1111.0000 1100,这样的子网掩码是不合法的。

需明确,下面的斜线模式指的是 连续的1连续的01是连续的,0也是连续的,不能出现断开的情况。比如,/16指的是连续的161再接着16个连续的0,即:

11111111.11111111.00000000.00000000

而不能出现类似:

11111111.00000000.11111111.00000000

这种虽然也是161160,但1不连续,0也不连续,所以是错误的子网掩码。

子网掩码只能是如下列表中的一个:

/1 128.0.0.0 10000000.0.0.0
/2 192.0.0.0 11000000.0.0.0
/3 224.0.0.0 11100000.0.0.0
/4 240.0.0.0 11110000.0.0.0
/5 248.0.0.0 11111000.0.0.0
/6 252.0.0.0 11111100.0.0.0
/7 254.0.0.0 11111110.0.0.0
/8 255.0.0.0 11111111.0.0.0
/9 255.128.0.0 11111111.10000000.0.0
/10 255.192.0.0 11111111.11000000.0.0
/11 255.224.0.0 11111111.11100000.0.0
/12 255.240.0.0 11111111.11110000.0.0
/13 255.248.0.0 11111111.11111000.0.0
/14 255.252.0.0 11111111.11111100.0.0
/15 255.254.0.0 11111111.11111110.0.0
/16 255.255.0.0 11111111.11111111.0.0
/17 255.255.128.0 11111111.11111111.10000000.0
/18 255.255.192.0 11111111.11111111.11000000.0
/19 255.255.224.0 11111111.11111111.11100000.0
/20 255.255.240.0 11111111.11111111.11110000.0
/21 255.255.248.0 11111111.11111111.11111000.0
/22 255.255.252.0 11111111.11111111.11111100.0
/23 255.255.254.0 111111

<think>嗯,用户之前问了关于反掩码计算,现在又接着问反掩码通配符掩码是否可以混用。首先,我需要确认这两个术语是否真的指同一个概念。根据之前的知识,反掩码(Wildcard Mask)在Cisco等网络设备中确实常被称为通配符掩码,可能用户是看到不同资料中的不同叫法,所以想知道是否可以互换使用。 接下来,我需要回顾这两个术语的定义应用场景。反掩码通常用于ACL(访问控制列表)中,用来匹配IP地址范围,而通配符掩码可能在不同的上下文中被提到,但根据我的了解,它们实际上是一样的。比如,在Cisco的文档中,通配符掩码就是反掩码,用于指示哪些位需要匹配,哪些可以忽略。 不过,用户可能担心不同的厂商或者不同的网络环境有不同的术语,所以需要确认是否存在例外情况。比如,有些资料可能会用反掩码指代其他概念,但一般来说,在主流网络设备中,这两个术语是同一个东西。另外,用户可能混淆了子网掩码反掩码的关系,需要明确区分。 还需要考虑用户的使用场景,可能是在配置网络设备时遇到这两个术语,或者在备考认证考试时需要准确理解术语。因此,回答时需要强调术语的一致性,同时指出可能的例外,避免用户在实际应用中出错。 另外,用户可能希望知道如何正确使用这两个术语,所以在回答中需要给出明确的结论,并举例说明,帮助用户理解记忆。比如,在Cisco ACL中的通配符掩码就是反掩码,而在其他场合可能需要确认术语定义。 总结起来,用户的问题核心在于确认术语的等价性,以及是否存在使用上的差异。需要明确回答可以混用,同时指出在特定情况下可能需要确认,但大多数情况下它们是同一概念的不同名称。</think>是的,**反掩码(Wildcard Mask)****通配符掩码**通常指的是同一个概念,两者可以混用。以下是详细解释: --- ### **1. 反掩码通配符掩码的关系** - **本质相同**:反掩码通配符掩码都是用于匹配网络范围的工具,通过二进制规则(0=严格匹配,1=忽略)定义哪些 IP 地址位需要关注,哪些可以忽略。 - **名称差异**:不同厂商或场景中对同一概念的命名差异: - **反掩码**(Inverse Mask):强调它是子网掩码的“取反”(如 `255.255.255.248` → 反掩码为 `0.0.0.7`)。 - **通配符掩码**(Wildcard Mask):强调其“通配符”功能(类似正则表达式中的 `*`)。 --- ### **2. 典型应用场景** - **Cisco 设备**:在配置访问控制列表(ACL)时,通配符掩码是标准术语。例如: ```plaintext access-list 1 permit 192.168.1.0 0.0.0.255 # 允许192.168.1.0/24网段 ``` 这里的 `0.0.0.255` 是通配符掩码(即反掩码)。 - **其他厂商或工具**:可能直接使用“反掩码”这一名称,但功能完全相同。 --- ### **3. 反掩码 vs. 子网掩码** 虽然反掩码子网掩码都用于描述 IP 范围,但它们的逻辑相反: - **子网掩码**:`1` 表示网络位,`0` 表示主机位。 - 例如:`255.255.255.0` → 前24位是网络地址。 - **反掩码**:`0` 表示严格匹配的位,`1` 表示忽略的位。 - 例如:`0.0.0.255` → 忽略最后8位(匹配整个子网)。 --- ### **4. 为什么需要反掩码/通配符掩码?** 在网络配置中,反掩码可以灵活匹配不连续的 IP 范围。例如: - 匹配奇数 IP 地址:`192.168.1.1 0.0.0.254`(最后一位二进制为 `1`)。 - 匹配特定范围的子网:`10.0.0.0 0.255.255.255`(忽略前8位,匹配 `10.x.x.x`)。 --- ### **5. 注意事项** - **术语统一**:在 Cisco 体系中,严格使用“通配符掩码”一词;在其他场景中可能称为反掩码。 - **避免混淆**:与“反向子网掩码”(Inverse Subnet Mask)区分,后者是子网掩码的二进制取反,而反掩码/通配符掩码功能更灵活。 --- ### **总结** - **可以混用**:反掩码通配符掩码是同一概念的两种名称。 - **核心规则**:`0` 表示匹配,`1` 表示忽略。 - **应用场景**:主要用于 ACL、路由协议(如 OSPF)等需要灵活匹配 IP 范围的场景。 例如: 子网 `192.168.1.0/24` 的反掩码通配符掩码)是 `0.0.0.255`,表示忽略最后8位,匹配整个子网。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值