• 沒有找到結果。

存取控制清單

在文檔中 路由器操作實務與CCNA認證 (頁 56-68)

第二章 路由器相關理論

2.5 存取控制清單

存取控制清單(Access Control List, ACL)是使用在路由器介面 的指令清單用來告訴路由器哪些種類的封包可以接受,哪些種類的封

換(IPX)都可以建立 ACL 來過濾經過路由器的封包,以控制網路或子 定定義一個 ACL。舉例來說,如果路由器介面上有 IP、AppleTalk、

與 IPX 三種可被繞送協定,為其中一種所定的 ACL 無法使用在另外兩

暗示要採用 deny any 的敘述,這表示雖然在 ACL 的最後一行沒有 寫明 deny any,但是路由器會把它補上去。其流程如圖 2-21 所示。

圖 2-21 ACL 敘述控制流程

雖然每個協定都有自己要過濾流量時所需的一套特定的工作規 則,但一般而言,多數的協定都需要兩個基本的步驟。第一個步驟 是定義 ACL 條件敘述,第二個步驟則是將 ACL 放置於要執行的介面 上。實際上,ACL 指令可以是很長的字元字串。建立 ACL 包含下列 幾項的關鍵工作:

(1)在全域組態模式下建立 ACL 條件敘述。

要小心地選擇檢查條件且要有邏輯地排列條件敘述 ACL:先指 出被允許的條件,而拒絕其他所有的條件;或者先指出被拒絕的項

目,而允許其他所有的情況;在實用上會有很大的不同結果。撇開 ACL 正確性的問題不談,假設先講拒絕敘述或先寫允許敘述都是正 確的,但是處理 ACL 的先後順序會影響到路由器的延遲時間,應該 把最有可能發生的情況放在最前面,而把最不常遇到的條件敘述放 在最後面,尤其在敘述的前後次序攸關整個 ACL 的正確與否,更是 不可不慎! 除了正確性之外,一般常飯的毛病是在前面的敘述當中 已經包含在內的條件,又寫成後面敘述的條件,造成後面的這個敘 述永遠不可能被執行,是多餘的敘述。

(2)為每一組 ACL 敘述指定一個唯一的號碼。

ACL 號碼為數字 1 到 99 時,代表 IP 協定的標準式 ACL 敘述;ACL 數 字為數字 100 到 199 時,代表 IP 協定的延伸式 ACL 敘述。對於各種 類型,請參考表 2-1。

種類 號碼 標準式 IP 1-99 延伸式 IP 100-199 Apple Talk 600-699

標準式 IPX 800-899 延伸式 IPX 900-999 IPX 廣告服務協定(SAP) 1000-1099

表 2-1 ACL 種類與號碼對應表

端機連線的方式貼入到路由器的組態當中。

圖 2-22 ACL 步驟與指令語法 萬用遮罩

在還沒開始寫 ACL 敘述之前,有必要先介紹萬用遮罩(Wildcard Mask),因為在寫 ACL 敘述句的時候需要使用到它。這個詞是 ACL 遮 罩位元比對程序的暱稱,觀念來自於類似撲克牌遊戲中可與任何牌 比對的丑角牌。是 ACL 位元敘述中用來比對 IP 位元,以決定單一 IP 位址適用於該行允許或拒絕的流量控制指令。萬用字元和子網路 遮罩有異曲同工之妙,它們都是定義網段的大小範圍,不過,它們 的運作方式差異很大。

每個位元組含有 8 個位元。在子網路遮罩中的位元值 1 與 0 決定相 對應 IP 位址的網路、子網路與主機的部分。和子網路遮罩一樣,萬 用遮罩與 IP 位址也是成對使用的,而萬用遮罩中的位元值 1 和 0 是 用來決定如何處理相對應的 IP 位址位元。其中,位元 0 表示”要檢 查相對應的位元值”,而 1 代表”不要檢查(忽略)相對應的位元 值”。以圖 2-23 為範例來說明:

圖 2-23 萬用遮罩範例

利用十進位來表示二進位的萬用遮罩位元是件麻煩的事。對於 最常用到的萬用遮罩,可以使用縮寫來代替。這些縮寫能減少設定 位址檢查條件時的輸入工作。舉例來說,比如想要指定任何目的地 位址,在 ACL 敘述中都將被允許,則為了要表示是任何 IP 位址,

