ACL里面匹配网段的规则原来是这样,终于理解了

ACL⾥⾯匹配⽹段的规则原来是这样,终于理解了
⼀直对ACL和OSPF⾥⾯匹配⽹段的掩码有点模糊,OSPF使⽤反掩码,ACL则使⽤通配符掩码,看样⼦⼀样,其实略有点区别。
先来看看度娘对通配符掩码的定义。
通配符掩码(wildcard-mask)
通配符掩码(wildcard-mask)使⽤的通配符掩码与源或⽬标地址⼀起来分辨匹配的地址范围,它与⼦⽹掩码不同。它不像⼦⽹掩码告诉路由器IP地址的哪⼀位属于⽹络号⼀样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。这个可以只使⽤两个32位的号码来确定IP地址的范围。这是⼗分⽅便的,因为如果没有掩码的话,不得不对每个匹配的IP客户地址加⼊⼀个单独的语句。这将造成很多额外的输⼊和路由器⼤量额外的处理过程。所以地址掩码相当有⽤。
TIP:通配符掩码中,0表⽰要检查的位,1表⽰不需要检查的位。
浅薄之见
经常使⽤ACL的朋友应该能明⽩以下的ACL匹配的⽹段内容:
大功率同轴固定衰减器由于业务需要
eg1:匹配172.16.8.0 /24的⽹段,那么ACL的通配符掩码通常是:0.0.0.255
eg2:匹配172.16.8.1 /32的主机IP,那么ACL的通配符掩码通常是:0.0.0.0
#rule 1 deny ip source 172.16.8.0 0.0.0.255
车载制氧机
#rule 2deny ip source 172.16.8.1 0.0.0.0
度娘说的0要检查,1不检查到底是什么意思呢?
TEST1
我们⾸先将eg1例中的IP地址172.16.8.0 /24转换为⼆进制:10101100.00010000.00001000.00000000(使⽤calc⾃⾏计算)
规划沙盘ACL的通配符掩码通常是:0.0.0.255,转化为⼆进制是:00000000.00000000.00000000.11111111
0,1表⽰要检查的位(这⾥说的0和1是通配符掩码的0和1,本例中的0.0.0.255)
当通配符掩码是0时,需要检查位,IP地址必须精确匹配,通俗来讲,此时,要求匹配的IP段或者主机,它们⼆进制的每⼀位都不能发⽣变化
即匹配还是10101100(⼗进制:172)同理此IP段,点分⼗进制前三段匹配后还是172.16.8
⽽最后的通配符掩码是255,转换为⼆进制即8位的1:11111111,当通配符掩码是1时,表⽰不需要检查位,IP地址可以模糊匹配,(这⾥说的0和1是通配符掩码的0和1,本例中的0.0.0.255),模糊匹配就是0/1都可以,所以此时通配符的掩码255匹配了多少个地址呢?
是的,00000000-11111111 共256个地址(0-255共256个地址,其中主机位全0的是⽹络地址,主机位全1的是⼴播地址),所以
#rule 1 deny ip source 172.16.8.0 0.0.0.255  就将172.16.8.0/24的⽹段匹配出来了。
举例1:192.168.1.0  0.0.0.255这条规则匹配了192.168.1.0 /24 这个⽹段,共有256个地址
举例2:172.16.1.0  0.0.255.255这条规则匹配了172.16.0.0 /16这个⽹段,共有个地址65536个地址
特殊例⼦
通配符掩码:0.0.0.0,表⽰唯⼀的⼀个主机地址
通配符掩码:255.255.255.255,表⽰任意的IP地址
TEST2
上⾯笔者举的例⼦都是⼀些较为规则的匹配⽹段,容易读懂,看明⽩,那么遇上这类伤脑筋的通配符掩码呢?
#rule 1 deny ip source  172.16.1.0  0.0.0.7
这⼀条ACL⼜是覆盖了哪些段呢?我们不妨将上⾯的IP和通配符掩码都转化⼆进制来看看:
172.16.1.0 ➡10101100.00010000.00000001.00000000
0.0.0.7 ➡00000000.00000000.00000000.00000111
那么根据匹配规则我们知道,点分⼗进制前3位精确匹配,(因为通配符掩码都是0)所以依然是172.16.1
但是最后⾯的⼗进制7有点陌⽣,它转换为⼆进制:00000111,那么不难看出,前5位我们要检查位(检查的是IP地址的位),也就是精确匹配,即IP地址的⼆进制前5位还是它本⾝,等到通配符掩码是
111的时候,这三位可以表⽰000-111,共8个地址。也就是说#rule 1 deny ip source  172.16.1.0  0.0.0.7 匹配的IP地址是:
172.16.1.0 -172.16.1.7
不难发现,我们总是⽤通配符掩码来检查IP地址的位,⽽此条ACL代表的⽹段是由IP地址和通配符掩码共同决定的。
eg2:还是这条ACL,但是我们改变⼀下通配符的掩码
#rule 1 deny ip source  172.16.1.0  0.0.7.7
172.16.1.0 ➡10101100.00010000.00000001.00000000
0.0.7.7 ➡00000000.00000000.00000111.00000111
那么根据匹配规则我们知道,点分⼗进制前2位精确匹配,(因为通配符掩码都是0)所以依然是172.16
IP地址第三段,1的⼆进制是00000001,⽽通配符掩码是00000111,所以,IP地址前5位依然是精确
匹配,即0(DEC,⼗进制),但是后3位是111(BIN,⼆进制),所以依然有0-7这个段,那么我们是不是可以得出点分⼗进制的前三段:
172.16.0 -172.16.7,最后⼀段点分⼗进制,同样的道理,那么我们现在能知道#rule 1 deny ip source  172.16.1.0  0.0.7.7 这条ACL匹配的⽹段范围:
172.16.0.0~172.16.0.7
172.16.1.0~172.16.1.7
172.16.2.0~172.16.2.7
172.16.3.0~172.16.3.7
172.16.4.0~172.16.4.7
172.16.5.0~172.16.5.7
172.16.6.0~172.16.6.7
172.16.7.0~172.16.7.7
172.16.1.0  0.0.7.7 这条ACL匹配的⽹段范围内共有64个IP地址。
TEST3
上⾯的例⼦,笔者依然觉得⾃⼰举了⼀些特殊的例⼦,并不能更贴切的让读者明⽩,我们再来看个例⼦:
#rule 1 deny ip source  172.16.132.9    0.0.10.1
我们吧IP地址点分位四段,172,16,132,9
同样,我们进⾏进制转换:
172.16.132.9  ➡10101100.00010000.10000100.00001001
0.0.10.1 ➡00000000.00000000.00001010.00000001
我们依然不难看出,这条ACL的前两段是精确匹配,那么最终结果的点分⼗进制,
前两段点分⼗进制可以确定是:172.16
那么来看第三段:
IP:132➡10000100
通配符掩码10:00001010
通过通配符我们知道前4位是精确匹配,则IP地址是128(DEC,⼗进制),
第5位是1,所以,是模糊匹配。有0/1两种情况,⽽第5位的值是8,
可以预想的是会有:128,128+8这两个IP地址;
继续向后看第6位,通配符掩码是0,所以IP的第6位必须是1,⽽第6位的值是4
可以预想的是会有:128+4,128+16+4,这两个地址;
继续向后看第7位,通配符掩码是1,所以是模糊匹配。有0/1两种情况,⽽第7位的值是2
可以预想的是会有:
128+4=132,
128+8+4=140,
128+8+4+2=142,
128+4+2=134,
这4个地址;
letm继续来看第4段:
IP:9  的⼆进制:          ➡00001001
通配符掩码1的⼆进制:➡00000001
因为通配符前7位是0,所以我们要求IP的前7位精确匹配,即前7位它的值是8(DEC,⼗进制),
最后⼀位通配符掩码是1,所以不需要IP精确匹配,即它的值是0或者1,这样第四段会有两个结果,即
9(DEC)或者8(DEC)
那么,我们总结全部的四段,可以得出
#rule 1 deny ip source  172.16.132.9    0.0.10.1这条规则匹配的IP是:
172.16.132.8~172.16.132.9
172.16.134.8~172.16.134.9
172.16.140.8~172.16.140.9
172.16.142.8~172.16.142.9
共8个IP。
总结
关注ACL匹配的⽹段或者IP时,我们总是将IP和通配符掩码结合起来,它们共同决定了即将匹配的⽹段或者IP。并且我们遵循0要检查的位,1不需要检查的位的原则,就可以轻松得出这条ACL或者前缀列表匹配的是哪些IP了。
灌浆剂点火模块拓展
给出多个连续的IP范围,我们可以⽤⼀条ACL匹配完毕吗 ?例如:192.168.10.0~20这21个IP地址,可否⽤⼀条AC匹配?答案是不能,我们可以以分段的⽅式来匹配。
#192.168.10.0      0.0.0.15
#192.168.10.16    0.0.0.7
#192.168.10.20    0.0.0.0
读者可以⾃⾏,计算下过程,了解通配符的⽤法。
结语:匆匆写这篇⽂章,路过的⼤神若发现不⾜之处,还望不吝指教。

本文发布于:2024-09-21 13:38:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/210536.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:匹配   掩码   通配符   IP地址   进制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议