• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

15-ACL和QoS配置指導

目錄

01-ACL配置

本章節下載 01-ACL配置  (332.55 KB)

01-ACL配置


1 ACL

1.1  ACL簡介

ACL(Access Control List,訪問控製列表)是一係列用於識別報文流的規則的集合。這裏的規則是指描述報文匹配條件的判斷語句,匹配條件可以是報文的源地址、目的地址、端口號等。設備依據ACL規則識別出特定的報文,並根據預先設定的策略對其進行處理,最常見的應用就是使用ACL進行報文過濾。此外,ACL還可應用於諸如路由、安全、QoS等業務中識別報文,對這些報文的具體處理方式由應用ACL的業務模塊來決定。

1.1.1  ACL的編號和名稱

用戶在創建ACL時必須為其指定編號或名稱,不同的編號可能對應不同類型的ACL,如表1-1所示;當ACL創建完成後,用戶就可以通過指定編號或名稱的方式來應用和編輯該ACL。

對於編號相同的基本ACL或高級ACL,必須通過ipv6關鍵字進行區分。對於名稱相同的ACL,必須通過ipv6mac關鍵字進行區分。

1.1.2  ACL的分類

根據規則製訂依據的不同,可以將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

以報文頭為基準,指定從報文的第幾個字節開始與掩碼進行“與”操作,並將提取出的字符串與用戶定義的字符串進行比較,從而找出相匹配的報文

1.1.3  ACL的規則匹配順序

當一個ACL中包含多條規則時,報文會按照一定的順序與這些規則進行匹配,一旦匹配上某條規則便結束匹配過程。ACL的規則匹配順序有以下兩種:

·     配置順序:按照規則編號由小到大進行匹配。

·     自動排序:按照“深度優先”原則由深到淺進行匹配,各類型ACL的“深度優先”排序法則如表1-2所示。

說明

用戶自定義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”位越多,範圍越小。

 

1.1.4  ACL的步長

ACL中的每條規則都有自己的編號,這個編號在該ACL中是唯一的。在創建規則時,可以手工為其指定一個編號;如未手工指定編號,則由係統為其自動分配一個編號。由於規則的編號可能影響規則匹配的順序,因此當由係統自動分配編號時,為了方便後續在已有規則之前插入新的規則,係統通常會在相鄰編號之間留下一定的空間,這個空間的大小(即相鄰編號之間的差值)就稱為ACL的步長。譬如,當步長為5時,係統會將編號5、10、15、20……依次分配給新創建的規則。

係統為規則自動分配編號的方式如下:係統從規則編號的起始值開始,自動分配一個大於現有最大編號的步長最小倍數的編號。譬如原有編號為0、5、9、10和12的五條規則,步長為5,此時如果創建一條規則且不指定編號,那麼係統將自動為其分配編號15。

如果步長或規則編號的起始值發生了改變,ACL內原有全部規則的編號都將自動從規則編號的起始值開始按步長重新排列。譬如,某ACL內原有編號為0、5、9、10和15的五條規則,當修改步長為2之後,這些規則的編號將依次變為5、7、9、11和13。

需要注意的是,ACL規則的匹配順序為自動排序時,修改步長後新的編號是按照規則的匹配順序(即“深度優先”原則)重新排序的,並非按照規則的原有編號順序排序。譬如,步長為5時,規則的匹配順序為5、15、10……修改步長為2後,各規則對應的新編號為5、7、9……

1.1.5  ACL對分片報文的處理

傳統報文過濾隻對分片報文的首個分片進行匹配過濾,對後續分片一律放行,因此網絡攻擊者通常會構造後續分片進行流量攻擊。為提高網絡安全性,ACL規則缺省會匹配所有非分片報文和分片報文的全部分片,但這樣又帶來效率低下的問題。為了兼顧網絡安全和匹配效率,可將過濾規則配置為僅對後續分片有效。

1.2  ACL配置限製和指導

指定ACL編號創建的ACL,可以通過如下命令進入其視圖:

·     acl [ ipv6 ] number acl-number

·     acl { [ ipv6 ] { advanced | basic } | mac } acl-number

通過acl [ ipv6 ] number acl-number name acl-name命令指定名稱創建的ACL,可以通過如下命令進入其視圖:

·     acl [ ipv6 ] number acl-number [ name acl-name ]

·     acl { [ ipv6 ] { advanced | basic } | mac } acl-number

