通路控制清單(Access Control List,ACL) 是路由器和交換機接口的指令清單,用來控制端口進出的資料包。ACL适用于所有的被路由協定,如IP、IPX、AppleTalk等。這張表中包含了比對關系、條件和查詢語句,表隻是一個架構結構,其目的是為了對某種通路進行控制。
ACL的作用:
ACL可以限制網絡流量、提高網絡性能。例如,ACL可以根據資料包的協定,指定資料包的優先級。
ACL提供對通信流量的控制手段。例如,ACL可以限定或簡化路由更新資訊的長度,進而限制通過路由器某一網段的通信流量。
ACL是提供網絡安全通路的基本手段。ACL允許主機A通路人力資源網絡,而拒絕主機B通路。
ACL可以在路由器端口處決定哪種類型的通信流量被轉發或被阻塞。例如,使用者可以允許E-mail通信流量被路由,拒絕所有的Telnet通信流量。
例如:某部門要求隻能使用 WWW 這個功能,就可以通過ACL實作; 又例如,為了某部門的保密性,不允許其通路外網,也不允許外網通路它,就可以通過ACL實作。
ACL具體的執行流程
資料包隻有在跟第一個判斷條件不比對時,它才被交給ACL中的下一個條件判斷語句進行比較。如果比對(假設為允許發送),則不管是第一條還是最後一條語句,資料都會立即發送到目的接口。如果所有的ACL判斷語句都檢測完畢,仍沒有比對的語句出口,則該資料包将視為被拒絕而被丢棄。
這裡要注意,ACL不能對本路由器産生的資料包進行控制。
ACL的執行過程:
一個端口執行哪條ACL,這需要按照清單中的條件語句執行順序來判斷。如果一個資料包的報頭跟表中某個條件判斷語句相比對,那麼後面的語句就将被忽略,不再進行檢查。
資料包隻有在跟第一個判斷條件不比對時,它才被交給ACL中的下一個條件判斷語句進行比較。如果比對(假設為允許發送),則不管是第一條還是最後一條語句,資料都會立即發送到目的接口。如果所有的ACL判斷語句都檢測完畢,仍沒有比對的語句出口,則該資料包将視為被拒絕而被丢棄。這裡要注意,ACL不能對本路由器産生的資料包進行控制。
ACL的分類:
目前有兩種主要的ACL:标準ACL和擴充ACL、通過命名、通過時間。
标準的ACL使用 1 ~ 99 以及1300~1999之間的數字作為表号 擴充的ACL使用 100 ~ 199以及2000~2699之間的數字作為表号
标準ACL可以阻止來自某一網絡的所有通信流量,或者允許來自某一特定網絡的所有通信流量,或者拒絕某一協定簇(比如IP)的所有通信流量。
擴充ACL比标準ACL提供了更廣泛的控制範圍。例如,網絡管理者如果希望做到“允許外來的Web通信流量通過,拒絕外來的FTP和Telnet等通信流量”,那麼,他可以使用擴充ACL來達到目的,标準ACL不能控制這麼精确。
在标準與擴充通路控制清單中均要使用表号,而在命名通路控制清單中使用一個字母或數字組合的字元串來代替前面所使用的數字。使用命名通路控制清單可以用來删除某一條特定的控制條目,這樣可以讓我們在使用過程中友善地進行修改。 在使用命名通路控制清單時,要求路由器的IOS在11.2以上的版本,并且不能以同一名字命名多個ACL,不同類型的ACL也不能使用相同的名字。
随着網絡的發展和使用者要求的變化,從IOS 12.0開始,思科(CISCO)路由器新增加了一種基于時間的通路清單。通過它,可以根據一天中的不同時間,或者根據一星期中的不同日期,或二者相結合來控制網絡資料包的轉發。這種基于時間的通路清單,就是在原來的标準通路清單和擴充通路清單中,加入有效的時間範圍來更合理有效地控制網絡。首先定義一個時間範圍,然後在原來的各種通路清單的基礎上應用它。
基于時間通路清單的設計中,用time-range 指令來指定時間範圍的名稱,然後用absolute指令,或者一個或多個periodic指令來具體定義時間範圍。
正确放置ACL:
ACL通過過濾資料包并且丢棄不希望抵達目的地的資料包來控制通信流量。然而,網絡能否有效地減少不必要的通信流量,這還要取決于網絡管理者把ACL放置在哪個地方。
假設在的一個運作TCP/IP協定的網絡環境中,網絡隻想拒絕從RouterA的T0接口連接配接的網絡到RouterD的E1接口連接配接的網絡的通路,即禁止從網絡1到網絡2的通路。
根據減少不必要通信流量的通行準則,網管員應該盡可能地把ACL放置在靠近被拒絕的通信流量的來源處,即RouterA上。如果網管員使用标準ACL來進行網絡流量限制,因為标準ACL隻能檢查源IP位址,是以實際執行情況為:凡是檢查到源IP位址和網絡1比對的資料包将會被丢掉,即網絡1到網絡2、網絡3和網絡4的通路都将被禁止。由此可見,這個ACL控制方法不能達到網管員的目的。同理,将ACL放在RouterB和RouterC上也存在同樣的問題。隻有将ACL放在連接配接目标網絡的RouterD上(E0接口),網絡才能準确實作網管員的目标。由此可以得出一個結論: 标準ACL要盡量靠近目的端。
網管員如果使用擴充ACL來進行上述控制,則完全可以把ACL放在RouterA上,因為擴充ACL能控制源位址(網絡1),也能控制目的位址(網絡2),這樣從網絡1到網絡2通路的資料包在RouterA上就被丢棄,不會傳到RouterB、RouterC和RouterD上,進而減少不必要的網絡流量。是以,我們可以得出另一個結論:擴充ACL要盡量靠近源端。
本文轉自 meiyanaa 51CTO部落格,原文連結:http://blog.51cto.com/justim/225782,如需轉載請自行聯系原作者