理解通配符掩码

原创
2016-06-07 15:05:40 2806浏览

一、什么是 通配符 掩码 通配符 掩码是一个32位比特数,以点分十进制表示,告诉路由器数据包IP地址的哪些比特需要和access-list命令中给定的IP地址相匹配。 二、 通配符 掩码的作用 一条典型的ACL仅能指定一个要允许或拒绝IP的规则,如果要阻止多个地址或一

一、什么是通配符掩码

通配符掩码是一个32位比特数,以点分十进制表示,告诉路由器数据包IP地址的哪些比特需要和access-list命令中给定的IP地址相匹配。


二、通配符掩码的作用

一条典型的ACL仅能指定一个要允许或拒绝IP的规则,如果要阻止多个地址或一段范围的地址,那么如使用典型的ACL规则,则需要添加多条才能满足。这样导致工作量增多,易出错且ACL执行效率降低等不足。而通配符掩码就是解决批量范围的ACL应用。简单来说,通配符掩码定义了数据包地址的哪部分需要匹配ACL中已列出的地址,哪些部分不需要匹配。

对于只有0和255字节的通配符掩码,0字节表示需要匹配,255字节表示不需要匹配。


三、简单型通配符掩码

对于标准的IP地址,使用观察就可以确定数据包的哪些位会被ACL分析,具体参见下例:

允许单台主机的通配符掩码

172.16.33.134 0.0.0.0

允许某个/24网络所有主机的通配符掩码

192.168.0.0 0.0.0.255

允许某个/16网络所有主机的通配符掩码

172.16.0.0 0.0.255.255

允许某个/8网络所有主机的通配符掩码

10.0.0.0 0.255.255.255

四、复杂型通配符掩码求法

从上面可以看出通配符掩码能实现针对一段地址范围的过滤,如上面例子,也就是分别针对单个地址,C类地址,B类地址以及A类标准地址的网络地址进行精准匹配。那么除了标准的网络地址匹配外,对于有划分子网,或没有划分子网但希望实现对某段地址范围进行ACL控制,通配符掩码能不能实现呢?答案是可以的,参见下面的例子:

问题:有192.168.22.0/26的网络,如何实现通配符掩码进行ACL控制

方法一:根据块大小求得通配符掩码:块大小-1

已知/26,可知块大小=64,那么实现上述网络细分为四个子网:

192.168.22.0

192.168.22.64

192.168.22.128

192.168.22.192

(块大小-1)即是通配符掩码中不必进行精准匹配的部分,所以通配符掩码=0.0.0.63

方法二、根据子网掩码求通配符掩码:(255.255.255.255-子网掩码)

已知/26,所以子网掩码是:255.255.255.192

通配符掩码=255.255.255.255-子网掩码-0.0.0.63

四、通配符掩码与any/host关键字

某两个特殊的通配符掩码与any/host关键字含义相同,且IOS更倾向使用特殊关键字。

其中:host=0.0.0.0,表示所有的比特位都必须匹配

any=255.255.255.255,表示所有的比特位都不需要匹配


我儿子真帅!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。