我們用 0.0.0.0 代表(就像是預設網路位址一樣);接著,為了要表

的萬用遮罩位元全都要為 1,也就是十進位的 255.255.255.255。我 們 可 以 在 ACL 敘 述 中 使 用 ”any” 這 個 字 來 代 替 ”0.0.0.0 255.255.255.255”,不但少寫很多字,看起來也比較清楚。

舉例來說,

Router(config)# access-list 1 permit 0.0.0.0 255.255.255.255

可以使用下面指令代替:

Router(config)# access-list 1 permit any

第二種在萬用遮罩中使用縮寫常見的情況,是當要比對整個 IP 位址的每個位元時,可以用”host”這個關鍵字來代替萬用遮 罩”0.0.0.0”。舉例來說,想要在 ACL 敘述中要拒絕某特定 IP 主 機位址 140.134.100.200 時,下列兩種寫法效果是一樣的:

Router(config)#access-list 1 deny 140.134.100.200 0.0.0.0

Router(config)#access-list 1 deny host 140.134.100.200 標準式 ACL

標準式 ACL 會檢查可被繞送封包的來源位址,使用標準 ACL 可 以檔掉或允許來自某些網路的所有流量。舉例來說,標準 ACL,會 對於進入 Ethernet 0 的封包進行來源位址與協定的檢查。如果封

包被允許,就會被轉送出去;如果被拒絕,封包就會被丟棄。因為 是使用來源位址來檢查,所以標準是 ACL 必須盡量放置在靠近目的 端的路由器上。

如同之前所提過的,access-list 這個指令用於全域組態模 式,只要選用號碼為 1 到 99 之間,就可以定義標準式的 ACL。指令 的完整語法為:

access-list 號碼 {deny|permit}來源位址 萬用遮罩 [log]

其中,最後面的 log 是選用參數,可以不寫。如果寫了,系統

只能有一個 ACL。意思是說,在某個介面上(比方說是 Ethernet 0),

流向某個方向(比方是由內向外)最多可以放置一個 ACL。完整的指 令格式為:

ip access-group 號碼 {in|out}

如果要從介面中移除 ACL,指令的語法如下:

no ip access-group 編號 {in|out}

延伸式 ACL

延伸式 ACL 是較進階的控制形式,利用較具彈性的方式控制封 包。延伸式 ACL 可以根據封包的來源或目的地位址以及流量類型(例 如 FTP、Telnet、HTTP 等)來過濾封包,允許或拒絕通行,因此延 伸式 ACL 可以放在接近來源的路由器上,可以有助於減少網路的流

TCP/IP 服務埠編號 0~255 是眾所皆知的(well-known)服務埠編 號:256~1023 保留給企業註冊的服務使用,1024~65535 可以任意使 用。

表 2-2 常見的保留埠編號表

根據延伸式 ACL 的檢查條件,被允許的封包將繼續傳遞下去,

被拒絕的封包會被丟棄。如果 ACL 的執行結果是拒絕通行的話,那 麼路由器的 ACL 就像提供了防火牆,控制介面上的交通狀況。當封 包被丟棄之後,有些協定會回傳一個訊息給封包發送者,告知目的 地無法到達。

延伸式 ACL 使用 100 到 199 之間的數字作為控制敘述的號碼,

其完整的格式為:

access-list 號碼{permit|deny} 協定種類 來源位址 來源遮 罩目的地位址 目的地遮罩 邏輯運算子 服務埠編號

指令參數 說明

號碼 100 到 199 之間的數字,用來識別 ACL 敘 述

permit | deny 允許或阻擋流通

協定種類 如 IP、TCP、UDP、ICMP、IGRP、OSPF...

來源位址 封包發源地

來源遮罩 配合來源位址的萬用遮罩,決定其範圍 目的地位址 允許或阻擋的標的網路或標的主機位址 目的地遮罩 配合目的地位址的萬用遮罩,決定其範圍 邏輯運算子 大於(gt)、等於(eq)、小於(lt)、不等於

(neq)

在文檔中 路由器操作實務與CCNA認證 (頁 56-68)

相關文件