·     acl { [ ipv6 ] { advanced | basic } | mac } name acl-name

通過acl { [ ipv6 ] { advanced | basic } | mac } name acl-name命令指定名稱創建的ACL,隻能通過acl { [ ipv6 ] { advanced | basic } | mac } name acl-name命令進入其視圖。

對於基本或高級ACL,如果未指定ipv6參數,則表示IPv4 ACL。

如果ACL規則的匹配項中包含了除IP五元組(源IP地址、源端口號、目的IP地址、目的端口號、傳輸層協議)、ICMP報文的消息類型和消息碼信息、VPN實例、日誌操作和時間段之外的其它匹配項,則設備轉發ACL匹配的這類報文時會啟用慢轉發流程。慢轉發時設備會將報文上送控製平麵,計算報文相應的表項信息。執行慢轉發流程時,設備的轉發能力將會有所降低。

1.3  ACL配置任務簡介

ACL配置任務如下

·     配置不同類型的ACL

¡     配置基本ACL

¡     配置高級ACL

¡     配置二層ACL

¡     配置用戶自定義ACL

·     (可選)複製ACL

1.4  配置基本ACL

1.4.1  功能簡介

基本ACL根據報文的源IP地址來製訂規則,對報文進行匹配。

1.4.2  配置IPv4基本ACL

(1)     進入係統視圖。

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,起始值為5。

(5)     創建規則。

