
一般我们在应用上都是进行地址块的匹配,怎么讲呢?就是说:/ T5 U$ @6 q& v2 @3 X
1)对某个A B C类网进行匹配或者教通配符屏蔽8 q2 e/ L- t6 L) k& ^+ |
2)对某个子网应用ACL。
$ ^" f d" R8 z2 L5 x. J5 t4 ]3)对特定主机应用ACL% @/ R: n4 N! G$ B* _7 t( E' y
4)对任意主机或者网络应用ACL
4 S2 u4 C" s! E: \1 }5)特殊情况的匹配
8 [1 m/ T$ G# X. }
5 ]1 T- _! u U差不多就是以上五种情况,下面一一说明。6 i% V, t2 F- @% H) R. m
1)对某个有类网络进行ACL的通配符屏蔽。
# }+ S D I4 i4 Q: O5 n这种情况很好解释。5 c0 P: N: o% K. h
例如:A类:10.0.0.0 0.255.255.255
; y4 C% S5 I- d6 H先写成二进制形式: 00001010.00000000.00000000.00000000/ L9 i% ?$ w) [9 A+ o3 m- q9 M
' h8 v# ]# \! V. `1 @/ R00000000.11111111.111111111.11111111- B7 E3 ^7 o- J( |( m1 ]+ J
可以看出,第一个字节需要严格匹配,也就是说必须为10.,后面的任意匹配。, U5 \* w* W2 G3 _) D$ y
得到的网络为10.*.*.*9 H2 h1 s& d& a( z: k7 u
如果我把这个改一下呢?10.0.0.0 0.0.3.255# j1 Q2 r: L: t7 i* X. z
同样写成二进制形式:00001010.00000000.00000000.000000009 j8 v- d% p* B$ Q
9 s" z( M6 U' G- \/ K7 U2 e00000000.00000000.00000011.111111111. ~+ Q# G+ [, R$ E2 S( {
前两个字节严格匹配为10.0,后面的同上题一个思路,0就严格匹配,1就任意。
! m! k) o5 L( H1 a5 Y) Z在这里,后10个比特可以任意匹配,我们通过计算可以得到合适的结果:$ O* S2 ^$ L4 P9 |: i
10.0.0.*
) P4 @! R) ~$ I; ~/ {0 _2 ]10.0.1.*# f9 D @( O& D( R7 `& m
10.0.2.*& v+ S4 |: Y# F, j" Q" p( d
10.0.3.*( N. g! d( g! K" X$ A+ f
这四个子网
- E8 x1 Q5 \4 X
. _. u1 L4 |# Q" P2)
9 {$ H5 a9 l. F对某个子网应用ACL
7 }! ^! U' N# t r' ~& K D7 T还是举例说明,以C类网络192..168.1.0/24为例进行子网划分。1 E2 d3 f6 q" i! \* K7 q
我们引入地址块的思想进行解释会好理解一些。因为子网一般都是以地址块形式存在的。* V& o4 M/ d' U
?地址块为128,192.168.1.128 0.0.0.127/ H- y9 J3 i5 w4 ?
?地址块为64,192.168.1.0 0.0.0.63
$ \. K2 n6 c: K; {9 Z+ P- I?地址块为32,192.168.1.0 0.0.0.31
; [- r3 Q! I; C" V' D?地址块为16,192.168.1.0 0.0.0.15
4 o* {. M* _# c. [# l" s; e+ h?地址块为8,192.168.1.0 0.0.0.7 p, C/ G2 R) o5 g
?地址块为4,192.168.1.0 0.0.0.32 P& }8 _0 ?* l6 B5 Q1 U
?地址块为2,192.168.1.0 0.0.0.10 H6 \( \ C; j6 _
2 ~4 l# u1 }2 Q0 `6 C3)对特定主机应用ACL
6 g* m `: @! O通配符需要全匹配,例如:182.168.12.4 0.0.0.0/ v9 d! G- L$ i
还有一种表示方法:host 182.168.12.4' }# |, |3 g2 r
Host在这里是关键字,用来代替0.0.0.0 ,用于源地址和目的地址字段。
5 c F4 m" m' J& K) Y
2 H) q& W$ x/ G4)对任意主机或者网络应用ACL3 y6 K1 }. C0 j8 U2 u. o+ P# T( r3 P( {
这是任意匹配的情况,主机任意,通配符任意匹配:0.0.0.0 255.255.255.255,同时这里也有简写——any
! Q. D) T, }0 {7 `
, ?+ z+ A4 |/ z5)比较特殊的情况。
6 t( T5 \* H6 {0 ~ E J用我的话说这种情况是不按规则出牌的情况,也是比较有趣的。
+ _5 Y8 j, e2 j2 K7 K4 v我不想让某个子网或者是某个有类网被通配符屏蔽,我仅仅是想让部分主机被屏蔽,不过这部分主机也应该是有规律的,要不管理人员肯定得折腾疯。哈哈。
- Y9 z4 q$ J9 j2 j) \, G, R仅举两例以供说明:
8 w6 S; f9 Y; G/ s! J?随便写一个,计算出屏蔽了哪些网络。
9 |1 W ]( s9 e- Z" s随便写一个 192.168.1.23 0.0.0.5
! |3 _4 u* [* M) E; k怎么?傻眼了?这就是不按规则出牌的情况,CCNA自学指南里面肯定说了,不能从11.0或者12.0等网络开始,非得是2的次幂才行。对此规矩我们不予理睬,还是使用最为原始的办法进行一个一个匹配。8 a. [ [* n ? }. A: x% j
写成二进制形式:11000000.10101000.00000001.00010111
; Z6 G/ j9 i0 \2 T9 }
; n, h; E' G+ k9 k00000000.00000000.00000000.000001012 F% ~# S/ b2 b ^+ g
接下来就是匹配计算了。前三个字节毫无疑问,严格匹配。最后一个字节逢0匹配,逢1任意。7 C2 [$ T' J0 A/ L9 E; d
00010111
7 `* h5 o7 s2 k% k `- t4 S" T" Y % q' \ b1 N7 h4 G
00000101
1 G0 ]3 [- E$ }+ M: x+ V 00010*1*
; N' K2 `, j7 k 如上的公式,我们看到有星号的位置是可以任意匹配的,这样我们就可以算出:
# w% l6 ~6 q( W0 g' l% v①00010010——184 V3 U6 U6 d7 Y# ]/ J8 |! n
/ s- v- r$ K, B3 h4 ^$ g②00010011——199 j' f% B1 K5 s
% n2 c$ |( T- D2 _' V7 H6 |
③00010110——21; }! Z, V) U1 d W$ r: W+ S
. n9 V( j9 B% a④00010111——23 N. i* n) u% t& M) q# Q4 c
' C+ D: \1 H" ]& l* B5 B这样就很明显了,得到的结果就是192.168.1.18
* F6 U( L8 [, j; I8 x" f; O+ c192.68.1.19
; ?( m; A' e3 T, o# t; u" G3 C% J2 E192.168.1.21- u2 r7 A$ W9 h# U( A9 R
192.168.1.23 都被0.0.0.5这个通配符掩码给屏蔽了。8 A/ x/ e. q& c: c& Z
怎样,这个不按规则出牌的通配符掩码是不是也愚弄了你一次?/ X- l0 P# K) J0 C p* i" P K# v
* V( c8 P" V. g8 a9 v, r8 h+ m ; ]/ Q! ^# Z) _5 U1 H; G- W# {: H
备注:只要严格按照0——严格匹配,1——任意配置的原则不管什么反掩码都是纸老虎。
. J/ P& @& O) ]% I' b
) Q0 {+ N9 q% L% g?写第二个,我需要匹配一个网络里面奇数IP的主机或者偶数IP的主机(或者的路由过滤中需要奇数网络)
+ N; R( J3 i" q& P还是看例子:7 Q3 [- Z/ s/ k& C0 L. V9 y8 t, p5 b
192.168.1.1
4 X$ x. t6 n" \- g5 R; O" r192.168.1.2! O! \ k+ X: x+ m9 H
192.168.1.3* M0 M: w+ v) ^" T: {% ?
192.168.1.4
+ i( F5 A4 }. _6 B192.168.1.5# ]- D2 M% V; f
192168.1.6+ _9 W! D& }+ W1 D9 T) F
192.168.1.7
) V8 {) [; n# Y; E& a* F: V# P2 K192.168.1.9
, x. o1 i# |' u6 S- G& r……………9 ?" h8 B# l- X* ]
192.168.1.254; g: @, I4 E* l5 Z
- K. O) X( _: }9 |: z思路都是一样的,条条道路通罗马,这里条条道路通配符% ^/ |! o) J$ W/ T
我还是要写成二进制形式
3 z# t+ a9 @: t8 y( s& j4 o, h前面的三个字节就省略了,只写后面的一个字节的:
; S$ S+ i- f4 U' ?" C00000001
* G; K: J" |2 O2 ]8 i000000101 I s, p3 f2 g) U/ O3 v" J3 J
000000114 J6 u @9 N. h6 d8 W( I4 M
000001007 l6 Z9 Y# o- E8 l1 v7 F5 }
000001012 q$ f2 j4 [- e& W' O' ]5 T" G) V8 I
000001108 f7 T) Z b: V/ w: R1 c
00000111
9 A$ X2 Z1 T# A; O* h# z/ o; A3 y…………3 y7 G# `; J2 w
看出规律了么? 什么?没有啊,仔细瞧瞧么!奇数IP的最后一位都是1,而偶数IP的最后一位都是0。这就是规律啊。
5 |% I# {; @- S# [* B6 R# Q0 b那么怎么写呢?这个就比较简单了吧,奇数IP的:192.168.1.1 0.0.0.254 ;偶数IP的呢——192.168.1.2 0.0.0.254 & ^* F1 p9 c3 r/ j, P" @( f
k1 Z$ K1 q z4 |; J0 E如上就是我对ACL的理解,有说错的,做错的,还望大家指正,所谓三人行必有我师,你有什么更好的办法别忘记跟帖。
' w% e$ e1 z7 G- x. Z% B$ y7 T ( Q1 H+ s1 b1 N7 m
1 G: B2 G2 h. _- b4 o4 e$ vACL主要难点是在通配符的计算,如有这么一道题:
1 \7 I" p- f6 p# O% O) l) b3 q已知子网,求通配符掩码。! j0 z* w3 ?; i2 f% @( `- W/ F: {
例:允许199.172.5.0/24
( y4 A( v' K" J% J5 |9 B' A# J199.172.10.0/24' v$ J- k4 P: M3 f/ D8 W5 V
199.172.13.0/24
6 Z+ ]; u1 e' O/ T) \% p5 X, F199.172.14.0/24网段访问路由器。要求写出ACL来,但只能用两条ACL代替。
) u6 _0 y- j( t' \' h* X2 C: U# Y
+ d6 m! z' t! H" X9 w1.
- q. E& B8 C; H先将这四个数换成二进制:
4 x; `3 C1 M" q6 j) M# C5.0
* K+ R7 W' x/ H* ^+ |-------0 ~) r* _6 D- e$ s4 L) Z
0 1 0 1
h1 v) v- X! k" Q10.0
0 ^0 H8 Y1 C; L6 k1 I-----
( G6 n3 Y( X1 a9 N/ U' Y9 s1 0 1 0
* B1 a. E# a# b1 L13.0
x: ~8 X! @) D1 q-----
% g- B5 K8 x0 ]- K1 1 0 16 z; x; Z: Z5 }- F
14.0
. A9 ?+ s& U1 Y$ G' k1 k-----
, ^# q$ x0 t' C' ?' s- g1 1 1 0
- @$ d8 U4 E) D/ A4 e7 s观察可以看到5.0和13.07 p) ^4 a$ r2 p* A5 ]/ {
10.0和14.0有共同点。
5 }6 f5 ~* _ M4 k5 ^3 _- X( x2.0 B2 r8 [/ ?3 V1 e
将不相同的部分用Z表示# l$ c2 P' O( C
5.0和13.0
2 x; g. ^* l4 J1 O----------
/ G+ Q: d) f+ ^: p4 RZ 1 0 1
6 B2 k4 j6 k( R+ j9 B( N10.0和14.0
/ o' ?9 C1 q9 z( Q/ N4 N--------7 M7 ^3 Y3 O8 \% G9 R8 }! i, p' H
1 Z 1 07 }7 }5 E, R2 e; b) u2 ~
3.. N7 y1 s6 Z0 ?% s
将Z换成1,数字换成0。可以得出:) O B0 m+ ?9 ]& R) E
5.0和13.0# x, j" f# ]( x0 h! |9 J# a0 u
----------
) m2 V6 R5 D" K1 z, v5 m4 a9 OZ 1 0 1) x5 a: L, H. }
------------ 1 0 0 0+ d4 N) `7 F# X' t) I
10.0和14.0% ?6 x4 U6 R$ o) ]
--------! E" R+ M4 }4 N- }! X& m' H
1 Z 1 0
6 W1 i. _8 M, q. X------------ 0 1 0 02 F- c1 g; [1 N
4.
" ?4 `4 r' \) X4 C I. h最后将二进制换成十进制:- C, ~2 w) |+ Q
5.0和13.0
4 c9 B: }* C) _/ P, R----------5 D! H; C$ K$ L9 V4 C
Z 1 0 1, N& B' N2 a7 @
------------ 1 0 0 0! p( W) h8 [6 c" F
-------- 8 C; R) D5 u, [0 V4 s
10.0和14.0
- A& h1 J9 T( K# u* \--------
a4 ]* j+ c" i% ], a& x) Z1 Z 1 09 x l4 X' ^/ w% o. H; E
------------ 0 1 0 0 o0 _8 Q) q/ D0 O( f
-------- 4
7 X& x3 A8 [& n7 l X2 d 0 k) g/ H+ m3 Q$ D `5 C
r8 t3 u* |) q |9 _7 T3 ^
最后得出:# ]& f3 R' K0 w8 u* I
access-list 10 permit 199.172.5.0 0.0.8.0
! J0 P4 A/ I: m, h& Kaccess-list 11 permit 199.172.10.0 0.0.4.0 |
|