大家好,又见面了,我是你们的朋友全栈君。
掩码我们学数通的应该都很熟悉,我们刚刚学习IP的时候肯定都学过,这里就不在叙述。
今天我们要说的是反掩码和通配符掩码,反掩码相信大家也都不陌生,我们配置OSPF的时候都能用的到但是很多网工也就知道配置OSPF就要那么配置,用255.255.255.255减去正掩码就是反掩码,但是反掩码是啥却说不出来。
掩码顾名思义就是正掩码反过来,正掩码是连续的1和0构成,用来区分网络部分和主机部分,1对应网络位,0代表主机位。
而反掩码正好相反,由连续的0和1组成,0必须匹配,1无需匹配,一般用在路由协议中,比如我们最熟悉的OSPF宣告网段时
‘’
这就表示宣告了一个掩码前缀为24的网段,用我们的计算公式255.255.255.255-255.255.255.0=0.0.0.255,一般来说大家都是这么配置的,也没什么问题,但是一旦别人问你,特别是你的客户问你什么是反掩码,你总不能说,“不用知道什么是反掩码,只要会用就行了。”这句话的吧,所以我们在会用的同时也要知道它是什么。
如上面我们在OSPF中宣告的这个网段,按照0必须匹配,1无需匹配的规则,我们可以知道红线左边都是0也就是说192.168.1被0匹配不能改变,而红线右边全为1,意思就是把IP地址写成二进制后,后8位可以为任意的0和1,因为通配符1无需匹配的,它并不关心你对应的IP地址到底是1还是0。也就是说你IP地址是192.168.1.15也行,是192.168.1.200也行都能被0.0.0.255匹配上。
在说通配符之前我们先看几张图
很显然我们在配IP地址的时候,红圈里提示我们的是“IP ADDRESS MASK”IP地址的掩码
而我们在配ACL的时候,红圈里显示的是WILDCARD,就是通配符的意思。
通配符是由任意的0和1组成,一般用于ACL中,和反掩码一样也是按照0必需匹配,1无需匹配的原则来进行匹配的。
这个任意的0和1组成是什么意思?我们来通过几条ACL语句来感受一下:
通配符我可以这样写:
也可以这样写
还能这么写
如果说前面的你都能理解的话,那还有更花里胡哨的,我还能这么写:
这下就不好理解了吧,通配符难就难在这个地方。
我们来看下ACL 2001里的配置
大家此时会发现我们写的ACL语句到了ACL配置里就变了,怎么回事呢,我们把它们化成2进制就能看清楚了。
拿rule permit source 2.2.2.2 1.2.3.4这条语句为例;
由0必须匹配,1无需匹配的原则,我们可以看出把2.2.2.2化成二进制后首尾8位有个1被匹配了也就是说这个值不能改变,所以这条ACL匹配的对应IP地址可以为2.0.0.2也可以为3.0.0.2,也可以是3.2.3.6。
根据上面所叙述的,0必须匹配1无须匹配的原则,我们只要保证把地址化成八位二进制后最后一位固定为1就行了
写成ACL的话就是 rule per so 192.168.0.1 0.0.0.254
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161516.html原文链接:https://javaforall.cn