理解通配符掩码

一、什么是通配符掩码

   通配符掩码是一个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,表示所有的比特位都不需要匹配


你可能感兴趣的:(acl,通配符掩码)