01-ACL配置
本章節下載: 01-ACL配置 (373.50 KB)
ACL(Access Control List,訪問控製列表)是一係列用於識別報文流的規則的集合。這裏的規則是指描述報文匹配條件的判斷語句,匹配條件可以是報文的源地址、目的地址、端口號等。設備依據ACL規則識別出特定的報文,並根據預先設定的策略對其進行處理,最常見的應用就是使用ACL進行報文過濾。此外,ACL還可應用於諸如路由、安全、QoS等業務中識別報文,對這些報文的具體處理方式由應用ACL的業務模塊來決定。
用戶在創建ACL時必須為其指定編號或名稱,不同的編號對應不同類型的ACL,如表1-1所示;當ACL創建完成後,用戶就可以通過指定編號或名稱的方式來應用和編輯該ACL。
對於編號相同的基本ACL或高級ACL,必須通過ipv6關鍵字進行區分。對於名稱相同的ACL,必須通過ipv6、mac和user-defined關鍵字進行區分。
根據規則製訂依據的不同,可以將ACL分為如表1-1所示的幾種類型。
表1-1 ACL的分類
ACL類型 |
編號範圍 |
適用的IP版本 |
規則製訂依據 |
基本ACL |
2000~2999 |
IPv4 |
報文的源IPv4地址 |
IPv6 |
報文的源IPv6地址 |
||
高級ACL |
3000~3999 |
IPv4 |
報文的源IPv4地址、目的IPv4地址、報文優先級、IPv4承載的協議類型及特性等三、四層信息 |
IPv6 |
報文的源IPv6地址、目的IPv6地址、報文優先級、IPv6承載的協議類型及特性等三、四層信息 |
||
二層ACL |
4000~4999 |
IPv4和IPv6 |
報文的源MAC地址、目的MAC地址、802.1p優先級、鏈路層協議類型等二層信息 |
用戶自定義ACL |
5000~5999 |
IPv4和IPv6 |
以報文頭為基準,指定從報文的第幾個字節開始與掩碼進行“與”操作,並將提取出的字符串與用戶定義的字符串進行比較,從而找出相匹配的報文 |
當一個ACL中包含多條規則時,報文會按照一定的順序與這些規則進行匹配,一旦匹配上某條規則便結束匹配過程。ACL的規則匹配順序有以下兩種:
· 配置順序:按照規則編號由小到大進行匹配。
· 自動排序:按照“深度優先”原則由深到淺進行匹配,各類型ACL的“深度優先”排序法則如下表所示。
用戶自定義ACL的規則隻能按照配置順序進行匹配,其它類型的ACL則可選擇按照配置順序或自動順序進行匹配。
表1-2 各類型ACL的“深度優先”排序法則
ACL類型 |
“深度優先”排序法則 |
IPv4基本ACL |
a 先判斷規則的匹配條件中是否包含VPN實例,包含者優先 b 如果VPN實例的包含情況相同,再比較源IPv4地址範圍,較小者優先 c 如果源IPv4地址範圍也相同,再比較配置的先後次序,先配置者優先 |
IPv4高級ACL |
a 先判斷規則的匹配條件中是否包含VPN實例,包含者優先 b 如果VPN實例的包含情況相同,再比較協議範圍,指定有IPv4承載的協議類型者優先 c 如果協議範圍也相同,再比較源IPv4地址範圍,較小者優先 d 如果源IPv4地址範圍也相同,再比較目的IPv4地址範圍,較小者優先 e 如果目的IPv4地址範圍也相同,再比較四層端口(即TCP/UDP端口)號的覆蓋範圍,較小者優先 f 如果四層端口號的覆蓋範圍無法比較,再比較配置的先後次序,先配置者優先 |
IPv6基本ACL |
a 先判斷規則的匹配條件中是否包含VPN實例,包含者優先 b 如果VPN實例的包含情況相同,再比較源IPv6地址範圍,較小者優先 c 如果源IPv6地址範圍也相同,再比較配置的先後次序,先配置者優先 |
IPv6高級ACL |
a 先判斷規則的匹配條件中是否包含VPN實例,包含者優先 b 如果VPN實例的包含情況相同,再比較協議範圍,指定有IPv6承載的協議類型者優先 c 如果協議範圍相同,再比較源IPv6地址範圍,較小者優先 d 如果源IPv6地址範圍也相同,再比較目的IPv6地址範圍,較小者優先 e 如果目的IPv6地址範圍也相同,再比較四層端口(即TCP/UDP端口)號的覆蓋範圍,較小者優先 f 如果四層端口號的覆蓋範圍無法比較,再比較配置的先後次序,先配置者優先 |
二層ACL |
a 先比較源MAC地址範圍,較小者優先 b 如果源MAC地址範圍相同,再比較目的MAC地址範圍,較小者優先 c 如果目的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中是唯一的。在創建規則時,可以手工為其指定一個編號;如未手工指定編號,則由係統為其自動分配一個編號。由於規則的編號可能影響規則匹配的順序,因此當由係統自動分配編號時,為了方便後續在已有規則之前插入新的規則,係統通常會在相鄰編號之間留下一定的空間,這個空間的大小(即相鄰編號之間的差值)就稱為ACL的步長。譬如,當步長為5時,係統會將編號0、5、10、15……依次分配給新創建的規則。
係統為規則自動分配編號的方式如下:係統從規則編號的起始值開始,自動分配一個大於現有最大編號的步長最小倍數的編號。譬如原有編號為0、5、9、10和12的五條規則,步長為5,此時如果創建一條規則且不指定編號,那麼係統將自動為其分配編號15。
如果步長或規則編號的起始值發生了改變,ACL內原有全部規則的編號都將自動從規則編號的起始值開始按步長重新排列。譬如,某ACL內原有編號為0、5、9、10和15的五條規則,當修改步長為2之後,這些規則的編號將依次變為0、2、4、6和8。
需要注意的是,ACL規則的匹配順序為自動排序時,修改步長後新的編號是按照規則的匹配順序(即“深度優先”原則)重新排序的,並非按照規則的原有編號順序排序。譬如,步長為5時,規則的匹配順序為0、10、5……修改步長為2後,各規則對應的新編號為0、2、4……
傳統報文過濾隻對分片報文的首個分片進行匹配過濾,對後續分片一律放行,因此網絡攻擊者通常會構造後續分片進行流量攻擊。為提高網絡安全性,ACL規則缺省會匹配所有非分片報文和分片報文的全部分片,但這樣又帶來效率低下的問題。為了兼顧網絡安全和匹配效率,可將過濾規則配置為僅對後續分片有效。
通過編號創建的ACL,可以通過如下命令進入其視圖:
· acl [ ipv6 ] number acl-number;
· acl { [ ipv6 ] { advanced | basic } | mac | user-defined } acl-number。
通過acl [ ipv6 ] number acl-number name acl-name命令指定編號和名稱創建的ACL,可以使用如下命令進入其視圖:
· acl [ ipv6 ] name acl-name,本命令僅支持進入已創建的基本或高級ACL視圖;
· acl [ ipv6 ] number acl-number [ name acl-name ];
· acl { [ ipv6 ] { advanced | basic } | mac | user-defined } name acl-name。
通過acl { [ ipv6 ] { advanced | basic } | mac | user-defined } name acl-name命令指定名稱創建的ACL,可以使用如下命令進入其視圖:
· acl [ ipv6 ] name acl-name,本命令僅支持進入已創建的基本或高級ACL視圖;
· acl { [ ipv6 ] { advanced | basic } | mac | user-defined } name acl-name。
ACL配置任務如下
· 配置不同類型的ACL
¡ 配置基本ACL
¡ 配置高級ACL
¡ 配置二層ACL
· (可選)複製ACL
· (可選)配置QoS和ACL資源的共享模式
· (可選)配置QoS和ACL資源的硬件模式
· (可選)應用ACL進行報文過濾
基本ACL根據報文的源IP地址來製訂規則,對報文進行匹配。
基本ACL可以應用在設備管理、組播業務、QoS業務和路由策略等場景中,典型應用場景如下:
· 當設備作為FTP、TFTP服務器時,為提高其安全性,可以通過配置基本ACL實現隻允許滿足過濾條件的客戶端訪問服務器。關於使用基本ACL限製客戶端訪問設備的詳細內容,請參見“基礎配置指導”中的“FTP和TFTP”。
· 在組播場景中,通過配置基本ACL,設備可以作為組播數據過濾器實現隻接收或轉發滿足過濾條件的組播報文。關於組播數據過濾器的詳細介紹,請參見“IP組播配置指導”中的“PIM”和“IPv6 PIM”。
· 當需要控製設備接收、發布的路由信息時,可以通過配置基本ACL作為路由策略的過濾器,來實現隻接收或發布滿足過濾條件的路由。關於路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 當需要對不同類型的流量進行分類操作時,可以通過配置基本ACL實現對滿足過濾條件的流量進行流量監管、流量整形、流分類。關於流量監管、流量整形、流分類的詳細介紹,請參見“ACL和QoS配置指導”中的“QoS”。
system-view
(2) 創建IPv4基本ACL。請至少選擇其中一項進行配置。
¡ 通過編號創建IPv4基本ACL。
acl number acl-number [ name acl-name ] [ match-order { auto | config } ]
¡ 通過關鍵字創建IPv4基本ACL。
acl basic { acl-number | name acl-name } [ match-order { auto | config } ]
(3) (可選)配置ACL的描述信息。
description text
缺省情況下,未配置ACL的描述信息。
(4) (可選)配置規則編號的步長。
step step-value [ start start-value ]
缺省情況下,規則編號的步長為5,起始值為0。
(5) 創建規則。
rule [ rule-id ] { deny | permit } [ counting | fragment | [ flow-logging | logging ] | source { source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
flow-logging、logging參數是否生效取決於引用該ACL的模塊是否支持日誌記錄功能,例如報文過濾支持日誌記錄功能,如果其引用的ACL規則中配置了logging參數,該參數可以生效。
(6) (可選)為規則配置描述信息。
rule rule-id comment text
缺省情況下,未配置規則的描述信息。
(7) (可選)為規則配置注釋信息。
rule [ rule-id ] remark text
缺省情況下,未配置規則的注釋信息。
(1) 進入係統視圖。
system-view
(2) 創建IPv6基本ACL。請至少選擇其中一項進行配置。
¡ 通過編號創建IPv6基本ACL。
acl ipv6 number acl-number [ name acl-name ] [ match-order { auto | config } ]
¡ 通過關鍵字創建IPv6基本ACL。
acl ipv6 basic { acl-number | name acl-name } [ match-order { auto | config } ]
(3) (可選)配置ACL的描述信息。
description text
缺省情況下,未配置ACL的描述信息。
(4) (可選)配置規則編號的步長。
step step-value [ start start-value ]
缺省情況下,規則編號的步長為5,起始值為0。
(5) 創建規則。
rule [ rule-id ] { deny | permit } [ counting | fragment | [ flow-logging | logging ] | routing [ type routing-type ] | source { source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *
flow-logging、logging參數是否生效取決於引用該ACL的模塊是否支持日誌記錄功能,例如報文過濾支持日誌記錄功能,如果其引用的ACL規則中配置了logging參數,該參數可以生效。
(6) (可選)為規則配置描述信息。
rule rule-id comment text
缺省情況下,未配置規則的描述信息。
(7) (可選)為規則配置注釋信息。
rule [ rule-id ] remark text
缺省情況下,未配置規則的注釋信息。
高級ACL可以應用在設備管理、組播業務、QoS業務和路由策略等場景中,典型應用場景如下:
· 當設備作為FTP、TFTP服務器時,為提高其安全性,可以通過配置高級ACL實現隻允許滿足過濾條件的客戶端訪問服務器。關於使用高級ACL限製客戶端訪問設備的詳細內容,請參見“基礎配置指導”中的“FTP和TFTP”。
· 在組播場景中,通過配置高級ACL,設備可以作為組播數據過濾器實現隻接收或轉發滿足過濾條件的組播報文。關於組播數據過濾器的詳細介紹,請參見“IP組播配置指導”中的“PIM”和“IPv6 PIM”。
· 當需要控製設備接收、發布的路由信息時,可以通過配置高級ACL作為路由策略的過濾器,來實現隻接收或發布滿足過濾條件的路由。關於路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 當需要對不同類型的流量進行分類操作時,可以通過配置高級ACL實現對滿足過濾條件的流量進行流量監管、流量整形、流分類。關於流量監管、流量整形、流分類的詳細介紹,請參見“ACL和QoS配置指導”中的“QoS”。
高級ACL可根據報文的源地址、目的地址、報文優先級、承載的協議類型及特性(如TCP/UDP的源端口和目的端口、TCP報文標識、ICMP或ICMPv6協議的消息類型和消息碼等)以及報文的封裝類型、內層源地址、內層目的地址、內層承載的協議類型及特性(如TCP/UDP的內層源端口和內層目的端口)等信息來製定規則,對報文進行匹配。用戶可利用高級ACL製訂比基本ACL更準確、豐富、靈活的規則。
system-view
(2) 創建IPv4高級ACL。請至少選擇其中一項進行配置。
¡ 通過編號創建IPv4高級ACL。
acl number acl-number [ name acl-name ] [ match-order { auto | config } ]
¡ 通過關鍵字創建IPv4高級ACL。
acl advanced { acl-number | name acl-name } [ match-order { auto | config } ]
(3) (可選)配置ACL的描述信息。
description text
缺省情況下,未配置ACL的描述信息。
(4) (可選)配置規則編號的步長。
step step-value [ start start-value ]
缺省情況下,規則編號的步長為5,起始值為0。
(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 { microsegment microsegment-id [ mask-length mask-length ] | object-group address-group-name | dest-address dest-wildcard | any } | destination-port operator port1 [ port2 ] | { { precedence precedence | tos tos } * | { precedence precedence | ecn ecn } * | { dscp dscp | ecn ecn } * } | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | [ flow-logging | logging ] | source { microsegment microsegment-id [ mask-length mask-length ] | source-address source-wildcard | any } | source-port operator port1 [ port2 ] | time-range time-range-name | vpn-instance vpn-instance-name ] *
¡ 創建匹配封裝報文的規則。
rule [ rule-id ] { deny | permit } vxlan [ destination { dest-address dest-wildcard | any } | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] | vxlan-id vxlan-id ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-wildcard | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-wildcard | any } | { { inner-dscp inner-dscp | inner-ecn inner-ecn } * | { inner-ecn inner-ecn | inner-precedence inner-precedence } * | { inner-precedence inner-precedence | inner-tos inner-tos } * } | inner-source-port operator port1 [ port2 ] | [ flow-logging | logging ] | time-range time-range-name ] *
參數 |
說明 |
vxlan |
表示匹配VXLAN報文,包括外層的報文信息和內層的報文信息 |
flow-logging、logging參數是否生效取決於引用該ACL的模塊是否支持日誌記錄功能,例如報文過濾支持日誌記錄功能,如果其引用的ACL規則中配置了logging參數,該參數可以生效。
(6) (可選)為規則配置描述信息。
rule rule-id comment text
缺省情況下,未配置規則的描述信息。
(7) (可選)為規則配置注釋信息。
rule [ rule-id ] remark text
缺省情況下,未配置規則的注釋信息。
(1) 進入係統視圖。
system-view
(2) 創建IPv6高級ACL。請至少選擇其中一項進行配置。
¡ 通過編號創建IPv6高級ACL。
acl ipv6 number acl-number [ name acl-name ] [ match-order { auto | config } ]
¡ 通過關鍵字創建IPv6高級ACL。
acl ipv6 advanced { acl-number | name acl-name } [ match-order { auto | config } ]
(3) (可選)配置ACL的描述信息。
description text
缺省情況下,未配置ACL的描述信息。
(4) (可選)配置規則編號的步長。
step step-value [ start start-value ]
缺省情況下,規則編號的步長為5,起始值為0。
(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 { microsegment microsegment-id [ mask-length mask-length ] | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port operator port1 [ port2 ] | { dscp dscp | ecn ecn-value } * | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | [ flow-logging | logging ] | routing [ type routing-type ] | hop-by-hop [ type hop-type ] | source { microsegment microsegment-id [ mask-length mask-length ] | source-address source-prefix | source-address/source-prefix | any } | source-port operator port1 [ port2 ] | time-range time-range-name | vpn-instance vpn-instance-name ] *
¡ 創建匹配IPv4 VXLAN封裝報文的規則。
rule [ rule-id ] { deny | permit } vxlan [ vxlan-id vxlan-id ] inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | [ flow-logging | logging ] | time-range time-range-name ] *
¡ 創建匹配IPv6 VXLAN封裝報文的規則。
rule [ rule-id ] { deny | permit } vxlan-ipv6 [ destination { dest-address dest-prefix | dest-address/dest-prefix | any } | source { source-address source-prefix | source-address/source-prefix | any } | source-port operator port1 [ port2 ] | vxlan-id vxlan-id ] * inner-protocol inner-protocol [ counting | inner-destination { dest-address dest-prefix | dest-address/dest-prefix | any } | inner-destination-port operator port1 [ port2 ] | { { inner-ack inner-ack-value | inner-fin inner-fin-value | inner-psh inner-psh-value | inner-rst inner-rst-value | inner-syn inner-syn-value | inner-urg inner-urg-value } * | inner-established } | inner-source { source-address source-prefix | source-address/source-prefix | any } | inner-source-port operator port1 [ port2 ] | { inner-dscp inner-dscp | inner-ecn inner-ecn } * | [ flow-logging | logging ] | time-range time-range-name ] *
參數 |
說明 |
vxlan |
表示匹配IPv4 VXLAN封裝報文,當報文是IPv4 VXLAN封裝時,不能配置外層報文的源和目的地址以及源和目的端口信息。 |
vxlan-ipv6 |
表示匹配IPv6 VXLAN封裝報文,當報文是IPv6 VXLAN封裝時,可以配置外層的報文信息和內層的報文信息 |
flow-logging、logging參數是否生效取決於引用該ACL的模塊是否支持日誌記錄功能,例如報文過濾支持日誌記錄功能,如果其引用的ACL規則中配置了logging參數,該參數可以生效。
(6) (可選)為規則配置描述信息。
rule rule-id comment text
缺省情況下,未配置規則的描述信息。
(7) (可選)為規則配置注釋信息。
rule [ rule-id ] remark text
缺省情況下,未配置規則的注釋信息。
二層ACL可以應用在設備管理和QoS業務等場景中,典型應用場景如下:
· 當設備作為Telnet服務器時,為提高其安全性,可以通過配置二層ACL實現隻允許滿足過濾條件的客戶端訪問服務器。關於使用二層ACL限製客戶端訪問設備的詳細內容,請參見“基礎配置指導”中的“登錄設備”。
· 當需要對不同類型的流量進行分類操作時,可以通過配置二層ACL實現對滿足過濾條件的流量進行流量監管、流量整形、流分類。關於流量監管、流量整形、流分類的詳細介紹,請參見“ACL和QoS配置指導”中的“QoS”。
二層ACL可根據報文的源MAC地址、目的MAC地址、802.1p優先級、鏈路層協議類型、報文的封裝類型、報文的內層源MAC地址、內層目的MAC地址、內層鏈路層協議類型等二層信息來製訂規則,對報文進行匹配。
(1) 進入係統視圖。
system-view
(2) 創建二層ACL。請至少選擇其中一項進行配置。
¡ 通過編號創建二層ACL。
acl number acl-number [ name acl-name ] [ match-order { auto | config } ]
¡ 通過關鍵字創建二層ACL。
acl mac { acl-number | name acl-name } [ match-order { auto | config } ]
(3) (可選)配置ACL的描述信息。
description text
缺省情況下,未配置ACL的描述信息。
(4) (可選)配置規則編號的步長。
step step-value [ start start-value ]
缺省情況下,規則編號的步長為5,起始值為0。
(5) 創建規則。請至少選擇其中一項進行配置。
¡ 創建匹配普通報文的規則。
rule [ rule-id ] { deny | permit } [ cos dot1p | counting | dest-mac dest-address dest-mask | { lsap lsap-type lsap-type-mask | type protocol-type protocol-type-mask } | source-mac source-address source-mask | time-range time-range-name ] *
¡ 創建匹配VXLAN報文的規則。
rule [ rule-id ] { deny | permit } vxlan [ counting | dest-mac dest-address dest-mask | inner-dest-mac inner-dest-address inner-dest-mask | inner-source-mac inner-source-address inner-source-mask | inner-type inner-protocol-type inner-protocol-type-mask | source-mac source-address source-mask | time-range time-range-name | type protocol-type protocol-type-mask | vxlan-id vxlan-id ] *
(6) (可選)為規則配置描述信息。
rule rule-id comment text
缺省情況下,未配置規則的描述信息。
(7) (可選)為規則配置注釋信息。
rule [ rule-id ] remark text
缺省情況下,未配置規則的注釋信息。
用戶自定義ACL可以以報文頭為基準,指定從報文的第幾個字節開始與掩碼進行“與”操作,並將提取出的字符串與用戶定義的字符串進行比較,從而找出相匹配的報文。
(1) 進入係統視圖。
system-view
(2) 創建用戶自定義ACL。請至少選擇其中一項進行配置。
¡ 通過編號創建用戶自定義ACL。
acl number acl-number [ name acl-name ]
¡ 通過關鍵字創建用戶自定義ACL。
acl user-defined { acl-number | name acl-name }
(3) (可選)配置ACL的描述信息。
description text
缺省情況下,未配置ACL的描述信息。
(4) 創建規則。
命令形式一
rule [ rule-id ] { deny | permit } [ { { l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *
命令形式二
rule [ rule-id ] { deny | permit } [ ipv6-protocol ] protocol [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | destination { dest-address dest-wildcard | any | microsegment microsegment-id [ mask-length mask-length ] } | destination-port { operator port1 [ port2 ] } | { { precedence precedence | tos tos } * | { precedence precedence | ecn ecn } * | { dscp dscp | ecn ecn } * } | source { source-address source-wildcard | any | microsegment microsegment-id [ mask-length mask-length ] } } | source-port { operator port1 [ port2 ] } | udf-format | vpn-instance vpn-instance-name ] * [ { { l2 | l4 } rule-string rule-mask offset }&<1-8> ] [ counting | time-range time-range-name ] *
命令形式三
rule [ rule-id ] { deny | permit } dual-stack { tcp | udp } [ { { ack ack-value | fin fin-value | psh psh-value | rst rst-value | syn syn-value | urg urg-value } * | established } | destination { any | microsegment microsegment-id [ mask-length mask-length ] } | destination-port { operator port1 [ port2 ] } | source { any | microsegment microsegment-id [ mask-length mask-length ] } | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ counting | time-range time-range-name ] *
(5) (可選)為規則配置描述信息。
rule rule-id comment text
缺省情況下,未配置規則的描述信息。
(6) (可選)為規則配置注釋信息。
rule [ rule-id ] remark text
缺省情況下,未配置規則的注釋信息。
用戶可通過複製一個已存在的ACL(即源ACL),來生成一個新的同類型ACL(即目的ACL)。除了ACL的編號和名稱不同外,目的ACL與源ACL完全相同。
目的ACL要與源ACL的類型相同,且目的ACL必須不存在,否則將導致複製ACL失敗。
(1) 進入係統視圖。
system-view
(2) 複製並生成一個新的ACL。
acl [ ipv6 | mac | user-defined ] copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }
共享模式(即在應用QoS策略時指定share-mode關鍵字)指的是在屬於同一接口組的多個接口上應用同一個QoS策略或報文過濾時,所有應用將共享一份QoS和ACL資源。而非共享模式時,每個位置的應用都會獨占一份QoS和ACL資源。所以共享模式能極大的節省QoS和ACL資源。
通過display qos-acl resource命令可以查看接口與接口組的對應關係,每個“Interfaces:”後麵羅列的接口屬於同一接口組。
QoS和ACL資源的共享模式。僅支持取值為preemtion:此模式下,如果希望在接口上應用的各個類型的QoS策略都按照共享模式生效,則應用時必需指定share-mode關鍵字。
在未配置本命令的情況下,接口相同方向上僅支持以共享模式應用一個QoS策略。
有關QoS策略及其共享模式的詳細介紹,請參見“ACL和QoS命令參考”中的“QoS”。
對於preemtion模式:僅對執行qos-acl resource share-mode命令後新應用的QoS策略生效,如果希望對執行命令前已經應用的QoS策略也生效,請選擇如下方式之一操作:
· 執行save命令保存當前配置,然後重啟設備。
· 執行本命令前,取消已應用的QoS策略,並在執行本命令後重新應用。
(1) 進入係統視圖。
system-view
(2) 配置ACL的共享模式
qos-acl resource share-mode inbound share-mode
缺省情況下,ACL資源未配置任何共享模式。
由於設備底層芯片差異,導致QoS和ACL資源匹配的報文結果有差異,硬件模式能夠增強QoS和ACL資源的匹配能力。
配置本模式後,應用ACL時會占用更多資源。
(1) 進入係統視圖。
system-view
(2) 配置QoS和ACL資源的硬件模式。
qos-acl resource hardware-mode hardware-mode-value
缺省情況下,QoS和ACL資源未配置任何硬件模式。
ACL最基本的應用就是進行報文過濾。例如,將ACL規則應用到指定接口的入或出方向上,從而對該接口收到或發出的報文進行過濾。
全局在一個方向上最多可應用4個ACL進行報文過濾,包括一個IPv4 ACL(IPv4基本ACL或IPv4高級ACL)、一個IPv6 ACL(IPv6基本ACL或IPv6高級ACL)、一個二層ACL以及一個用戶自定義ACL。
(1) 進入係統視圖。
system-view
(2) 全局應用ACL進行報文過濾。
packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } global { inbound | outbound } [ hardware-count ]
缺省情況下,未配置全局的報文過濾。
一個接口在一個方向上最多可應用4個ACL進行報文過濾,包括一個IPv4 ACL(IPv4基本ACL或IPv4高級ACL)、一個IPv6 ACL(IPv6基本ACL或IPv6高級ACL)、一個二層ACL以及一個用戶自定義ACL。
對於同一VLAN接口的同一個方向,可以在VLAN接口視圖下配置packet-filter命令實現報文過濾功能,也可以在係統視圖下配置packet-filter vlan-interface命令實現報文過濾功能,但二者不可同時配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 在接口上應用ACL進行報文過濾。
packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } { inbound | outbound } [ hardware-count ]
缺省情況下,未配置接口的報文過濾。
一個VLAN接口列表在一個方向上隻能應用1個ACL進行報文過濾。
對於同一VLAN接口的同一個方向,可以在VLAN接口視圖下配置packet-filter命令實現報文過濾功能,也可以在係統視圖下配置packet-filter vlan-interface命令實現報文過濾功能,但二者不可同時配置。
在同一方向上應用相同ACL配置VLAN接口列表的報文過濾功能時,多次執行本命令會向VLAN接口列表中添加新的VLAN接口:
· 如果初始配置時攜帶了hardware-count參數,則向VLAN接口列表中添加VLAN接口時,必須攜帶該參數;
· 如果初始配置時未攜帶hardware-count參數,則向VLAN接口列表中添加VLAN接口時,不能攜帶該參數。
(1) 進入係統視圖。
system-view
(2) 在VLAN接口列表上應用ACL進行報文過濾。
packet-filter [ ipv6 | mac | user-defined ] { acl-number | name acl-name } vlan-interface vlan-interface-list { inbound | outbound } [ hardware-count ]
缺省情況下,未配置VLAN接口的報文過濾。
在VLAN接口下應用ACL進行報文過濾時,可以通過本功能指定報文過濾的生效範圍:
· 僅對三層轉發的報文生效。
· 對所有報文生效,即通過VLAN接口進行三層轉發的報文和通過VLAN接口對應的物理接口進行二層轉發的報文均生效。
(1) 進入係統視圖。
system-view
(2) 進入已創建的VLAN接口視圖。
interface vlan-interface vlan-interface-id
(3) 配置報文過濾的生效範圍。
packet-filter filter { route | all }
缺省情況下,報文過濾對通過VLAN接口進行三層轉發的報文生效。
報文過濾日誌或告警信息的生成與發送周期起始於報文過濾中ACL匹配數據流的第一個數據包,報文過濾日誌或告警信息包括周期內被匹配的報文數量以及所使用的ACL規則。在一個周期內:
· 對於規則匹配數據流的第一個數據包,設備會立即生成報文過濾日誌或告警信息;
· 對於規則匹配數據流的其他數據包,設備將在周期結束後生成報文過濾日誌或告警信息。
設備生成的報文過濾日誌將發送給信息中心,有關信息中心的詳細介紹,請參見“網絡管理和監控配置指導”中的“信息中心”。
設備生成的告警信息將發送給SNMP,有關SNMP的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 配置報文過濾日誌信息或告警信息的生成與發送周期。
acl { logging | trap } interval interval
缺省情況下,報文過濾日誌信息或告警信息的生成與發送周期為0分鍾,即不記錄報文過濾的日誌和告警信息。
係統缺省的報文過濾動作為Permit,即允許未匹配上ACL規則的報文通過。通過本配置可更改報文過濾的缺省動作為Deny,即禁止未匹配上ACL規則的報文通過。
(1) 進入係統視圖。
system-view
(2) 配置報文過濾的缺省動作為Deny。
packet-filter default deny
缺省情況下,報文過濾的缺省動作為Permit,即允許未匹配上ACL規則的報文通過。
在完成上述配置後,在任意視圖下執行display命令可以顯示ACL配置後的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除ACL的統計信息。
表1-3 ACL顯示和維護
配置 |
命令 |
顯示ACL的配置和運行情況 |
display acl [ ipv6 | mac | user-defined ] { acl-number | all | name acl-name } |
顯示ACL在報文過濾中的應用情況 |
display packet-filter { global | interface [ interface-type interface-number ] | vlan-interface } [ inbound | outbound ] [ slot slot-number ] |
顯示ACL在報文過濾中應用的統計信息 |
display packet-filter statistics { global | interface interface-type interface-number | vlan-interface } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ brief ] |
顯示ACL在報文過濾中應用的累加統計信息 |
display packet-filter statistics sum { inbound | outbound } [ ipv6 | mac | user-defined ] { acl-number | name acl-name } [ brief ] |
顯示ACL在報文過濾中的詳細應用情況 |
display packet-filter verbose { global | interface interface-type interface-number | vlan-interface } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] [ slot slot-number] |
顯示QoS和ACL資源的使用情況 |
display qos-acl resource [ advanced-mode ] [ slot slot-number ] |
清除ACL的統計信息 |
reset acl [ ipv6 | mac | user-defined ] counter { acl-number | all | name acl-name } |
清除ACL在報文過濾中應用的統計信息 |
reset packet-filter statistics { global | interface [ interface-type interface-number ] | vlan-interface } { inbound | outbound } [ [ ipv6 | mac | user-defined ] { acl-number | name acl-name } ] |
· 某公司內的各部門之間通過Device實現互連,該公司的工作時間為每周工作日的8點到18點。
· 通過配置,允許總裁辦在任意時間、財務部在工作時間訪問財務數據庫服務器,禁止其它部門在任何時間、財務部在非工作時間訪問該服務器。
圖1-1 ACL典型配置組網圖
# 創建名為work的時間段,其時間範圍為每周工作日的8點到18點。
<Device> system-view
[Device] time-range work 08:00 to 18:00 working-day
# 創建IPv4高級ACL 3000,並製訂如下規則:允許總裁辦在任意時間、財務部在工作時間訪問財務數據庫服務器,禁止其它部門在任何時間、財務部在非工作時間訪問該服務器。
[Device] acl advanced 3000
[Device-acl-ipv4-adv-3000] rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.0.100 0
[Device-acl-ipv4-adv-3000] rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.0.100 0 time-range work
[Device-acl-ipv4-adv-3000] rule deny ip source any destination 192.168.0.100 0
[Device-acl-ipv4-adv-3000] quit
# 應用IPv4高級ACL 3000對接口Twenty-FiveGigE1/0/1出方向上的報文進行過濾。
[Device] interface twenty-fivegige 1/0/1
[Device-Twenty-FiveGigE1/0/1] packet-filter 3000 outbound
[Device-Twenty-FiveGigE1/0/1] quit
配置完成後,在各部門的PC(假設均為Windows XP操作係統)上可以使用ping命令檢驗配置效果,在Device上可以使用display acl命令查看ACL的配置和運行情況。例如在工作時間:
# 在財務部的PC上檢查到財務數據庫服務器是否可達。
C:\> ping 192.168.0.100
Pinging 192.168.0.100 with 32 bytes of data:
Reply from 192.168.0.100: bytes=32 time=1ms TTL=255
Reply from 192.168.0.100: bytes=32 time<1ms TTL=255
Reply from 192.168.0.100: bytes=32 time<1ms TTL=255
Reply from 192.168.0.100: bytes=32 time<1ms TTL=255
Ping statistics for 192.168.0.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
由此可見,財務部的PC能夠在工作時間訪問財務數據庫服務器。
# 在市場部的PC上檢查財務數據庫服務器是否可達。
C:\> ping 192.168.0.100
Pinging 192.168.0.100 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 192.168.0.100:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
由此可見,市場部的PC不能在工作時間訪問財務數據庫服務器。
# 查看IPv4高級ACL 3000的配置和運行情況。
[Device] display acl 3000
Advanced IPv4 ACL 3000, 3 rules,
ACL's step is 5
rule 0 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.0.100 0
rule 5 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.0.100 0 time-range work (Active)
rule 10 deny ip destination 192.168.0.100 0
由此可見,由於目前是工作時間,因此規則5是生效的;且由於之前使用了ping命令的緣故,規則5和規則10分別被匹配了4次。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!