本文歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處和作者。
ACL即(Access Control List,即訪問控制列表),其實,就是可以控制IP源、目的IP地址,端口號,因此可以在路由可達的情況下,相當于設置例外(無論是白名單還是黑名單),從而做到控制訪問的目的。
1、網(wǎng)絡拓撲
實驗拓撲如下:
2、預配置
喜歡使用哪種動態(tài)路由協(xié)議配通,都可以,無論你跑eigrp,還是ospf都可以,首先,需要參照以往的教程,配通路由,使得PC0、PC1、PC2之間已經(jīng)可以ping通R2的loopback地址2.2.2.2,這里我使用OSPF進行配置。
R1:
en
conf t
host R1
int lo 0
ip add 1.1.1.1 255.255.255.0
int fa0/0
ip add 10.1.1.1 255.255.255.0
no shut
int fa1/0
ip add 172.16.1.1 255.255.255.0
no shut
int se2/0
ip add 192.168.12.1 255.255.255.0
clock rate 64000
no shut
router ospf 1
network 1.1.1.0 0.0.0.255 area 0
network 10.1.1.0 0.0.0.255 area 0
network 172.16.1.0 0.0.0.255 area 0
network 192.168.12.0 0.0.0.255 area 0
R2:
en
conf t
host R2
int lo 0
ip add 2.2.2.2 255.255.255.0
int se2/0
ip add 192.168.12.2 255.255.255.0
no shut
int se3/0
ip add 192.168.23.2 255.255.255.0
clock rate 64000
no shut
router ospf 1
network 2.2.2.0 0.0.0.255 area 0
network 192.168.12.0 0.0.0.255 area 0
network 192.168.23.0 0.0.0.255 area 0
R3:
en
conf t
host R3
int lo 0
ip add 3.3.3.3 255.255.255.0
int se2/0
ip add 192.168.23.3 255.255.255.0
no shut
int fa0/0
ip add 172.16.3.1 255.255.255.0
no shut
router ospf 1
network 3.3.3.0 0.0.0.255 area 0
network 172.16.3.0 0.0.0.255 area 0
network 192.168.23.0 0.0.0.255 area 0
1、標準ACL
1.1配置命令
計劃通過配置ACL,放通PC0、PC2可以ping通R2,而禁止PC1 ping R2。
此時,只需要在R2上面用標準ACL設置即可。
R2進入conf t
access-list 1 deny 172.16.1.0 0.0.0.255
access-list 1 permit any
int s2/0
ip access-group 1 in
//在接口下入站方向應用編號為1的ACL
int s3/0
ip access-group 1 in
//在接口下入站方向應用ACL1為1的ACL
而PC0與PC2還是可以ping通R2的。
1.2原理講解
標準ACL的編號為1~100,擴展ACL為101開始。
標準ACL只能限制源地址,而上述例子,因為主要要禁用PC1的網(wǎng)段訪問R2,所以其實針對源地址設置即可,所以可以用標準ACL即可。
每個access-list 1后面的1就是ACL的編號,后面跟permit與deny,分別是允許,還是拒絕訪問的意思。
每條ACL其實后面隱含著deny any的句子,因此如果最后不再輸入access-list 1 permit any,那么其實就全部都會匹配到最后隱藏的deny any,會導致其他都無法訪問2.2.2.2。
單個ACL里面的條目,是從上往下的優(yōu)先級匹配的,因此當一個網(wǎng)段匹配到permit的策略后,就不會繼續(xù)往下匹配了。
2、擴展ACL
2.1配置命令
如上所述,標準ACL只能針對源地址進行放通與拒絕,那么如果想要針對端口號,或者目的地址進行禁止,怎么辦呢?這就要用到擴展ACL了。
我們將PC2換成1臺server,然后開啟HTTP服務,PC0與PC1都用瀏覽器訪問PC2的IP地址172.16.3.2嘗試打開。
然后我們再做ACL限制PC1訪問PC2的WWW服務器。
(注意只限制WWW服務器,不限制PC1 ping PC2)
因此,需要設置目的地址與控制端口,所以要用擴展ACL。
下屬實驗前,請先在R2上no 掉剛才的ACL配置。
no ip access-list standard 1
int s2/0
no ip access-group 1 in
int s3/0
no ip access-group 1 in
R3進入conf t
ip access-list extend 101
deny tcp host 172.16.1.2 host 172.16.3.2 eq 80
permit ip any any
其中,host ip地址,意思為單個主機IP,如果是要限制一個網(wǎng)段,需要ip地址段 + 反掩碼,如172.16.1.0 0.0.0.255,前面的是源IP地址,后面的是目的IP地址,eq后面加端口號,如www服務,即http協(xié)議,走的80端口。如要封telnet服務,那么就可以輸入23。
R3上面在s2/0端口,掛載ACL
int s2/0
ip access-group 101 in
然后進行測試,PC1訪問172.16.3.2的www服務不行,ping可達。
PC0可以訪問172.16.3.2的www服務。