在設定好了vlan間的routing後,
各vlan間算是已完全分離,彼此網段不再互相干擾。
但如果我們想更進一步,讓vlan 2與3完全區隔,不能夠互相連通,
只留下必要的vlan 1能與vlan 2, 3進行溝通,
那我們可以在負責routing的L3 Switch上設定vlan的Access Control List。
Cisco的Access Control List (ACL)有兩種型式-Standard / Extented,
及Numbered / Named的兩種模式。
Standard ACL 只能使用1∼99與1300∼1999間的號碼;
且只能指定source IP,無法指定destination IP,設定時需思考方向性的對應以滿足合需求。
Extented ACL 只能使用100∼199與2000∼2699間的號碼;
可指定source與destination IP,且能對應IP,Port,Protocol來分別處理。
在Cisco的ACL中,每一個介面(vlan),每一個方向(in / out)只能對應一條ACL。
若設定了多條ACL,則最新的ACL將會取代舊的ACL。
而這 in / out 的方向性,則是從 routing 物件的角度來看。
以下我們就以 Standard ACL 來示範如何設定vlan 2拒絕vlan 3的連入。
Standard ACL指令如下
access-list NO. permit/deny source-IP wildcard-mask
Vlan 2要拒絕vlan 3 172.29.22.0/23網段的連入,
就 in 的方向而言,source為172.29.20.0/23,而destination為172.29.22.0/23;
就 out 的方向而言,source為172.29.22.0/23,而destination為172.29.20.0/23。
而standard ACL僅能指定source IP,所以只有 out 方向的規則適合需求。
設定指令如下
(config)# access-list 2 deny 172.29.22.0 0.0.1.255
(config)# access-list 2 permit 0.0.0.0 255.255.255.255
(config)# interface vlan 2
(config-if)# ip access-group 2 out
設定時要注意,ACL跟一般防火牆規則一樣,採逐條比對方式,最後不符的全部擋掉,
所以設定時,除了deny vlan 3 172.29.22.0/23網段的連入外,
還要加上一條其餘放行 permit any 的規則,
否則不僅vlan 3 172.29.22.0/23網段擋掉了,其它網段也無法通行。
另外,ACL的網段採wildcard mask,與一般的子網路遮罩不同,
順子不知道要怎麼解釋,但它剛好就是與一般子網路遮罩相反。
例如,子網路遮罩255.255.255.255,wildcard mask就會是0.0.0.0;
子網路遮罩255.255.255.0,wildcard mask就會是0.0.0.255.
而本例中的172.29.20.0/23網段,其wildcard mask會是0.0.1.255。
設定完後,分別在vlan 2與vlan 3互ping對方,
會有如下結果。
vlan 2 ping vlan 3
Request timed out.
vlan 3 ping vlan 2
Reply from 172.29.22.254: Destination host unreachable.
之所以會有這樣的結果差異,在於vlan 2是可以連到vlan 3的,
但vlan 3無法回傳,所以出現Request timed out.目的地主機沒有回應。
而vlan 3因ACL規則阻擋,所以到不了vlan 2,
因此出現Reply from 172.29.22.254: Destination host unreachable.目的地主機無法到達。
兩者意義不同,回應的訊息自然也不同。
接下來我們再以 Extented ACL 來示範如何設定vlan 3拒絕vlan 2的連入。
Extented ACL指令如下
access-list NO. permit/deny ipx/ip/icmp/tcp/udp source-IP wildcard-mask destination-IP wildcard-mask {eq portocol}
套用在本例vlan 3拒絕vlan 2的連入,out 方向指令為
(config)# access-list 103 deny ip 172.29.20.0 0.0.1.255 172.29.22.0 0.0.1.255
(config)# access-list 103 permit ip 0.0.0.0 255.255.255.255 172.29.22.0 0.0.1.255
(config)# interface vlan 3
(config-if)# ip access-group 103 out
若以 in 方向來設計,讓vlan 3拒絕vlan 2的連入,則需下在vlan 2介面上,其指令為
(config)# access-list 102 deny ip 172.29.20.0 0.0.1.255 172.29.22.0 0.0.1.255
(config)# access-list 102 permit ip 172.29.20.0 0.0.1.255 0.0.0.0 255.255.255.255
(config)# interface vlan 2
(config-if)# ip access-group 102 in
雖然透過Extented ACL在 in / out 兩個方向都可成功達成目的,
但在 in 是 vlan 2 在進入 routing 物件時,就被拒絕;
而 out 則是進入 routing 物件後,再轉到到 vlan 3 時,才被拒絕,
因此 in 方向的過濾效率會比 out 方向還高。
PS.
所有網段主機在子網路遮罩的表示方式為 0.0.0.0 0.0.0.0;
以wildcard mask表示方式為0.0.0.0 255.255.255.255。
在ACL中,也可以用 any 來表示。
例如 access-list 2 permit 0.0.0.0 255.255.255.255,就可用 access-list 2 permit any 來設定。
♥順子老婆的網拍,請多關照∼
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|