rule [ rule-id ] { deny | permit } [ counting | fragment | source { object-group address-group-name | source-address source-wildcard | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

(6)     (可選)為規則配置描述信息。

rule rule-id comment text

缺省情況下,未配置規則的描述信息。

1.4.3  配置IPv6基本ACL

(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,起始值為5。

(5)     創建規則。

rule [ rule-id ] { deny | permit } [ counting | fragment | routing [ type routing-type ] | source { object-group address-group-name | source-address source-prefix | source-address/source-prefix | any } | time-range time-range-name | vpn-instance vpn-instance-name ] *

(6)     (可選)為規則配置描述信息。

rule rule-id comment text

缺省情況下,未配置規則的描述信息。

1.5  配置高級ACL

1.5.1  功能簡介

高級ACL可根據報文的源地址、目的地址、報文優先級、QoS本地值、承載的協議類型及特性(如TCP/UDP的源端口和目的端口、TCP報文標識、ICMP或ICMPv6協議的消息類型和消息碼等)以及報文的封裝類型、內層源地址、內層目的地址、內層承載的協議類型及特性(如TCP/UDP的內層源端口和內層目的端口)等信息來製定規則,對報文進行匹配。用戶可利用高級ACL製訂比基本ACL更準確、豐富、靈活的規則。

1.5.2  配置IPv4高級ACL

(1)     進入係統視圖。

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,起始值為5。

(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 { object-group address-group-name | dest-address dest-wildcard | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | { { precedence precedence | tos tos } * | { precedence precedence | ecn ecn } * | { dscp dscp1 [ to dscp2 ] | ecn ecn } * } | fragment | icmp-type { icmp-type [ icmp-code ] | icmp-message } | source { object-group address-group-name | source-address source-wildcard | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | ttl operator ttl-value1 [ ttl-value2 ] |  user-group-any | vpn-instance vpn-instance-name ] *

(6)     (可選)為規則配置描述信息。

rule rule-id comment text

缺省情況下,未配置規則的描述信息。

1.5.3  配置IPv6高級ACL

(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,起始值為5。

(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 { object-group address-group-name | dest-address dest-prefix | dest-address/dest-prefix | any } | destination-port { object-group port-group-name | operator port1 [ port2 ] } | dscp dscp | ecn ecn | flow-label flow-label-value | fragment | icmp6-type { icmp6-type icmp6-code | icmp6-message } | packet-length operator length-value1 [ length-value2 ] | routing [ type routing-type ] | hop-by-hop [ type hop-type ] | source { object-group address-group-name |source-address source-prefix | source-address/source-prefix | any } | source-port { object-group port-group-name | operator port1 [ port2 ] } | time-range time-range-name | ttl operator ttl-value1 [ ttl-value2 ]| user-group-any  | vpn-instance vpn-instance-name ] *

(6)     (可選)為規則配置描述信息。

rule rule-id comment text

缺省情況下,未配置規則的描述信息。

1.6  配置二層ACL

1. 功能簡介

二層ACL可根據報文的源MAC地址、目的MAC地址、802.1p優先級、鏈路層協議類型、報文的封裝類型、報文的內層源MAC地址、內層目的MAC地址、內層鏈路層協議類型等二層信息來製訂規則,對報文進行匹配。

2. 配置步驟

(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,起始值為5。

(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 ] *

(6)     (可選)為規則配置描述信息。

rule rule-id comment text

缺省情況下,未配置規則的描述信息。

1.7  配置用戶自定義ACL

1. 功能簡介

用戶自定義ACL可以以報文頭為基準,指定從報文的第幾個字節開始與掩碼進行“與”操作,並將提取出的字符串與用戶定義的字符串進行比較,從而找出相匹配的報文。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     創建用戶自定義ACL。請至少選擇其中一項進行配置。

¡     通過編號創建用戶自定義ACL。

acl number [ name acl-name ] acl-number

¡     通過關鍵字創建用戶自定義ACL。

acl user-defined { acl-number | name acl-name }

(3)     (可選)配置ACL的描述信息。

description text

缺省情況下,未配置ACL的描述信息。

(4)     創建規則。

命令形式一

rule [ rule-id ] { deny | permit } [ { { ipv4 | ipv6 | 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 } | destination-port { operator port1 [ port2 ] } | { { precedence precedence | tos tos } * | { precedence precedence | ecn ecn } * | { dscp dscp | ecn ecn } * } | source { source-address source-wildcard | any } | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ { { ipv4 | ipv6 | l2 | l4 | l5 } 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 | destination-port { operator port1 [ port2 ] } | source any | source-port { operator port1 [ port2 ] } | vpn-instance vpn-instance-name ] * [ counting | time-range time-range-name ] *

(5)     (可選)為規則配置描述信息。

rule rule-id comment text

缺省情況下,未配置規則的描述信息。

1.8  複製ACL

1. 功能簡介

用戶可通過複製一個已存在的ACL(即源ACL),來生成一個新的同類型ACL(即目的ACL)。除了ACL的編號和名稱不同外,目的ACL與源ACL完全相同。

2. 配置限製和指導

目的ACL要與源ACL的類型相同,且目的ACL必須不存在,否則將導致複製ACL失敗。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     複製並生成一個新的ACL。

acl [ ipv6 | mac ] copy { source-acl-number | name source-acl-name } to { dest-acl-number | name dest-acl-name }

1.9  配置ACL規則的加速匹配功能

1. 功能簡介

在對基於會話的業務報文(如NAT、ASPF等)進行規則匹配時,通常隻對首個報文進行匹配以加快報文的處理速度,但這有時並不足以解決報文匹配的效率問題。譬如,當有大量用戶同時與設備新建連接時,需要對每個新建連接都進行規則匹配,如果ACL內包含有大量規則,那麼這個匹配過程將很長,這會導致用戶建立連接時間超長,從而影響設備新建連接的性能。

ACL規則的加速匹配功能則可以解決上述問題,當對包含大量規則的ACL開啟了加速匹配功能之後,其規則匹配速度將大大提高,從而提升設備的轉發性能以及新建連接的性能。

當設備支持軟件加速,並開啟本功能後,添加、刪除和修改規則時,並不會立即加速,而是延遲一定時間後加速。如果在該時間內,規則又發生變化,則重新計時。當ACL中的規則小於等於100條時,此時間為2秒;當ACL中的規則大於100條時,此時間為20秒。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     創建ACL,並進入ACL視圖。

acl { [ ipv6 ] { advanced | basic } { acl-number | name acl-name } | mac { acl-number | name acl-name } } [ match-order { auto | config } ]

(3)     配置ACL規則的加速匹配功能。

accelerate

缺省情況下,ACL規則的加速匹配功能處於關閉狀態。

注意

設備上存在大量ACL規則時,執行undo accelerate命令可能會導致CPU占用率達到門限狀態,影響正常業務處理。

 

1.10  ACL顯示和維護

1.10.1  顯示ACL配置及運行狀況

可在任意視圖下執行以下命令,顯示ACL的配置和運行情況。

display acl [ ipv6 | mac ] { acl-number | all | name acl-name }

1.10.2  清除ACL統計信息

請在用戶視圖下執行以下命令,清除ACL的統計信息。

reset acl [ ipv6 | mac ] counter { acl-number | all | name acl-name }

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!

BOB登陆
官網
聯係我們