access-list 120 permit ip 10.0.0.0 0.0.0.191 any
這條ACL看似簡單,卻又復雜,因為正常我們見到的通配符掩碼都是諸如0.0.0.255(255.255.255.0)/0.0.255.255(255.255.0.0)/0.0.0.127(255.255.255.128)等等,那這個0.0.0.191又是什么鬼?
要知道0.0.0.191匹配到了什么地址,這就要從通配符掩碼說起,在ACL語句中,當使用地址作為條件時,地址后面跟的都是通配符掩碼,通配符掩碼決定了地址中哪些位是需要精確匹配,哪些位不需要匹配。通配符掩碼是一個32位數,采用點分十進制方式書寫,匹配時,“0”表示檢查的位、“1”表示不檢查的位。
由此我們可以先進行通配符的二進制轉換,由此可以看出這個通配符必須匹配1-24位和26位。
0.0.0.191--》0000 0000.0000 0000.0000 0000.1011 1111
而IP地址由於是10.0.0.0,所以二進制就是:
10.0.0.0---》0000 1010.0000 0000.0000 0000.0000 0000
由此我們可以看出,通配符必須匹配以下標紅位數
0000 1010.0000 0000.0000 0000.0000 0000
而不標紅位數第一個0可以有兩種可能0/1,當第25位為0時,后六位的范圍是000000-111111
0000 1010.0000 0000.0000 0000.0000 0000=10.0.0.0
0000 1010.0000 0000.0000 0000.0011 1111=10.0.0.63
當第25位為1時,后六位的范圍是000000-111111
0000 1010.0000 0000.0000 0000.1000 0000=10.0.0.128
0000 1010.0000 0000.0000 0000.1011 1111=10.0.0.191
所以,10.0.0.0 0.0.0.191匹配了兩個網段的IP地址,分別是10.0.0.0-10.0.0.63和10.0.0.128-10.0.0.191。
