01-ACL配置
本章節下載: 01-ACL配置 (274.62 KB)
目 錄
本文將用於IPv4和IPv6的ACL分別簡稱為IPv4 ACL和IPv6 ACL。若非特別指明,本文所指的ACL均包括IPv4 ACL和IPv6 ACL。
ACL(Access Control List,訪問控製列表)是用來實現流識別功能的。網絡設備為了過濾報文,需要配置一係列的匹配條件對報文進行分類,這些條件可以是報文的源地址、目的地址、端口號等。
當設備的端口接收到報文後,即根據當前端口上應用的ACL規則對報文的字段進行分析,在識別出特定的報文之後,根據預先設定的策略允許或禁止該報文通過。
由ACL定義的報文匹配規則,可以被其它需要對流量進行區分的場合引用,如包過濾、QoS中流分類規則的定義等。
根據功能以及規則製訂依據的不同,可以將ACL分為五種類型,如表1-1所示。
表1-1 ACL的分類
ACL類型 |
編號範圍 |
適用的IP版本 |
規則製訂依據 |
WLAN ACL |
100~199 |
IPv4&IPv6 |
根據無線客戶端的SSID製定匹配規則 |
WLAN-AP ACL |
200~299 |
IPv4和IPv6 |
WLAN AP(Access Point,接入點)的MAC地址和序列號 |
基本ACL |
2000~2999 |
IPv4 |
隻根據報文的源IP地址信息製定匹配規則 |
IPv6 |
隻根據報文的源IPv6地址信息製定匹配規則 |
||
高級ACL |
3000~3999 |
IPv4 |
根據報文的源IP地址信息、目的IP地址信息、IP承載的協議類型、協議的特性等三、四層信息製定匹配規則 |
IPv6 |
根據報文的源IPv6地址信息、目的IPv6地址信息、IPv6承載的協議類型、協議的特性等三、四層信息製定匹配規則 |
||
二層ACL |
4000~4999 |
IPv4&IPv6 |
根據報文的源MAC地址、目的MAC地址、802.1p優先級、二層協議類型等二層信息製定匹配規則 |
用戶在創建ACL時必須為其指定編號,係統將根據用戶所指定的編號來創建不同類型的ACL。
通常名稱比編號更易於記憶和識別,因此用戶在創建ACL時,還可以選擇是否為其指定名稱,而且隻能在創建ACL時為其指定名稱。ACL一旦創建,便不允許對其名稱進行修改或刪除。
當ACL創建完成後,用戶可以通過指定編號或名稱的方式來指定該ACL,以便對其進行操作。
· 不允許為WLAN ACL和WLAN-AP ACL 指定名稱。
· WLAN ACL的編號、二層ACL的編號和名稱全局唯一;IPv4基本和高級ACL的編號和名稱隻在IPv4中唯一;IPv6基本和高級ACL的編號和名稱也隻在IPv6中唯一。
一個ACL由一條或多條描述報文匹配選項的判斷語句組成,這樣的判斷語句就稱為“規則”。由於每條規則中的報文匹配選項不同,從而使這些規則之間可能存在重複甚至矛盾的地方,因此在將一個報文與ACL的各條規則進行匹配時,就需要有明確的匹配順序來確定規則執行的優先級。ACL的規則匹配順序有以下兩種:
· 配置順序:按照用戶配置規則的先後順序進行匹配,但由於本質上係統是按照規則編號由小到大進行匹配,因此後插入的規則如果編號較小也有可能先被匹配。
· 自動排序:按照“深度優先”原則由深到淺進行匹配,不同類型ACL的“深度優先”排序法則如表1-2所示。
· WLAN ACL的規則隻能按照配置順序進行匹配。
· 當報文與各條規則進行匹配時,一旦匹配上某條規則,就不會再繼續匹配下去,係統將依據該規則對該報文執行相應的操作。
表1-2 各類型ACL的“深度優先”排序法則
ACL類型 |
“深度優先”排序法則 |
IPv4基本ACL |
(1) 先比較源IPv4地址範圍,範圍較小者優先 (2) 如果源IP地址範圍也相同,再比較配置順序,配置在前者優先 |
IPv4高級ACL |
(1) 先比較協議範圍,指定有IPv4承載的協議類型者優先 (2) 如果協議範圍也相同,再比較源IPv4地址範圍,較小者優先 (3) 如果源IPv4地址範圍也相同,再比較目的IPv4地址範圍,較小者優先 (4) 如果目的IPv4地址範圍也相同,再比較四層端口(即TCP/UDP端口)號範圍,較小者優先 (5) 如果四層端口號範圍也相同,再比較配置順序,配置在前者優先 |
IPv6基本ACL |
(1) 先比較源IPv6地址範圍,範圍較小者優先 (2) 如果源IPv6地址範圍相同,再比較配置順序,配置在前者優先 |
IPv6高級ACL |
(1) 先比較協議範圍,指定有IPv6承載的協議類型者優先 (2) 如果協議範圍相同,再比較源IPv6地址範圍,較小者優先 (3) 如果源IPv6地址範圍也相同,再比較目的IPv6地址範圍,較小者優先 (4) 如果目的IPv6地址範圍也相同,再比較四層端口(即TCP/UDP端口)號範圍,較小者優先 (5) 如果四層端口號範圍也相同,再比較配置順序,配置在前者優先 |
二層ACL |
(1) 先比較源MAC地址範圍,較小者優先 (2) 如果源MAC地址範圍相同,再比較目的MAC地址範圍,較小者優先 (3) 如果目的MAC地址範圍也相同,再比較配置順序,配置在前者優先 |
· 比較IPv4地址範圍的大小,就是比較IPv4地址通配符掩碼中“0”位的多少:“0”位越多,範圍越小。通配符掩碼(又稱反向掩碼)以點分十進製表示,並以二進製的“0”表示“匹配”,“1”表示“不關心”,這與子網掩碼恰好相反,譬如子網掩碼255.255.255.0對應的通配符掩碼就是0.0.0.255。此外,通配符掩碼中的“0”或“1”都可以是不連續的,這樣可以更加靈活地進行匹配,譬如0.255.0.255就是一個合法的通配符掩碼。
· 比較IPv6地址範圍的大小,就是比較IPv6地址前綴的長短:前綴越長,範圍越小。
· 比較MAC地址範圍的大小,就是比較MAC地址掩碼中“1”位的多少:“1”位越多,範圍越小。
ACL內的每條規則都有自己的編號,每個規則的編號在一個ACL中都是唯一的。在創建規則時,可以人為地為其指定一個編號,也可以由係統為其自動分配一個編號。
在自動分配編號時,為了方便後續在已有規則之前插入新的規則,係統通常會在相鄰編號之間留下一定的空間,這個空間的大小(即相鄰編號之間的差值)就稱為ACL的步長。譬如,當步長為5時,係統會將編號0、5、10、15……依次分配給新創建的規則。
係統為規則自動分配編號的方式如下:係統按照步長從0開始,自動分配一個大於現有最大編號的最小編號。譬如原有編號為0、5、9、10和12的五條規則,步長為5,此時如果創建一條規則且不指定編號,那麼係統將自動為其分配編號15。
如果改變步長,ACL內原有全部規則的編號都將自動從0開始按新步長重新排列。譬如,某ACL內原有編號為0、5、9、10和15的五條規則;當修改步長為2之後,這些規則的編號將依次變為0、2、4、6和8。
時間段用於描述一個特定的時間範圍。用戶可能有這樣的需求:一些ACL規則隻需在某個或某些特定的時間段內生效(即進行報文過濾),這也稱為基於時間段的ACL過濾。為此,用戶可以先配置一個或多個時間段,然後在ACL規則下引用這些時間段,那麼該規則將隻在指定的時間段內生效。
此外,如果某ACL規則所引用的時間段尚未配置,係統將給出提示信息,並仍允許該規則成功創建,但該規則將不會在其引用的時間段完成配置前生效。
傳統的報文過濾並不處理所有的IPv4報文分片,而隻對首片分片報文進行匹配處理,而對後續分片一律放行。這樣,網絡攻擊者可能構造後續的分片報文進行流量攻擊,就帶來了安全隱患。H3C的設備能夠對IPv4分片報文進行如下處理:
· 對所有的分片報文進行三層(IP層)匹配過濾。
· 對於包含高級信息的IPv4 ACL規則項(譬如TCP/UDP端口號、ICMP類型等),提供標準匹配和精確匹配兩種匹配方式,缺省的匹配方式為標準匹配方式。
ACL作為一種規則,可以應用於諸如路由、安全、QoS等領域,有關ACL在這些領域的具體應用,請參見相關的配置指導。
表1-3 ACL配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置ACL的生效時間段 |
可選 本配置任務適用於IPv4和IPv6 |
||
配置WLAN ACL |
至少選擇一項 |
本配置任務適用於IPv4和IPv6 |
|
配置基本ACL |
本配置任務適用於IPv4和IPv6 |
||
配置高級ACL |
本配置任務適用於IPv4和IPv6 |
||
配置二層ACL |
本配置任務適用於IPv4和IPv6 |
||
複製ACL |
可選 本配置任務適用於IPv4和IPv6 |
時間段可分為以下兩種:
· 周期時間段:該時間段以一周為周期循環生效。
· 絕對時間段:該時間段在指定時間範圍內生效。
表1-4 配置ACL的生效時間段
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建時間段 |
time-range time-range-name { start-time to end-time days [ from time1 date1 ] [ to time2 date2 ] | from time1 date1 [ to time2 date2 ] | to time2 date2 } |
必選 缺省情況下,不存在任何時間段 |
· 使用同一名稱可以配置多條不同的時間段,以達到這樣的效果:各周期時間段之間以及各絕對時間段之間分別取並集之後,再取二者的交集作為最終生效的時間範圍。
· 最多可以創建256個不同名稱的時間段,而同一名稱下最多可以配置32條周期時間段和12條絕對時間段。
WLAN ACL會根據無線客戶端的SSID製定匹配規則,對報文進行相應的分析處理。
表1-5 配置WLAN ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建WLAN ACL,並進入WLAN ACL視圖 |
acl number acl-number |
必選 缺省情況下,不存在任何ACL WLAN ACL的編號範圍為100~199 |
配置ACL的描述信息 |
description text |
可選 缺省情況下,ACL沒有任何描述信息 |
配置規則編號的步長 |
step step-value |
可選 缺省情況下,規則編號的步長為5 |
創建規則 |
rule [ rule-id ] { permit | deny } [ ssid ssid-name ] |
必選 缺省情況下,WLAN ACL內不存在任何規則 重複執行本命令可以創建多條規則 |
配置規則的描述信息 |
rule rule-id comment text |
可選 缺省情況下,規則沒有任何描述信息 |
IPv4基本ACL隻根據報文的源IP地址信息製定匹配規則,對IPv4報文進行相應的分析處理。
表1-6 配置IPv4基本ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv4基本ACL,並進入IPv4基本ACL視圖 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
必選 缺省情況下,不存在任何ACL IPv4基本ACL的編號範圍為2000~2999 |
配置ACL的描述信息 |
description text |
可選 缺省情況下,ACL沒有任何描述信息 |
配置規則編號的步長 |
step step-value |
可選 缺省情況下,規則編號的步長為5 |
創建規則 |
rule [ rule-id ] { deny | permit } [ counting | source { sour-addr sour-wildcard | any } | time-range time-range-name ] * |
必選 缺省情況下,IPv4基本ACL內不存在任何規則 重複執行本命令可以創建多條規則 |
配置規則的描述信息 |
rule rule-id comment text |
可選 缺省情況下,規則沒有任何描述信息 |
如果在創建IPv4基本ACL時為其指定了名稱,則也可以使用acl name acl-name命令通過指定名稱的方式進入其視圖。
IPv6基本ACL隻根據報文的源IPv6地址信息製定匹配規則,對IPv6報文進行相應的分析處理。
表1-7 配置IPv6基本ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6基本ACL,並進入IPv6基本ACL視圖 |
acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ] |
必選 缺省情況下,不存在任何ACL IPv6基本ACL的編號範圍為2000~2999 |
配置ACL的描述信息 |
description text |
可選 缺省情況下,ACL沒有任何描述信息 |
配置規則編號的步長 |
step step-value |
可選 缺省情況下,規則編號的步長為5 |
創建規則 |
rule [ rule-id ] { deny | permit } [ counting | source { ipv6-address prefix-length | ipv6-address/prefix-length | any } | time-range time-range-name ] * |
必選 缺省情況下,IPv6基本ACL內不存在任何規則 重複執行本命令可以創建多條規則 |
配置規則的描述信息 |
rule rule-id comment text |
可選 缺省情況下,規則沒有任何描述信息 |
如果在創建IPv6基本ACL時為其指定了名稱,則也可以使用acl ipv6 name acl6-name命令通過指定名稱的方式進入其視圖。
IPv4高級ACL可以使用報文的源IPv4地址信息、目的IPv4地址信息、IPv4承載的協議類型、協議的特性(例如TCP或UDP的源端口、目的端口,TCP標記,ICMP協議的消息類型、消息碼等)等信息來製定匹配規則。IPv4高級ACL支持對以下三種報文優先級進行分析處理:
· ToS(Type of Service,服務類型)優先級;
· IP優先級;
· DSCP(Differentiated Services Codepoint,差分服務編碼點)優先級。
用戶可以利用IPv4高級ACL定義比IPv4基本ACL更準確、豐富、靈活的匹配規則。
表1-8 配置IPv4高級ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv4高級ACL,並進入IPv4高級ACL視圖 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
必選 缺省情況下,不存在任何ACL IPv4高級ACL的編號範圍為3000~3999 |
配置ACL的描述信息 |
description text |
可選 缺省情況下,ACL沒有任何描述信息 |
配置規則編號的步長 |
step step-value |
可選 缺省情況下,規則編號的步長為5 |
創建規則 |
rule [ rule-id ] { deny | permit } protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { dest-addr dest-wildcard | any } | destination-port operator port1 [ port2 ] | dscp dscp | icmp-type { icmp-type [ icmp-code ] | icmp-message } | precedence precedence | reflective | source { sour-addr sour-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name | tos tos ] * |
必選 缺省情況下,IPv4高級ACL內不存在任何規則 重複執行本命令可以創建多條規則 |
配置規則的描述信息 |
rule rule-id comment text |
可選 缺省情況下,規則沒有任何描述信息 |
如果在創建IPv4高級ACL時為其指定了名稱,則也可以使用acl name acl-name命令通過指定名稱的方式進入其視圖。
IPv6高級ACL可以使用報文的源IPv6地址信息、目的IPv6地址信息、IPv6承載的協議類型、協議的特性(例如TCP或UDP的源端口、目的端口,ICMP協議的消息類型、消息碼等)等信息來製定匹配規則。
用戶可以利用IPv6高級ACL定義比IPv6基本ACL更準確、豐富、靈活的規則。
表1-9 配置IPv6高級ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6高級ACL,並進入IPv6高級ACL視圖 |
acl ipv6 number acl6-number [ name acl6-name ] [ match-order { auto | config } ] |
必選 缺省情況下,不存在任何ACL IPv6高級ACL的編號範圍3000~3999 |
配置ACL的描述信息 |
description text |
可選 缺省情況下,ACL沒有任何描述信息 |
配置規則編號的步長 |
step step-value |
可選 缺省情況下,規則編號的步長為5 |
創建規則 |
rule [ rule-id ] { deny | permit } protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | counting | destination { dest dest-prefix | dest/dest-prefix | any } | destination-port operator port1 [ port2 ] | dscp dscp | flow-label flow-label-value | icmp6-type { icmp6-type icmp6-code | icmp6-message } | source { source source-prefix | source/source-prefix | any } | source-port operator port1 [ port2 ] | time-range time-range-name ] * |
必選 缺省情況下,IPv6高級ACL內不存在任何規則 重複執行本命令可以創建多條規則 |
配置規則的描述信息 |
rule rule-id comment text |
可選 缺省情況下,規則沒有任何描述信息 |
使能ACL的規則匹配統計功能 |
hardware-count enable |
可選 缺省情況下,ACL的規則匹配統計功能處於關閉狀態 |
如果在創建IPv6高級ACL時為其指定了名稱,則也可以使用acl ipv6 name acl6-name命令通過指定名稱的方式進入其視圖。
二層ACL根據報文的源MAC地址、目的MAC地址、802.1p優先級、二層協議類型等二層信息製定匹配規則,對報文進行相應的分析處理。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建二層ACL,並進入二層ACL視圖 |
acl number acl-number [ name acl-name ] [ match-order { auto | config } ] |
必選 缺省情況下,不存在任何ACL 二層ACL的編號範圍為4000~4999 |
配置ACL的描述信息 |
description text |
可選 缺省情況下,ACL沒有任何描述信息 |
配置規則編號的步長 |
step step-value |
可選 缺省情況下,規則編號的步長為5 |
創建規則 |
rule [ rule-id ] { deny | permit } [ cos vlan-pri | counting | dest-mac dest-addr dest-mask | { lsap lsap-type lsap-type-mask | type protocol-type protocol-type-mask } | source-mac sour-addr source-mask | time-range time-range-name ] * |
必選 缺省情況下,二層ACL內不存在任何規則 重複執行本命令可以創建多條規則 |
配置規則的描述信息 |
rule rule-id comment text |
可選 缺省情況下,規則沒有任何描述信息 |
如果在創建二層ACL時為其指定了名稱,則也可以使用acl name acl-name命令通過指定名稱的方式進入其視圖。
用戶可以通過複製一個已存在的ACL,來生成一個新的同類型ACL。除了ACL的編號和名稱不同外,新生成的ACL(即目的ACL)的匹配順序、規則匹配統計功能的使能情況、規則編號的步長、所包含的規則、規則的描述信息以及ACL的描述信息等都與源ACL的相同。
表1-11 複製IPv4 ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
複製生成一個新的同類型IPv4 ACL |
acl copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name } |
必選 |
· 目的IPv4 ACL的類型要與源IPv4 ACL的類型相同,且源IPv4 ACL必須存在,目的IPv4 ACL必須不存在。
· 當源或目的ACL為WLAN ACL時,都不允許為其指定名稱。
表1-12 複製IPv6 ACL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
複製生成一個新的同類型IPv6 ACL |
acl ipv6 copy { source-acl6-number | name source-acl6-name } to { dest-acl6-number | name dest-acl6-name } |
必選 |
目的IPv6 ACL的類型要與源IPv6 ACL的類型相同,且源IPv6 ACL必須存在,目的IPv6 ACL必須不存在。
在完成上述配置後,在任意視圖下執行display命令可以顯示ACL配置後的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除ACL的統計信息。
表1-13 ACL顯示和維護
配置 |
命令 |
顯示IPv4 ACL的配置和運行情況 |
display acl { acl-number | all | name acl-name } [ | { begin | exclude | include } regular-expression ] |
顯示IPv6 ACL的配置和運行情況 |
display acl ipv6 { acl6-number | all | name acl6-name } [ | { begin | exclude | include } regular-expression ] |
顯示時間段的配置和狀態信息 |
display time-range { time-range-name | all } [ | { begin | exclude | include } regular-expression ] |
清除IPv4 ACL統計信息 |
reset acl counter { acl-number | all | name acl-name } |
清除IPv6 ACL統計信息 |
reset acl ipv6 counter { acl6-number | all | name acl6-name } |
公司企業網通過AC實現無線用戶同服務器之間的互連。工資查詢服務器的地址為192.168.1.2/24。研發部門的無線用戶在無線控製器上對應的無線接口為WLAN-ESS1,要求正確配置IPv4 ACL,禁止研發部門無線用戶在工作日8:00至18:00訪問工資查詢服務器。
(1) 定義上班時間段
# 定義星期一至星期五的8:00至18:00的周期時間段。
<AC> system-view
[AC] time-range trname 8:00 to 18:00 working-day
(2) 定義到工資服務器的IPv4 ACL
# 進入高級IPv4 ACL視圖,編號為3000。
[AC] acl number 3000
# 定義匹配從研發部門到工資服務器的報文的訪問規則。
[AC-acl-adv-3000] rule 0 permit ip source any destination 192.168.1.2 0.0.0.0 time-range trname
[AC-acl-adv-3000] quit
(3) 應用IPv4 ACL
# 將IPv4 ACL 3000應用於WLAN-ESS1入方向的包過濾。
[AC] traffic classifier test
[AC-classifier-test] if-match acl 3000
[AC-classifier-test] quit
[AC] traffic behavior test
[AC-behavior-test] filter deny
[AC-behavior-test] quit
[AC] qos policy test
[AC-qospolicy-test] classifier test behavior test
[AC-qospolicy-test] quit
[AC] interface WLAN-ESS 1
[AC-WLAN-ESS1] qos apply policy test inbound
在無線控製器接口WLAN-ESS1配置IPv6報文過濾,禁止接收源IPv6地址為2000::0100到2000::ff00 的報文,允許接收其他報文。
# 配置IPv6 ACL(假定IPv6 ACL編號為2000),規則如下。
<AC> system-view
[AC] acl ipv6 number 2000
[AC-acl6-basic-2000] rule permit source 2000::0100 120
[AC-acl6-basic-2000] quit
# 配置流分類
[AC] traffic classifier ipv6-2000
[AC-classifier-ipv6-2000] if-match acl ipv6 2000
[AC-classifier-ipv6-2000] quit
# 配置流行為
[AC] traffic behavior deny
[AC-behavior-deny] filter deny
[AC] quit
# 配置QOS流策略
[AC] qos policy deny2000
[AC-qospolicy-deny2000] classifier ipv6-2000 behavior deny
[AC-qospolicy-deny2000] quit
# 配置接口WLAN-ESS1入方向的IPv6報文過濾。
[AC] interface WLAN-ESS1
[AC-WLAN-ESS1] qos apply policy deny2000 inbound
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!