目录
正文
一、通配符掩码的总结
- ★★★★★重要:通配符掩码(wildcard mask)和 子网掩码(subnet mask)的作用是相反的!!!!
- 通配符掩码常用精确路由计算。
- 在 ACL 中常用。
二、子网掩码
2.1 网络地址的组成
- ip 地址:192.168.1.1
- 子网掩码:255.255.255.0
2.2 网络地址的表现形式
- 点分十进制
- 192.168.1.1
- 在实际操作中使用,便于人类识别。
- 二进制
- 11000000.10101000.00000001.00000001
- 在内存中自动识别。
2.3 子网掩码的表现方式
- 点分十进制
- 255.255.255.0
- 二进制
- 11111111.11111111.11111111.00000000
- 前缀长度表示法
- /24
- 计算方法:在二进制表示法中,从左到右占了多少个连续的 1。
- 一般简称为前缀,英文代词 prefix
2.4 子网掩码的作用
- 以 192.168.1.0/24 为案例,转换为二进制视角,我们来分析子网掩码的作用。
ip 地址 | 192.168.1.1 | 11000000.10101000.00000001.00000000 |
子网掩码 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
- 解释说明
- 上表中可以看出来,ip 地址和子网掩码在二进制中位置是一一对应的,这代表了他们的关联性。
- 子网掩码中的 1 位,代表对应 ip 地址二进制位置的值锁定,这些值在参与网络运算中是不可变的,例如上表中的蓝色部分,就是被锁定了。
- 子网掩码中的 0 为,代表对应 ip 地址二进制位置的值可变,它的作用是为通过网络运算,为一段网络划分范围。
- 例如,192.16.1.0/24 的网络范围是 192.168.1.1/24~192.168.1.255,192.168.1.1/24 属于这个网络中的一个具体 ip 地址。
三、通配符掩码
3.1 通配符掩码和子网掩码的区别
- 子网掩码
- 由连续的 1 和连续的 0 组成。
- 在二进制格式中,1 表示锁定,0 表示可变。
- 通配符掩码
- 由非连续的 1 和非连续的 0 组成。
- 在二进制格式中,0 表示锁定,1 表示可变,这点和子网掩码是完全相反的!!!!
- ACL 中常用。
- 示例:子网掩码和通配符的区别
子网掩码 | 11111111.11111111.11111111.00000000 |
网络通配符 | 11010001.00110111.10001111.10000101 |
- 上述示例中网络通配符的排列乱是为了展示通配符的无序特性,实际应用中网络通配符是人为设计的,它通常更规整一些。
- 示例:通配符掩码
255.0.255.0 | 11111111.00000000.11111111.00000000 |
3.2 通配符掩码的应用案例
- 需求
- 有一个地址池为 192.168.0.0/16,现在需要使用 ACL 工具,将这个地址池中所有 192.168.X.0 的 24 位网段过滤出来。
- 需求1:使用 ACL 表示当 x 为偶数的所有网段。
- 需求2:使用 ACL 表示当 x 为奇数的所有网段。
- 解题思路:
- 将网段转换成二进制,锁定固定 bit 位。
类型 | 点分十进制 | 二进制 |
ip 前缀 | 192.168.0.0 | 11000000.10101000.00000000.00000000 |
子网掩码 | 0.0.255.0 | 00000000.00000000.11111111.00000000 |
- 根据通配符掩码的匹配原则,上表中红色部分不能改变。
- 通过简单的二进制转换原理,我们可以在二进制中区分偶数和奇数。
- 偶数:最后一位为 0
- 奇数:最后一位为 1
- 现在先来满足需求1,筛选 x 为偶数的地址。
类型 | 点分十进制 | 二进制 |
ip 前缀 | 192.168.0.0 | 11000000.10101000.00000000.00000000 |
通配符 | 0.0.254.0 | 00000000.00000000.11111110.00000000 |
- 现在来满足需求2,筛选 x 为奇数的地址。
类型 | 点分十进制 | 二进制 |
ip 前缀 | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
通配符 | 0.0.254.0 | 00000000.00000000.11111110.00000000 |
- 在 ACL 中进行抓取
# 创建 acl [acl] rule 5 permit source 192.168.0.0 0.0.254.0 # 在 acl 2000 中创建抓取 192.168.x.0 中 x 为奇数的网络地址。 |