很多業(yè)務(wù)都會(huì)占用ACL資源,而設(shè)備的ACL資源是有限的,當(dāng)ACL資源不足時(shí),則會(huì)導(dǎo)致業(yè)務(wù)應(yīng)用ACL失敗或產(chǎn)生ACL資源不足告警。換設(shè)備嘛領(lǐng)導(dǎo)不同意,不換設(shè)備有什么辦法嗎?
本文以V200R019C10版本的華為S5732-H系列交換機(jī)為例,介紹了ACL資源的基本原理,ACL資源不足的原因,并通過一個(gè)例子,講解了ACL資源優(yōu)化方法。不同款型及版本之間的ACL資源原理和規(guī)格可能存在差異,請以實(shí)際設(shè)備為準(zhǔn)。
ACL資源的基本原理
通常情況下,當(dāng)用戶配置ACL相關(guān)的業(yè)務(wù)時(shí),需要先創(chuàng)建ACL并配置rule規(guī)則,隨后在全局、VLAN或接口視圖下應(yīng)用ACL。當(dāng)業(yè)務(wù)下發(fā)成功后,這些rule規(guī)則就會(huì)占用ACL資源。
通常我們可以通過以下公式簡單計(jì)算或預(yù)估ACL資源占用數(shù)量:
ACL資源占用數(shù)量=rule規(guī)則數(shù)量×業(yè)務(wù)應(yīng)用位置的數(shù)量×業(yè)務(wù)應(yīng)用方向的數(shù)量
rule規(guī)則數(shù)量:一般情況下,一條rule規(guī)則會(huì)占用一條ACL資源。如果一條rule規(guī)則中指定了TCP/UDP端口號范圍時(shí),一條rule規(guī)則可能會(huì)按照拆分成多條規(guī)則下發(fā),進(jìn)而占用多條ACL資源。具體拆分規(guī)則可通過display acl division命令指定相應(yīng)的端口號范圍進(jìn)行查看。
業(yè)務(wù)應(yīng)用位置的數(shù)量:業(yè)務(wù)應(yīng)用的接口數(shù)量或VLAN數(shù)量,應(yīng)用到全局時(shí)為記為1。
業(yè)務(wù)應(yīng)用方向的數(shù)量:業(yè)務(wù)應(yīng)用到入方向或出方向時(shí)記為1,出入方向都應(yīng)用時(shí)記為2。
說明:
部分業(yè)務(wù)在不需要配置rule規(guī)則的情況下也會(huì)隱式地下發(fā)rule規(guī)則,這些不通過配置rule規(guī)則占用ACL資源的業(yè)務(wù)不在本文的討論范圍之內(nèi),如黑名單等安全類業(yè)務(wù),流量抑制、CPCAR等流量限速業(yè)務(wù),上送CPU的報(bào)文統(tǒng)計(jì)、VLAN的流量統(tǒng)計(jì)等流量統(tǒng)計(jì)業(yè)務(wù)。
為了更加直觀地介紹如何計(jì)算ACL資源占用數(shù)量,下面我們通過舉例觀察設(shè)備ACL資源信息變化:1. 首先,查看設(shè)備的ACL模塊的資源信息??梢钥吹健癆CL Unallocated”字段顯示設(shè)備未分配ACL資源共有4096條,“ACLAllocated”字段顯示設(shè)備已分配ACL資源共有512條,其中Sec安全類業(yè)務(wù)已使用146條,設(shè)備ACL資源總數(shù)量為4608條。
2. 配置ACL 3000。ACL 3000中包含2條rule規(guī)則,并將ACL 3000應(yīng)用到接口GE0/0/1和GE0/0/2的入方向。
#
acl number 3000
rule 5 permit ip destination 0.0.0.1255.255.255.0
rule 10 permit ip destination 0.0.0.2255.255.255.0
#
interface GigabitEthernet0/0/1
traffic-filter inbound acl 3000
#
interface GigabitEthernet0/0/2
traffic-filter inbound acl 3000
#3. 再次查看ACL資源信息?!癐ngress ACL”字段顯示設(shè)備入方向ACL資源占用數(shù)量為2(rule規(guī)則數(shù)量)×2(接口數(shù)量)×1(入方向)=4。
ACL資源不足的原因?qū)е翧CL資源不足的原因主要有如下兩個(gè):原因一:配置使用ACL資源的冗余業(yè)務(wù)過多
很多業(yè)務(wù)配置以后長時(shí)間不生效或不使用,持續(xù)占用大量ACL資源。例如流策略業(yè)務(wù)、基于ACL的簡化流策略業(yè)務(wù)、本機(jī)防攻擊業(yè)務(wù)、iPCA業(yè)務(wù)等。
原因二:配置使用ACL資源的業(yè)務(wù)時(shí)規(guī)劃不精細(xì)
以下幾種情況都會(huì)導(dǎo)致ACL資源占用數(shù)量成倍增長:
配置的rule規(guī)則數(shù)量過多,沒有考慮rule規(guī)則合并。
業(yè)務(wù)應(yīng)用范圍過大,將業(yè)務(wù)應(yīng)用到過多的接口或VLAN上。
業(yè)務(wù)應(yīng)用的范圍有重疊,相同業(yè)務(wù)同時(shí)應(yīng)用到全局、VLAN和接口上。
ACL資源的優(yōu)化方法對于使用ACL資源的冗余業(yè)務(wù)過多的情況,可以排查已配置的ACL相關(guān)業(yè)務(wù),刪除其中長時(shí)間不生效或不使用的業(yè)務(wù)。
本章節(jié)著重介紹規(guī)劃ACL相關(guān)業(yè)務(wù)的配置不精細(xì)導(dǎo)致ACL資源不足的優(yōu)化方法,從而在不影響業(yè)務(wù)的情況下精簡業(yè)務(wù)所占用的ACL資源。為了更好的理解如何優(yōu)化ACL資源,本章節(jié)以流策略業(yè)務(wù)為例進(jìn)行介紹。
優(yōu)化前,某流策略所綁定的ACL中包含1000條rule規(guī)則,并且該流策略應(yīng)用在4個(gè)接口的入方向上,則該業(yè)務(wù)需要占用的ACL資源為1000(rule規(guī)則數(shù)量)×4(接口數(shù)量)×1(入方向)=4000,但當(dāng)前設(shè)備剩余的ACL資源僅為3000,小于該流策略所需的ACL資源4000,因此當(dāng)前該業(yè)務(wù)無法成功下發(fā)。對應(yīng)的配置文件如下:
#
acl number 3000
rule 1 permit ip source 10.1.1.1 0destination 10.10.1.1 0
。。。 //此處省略rule規(guī)則的具體配置
rule 1000 ip source 192.168.10.1 32
#
traffic classifier c1 operator and precedence 5
if-match acl 3000
#
traffic behavior b1
permit
statistic enable
#
traffic policy p1 match-order config
classifier c1 behavior b1
#
interface GigabitEthernet1/0/1
port link-type access
port default vlan 10
traffic-policy p1 inbound
#
interface GigabitEthernet1/0/2
port link-type access
port default vlan 10
traffic-policy p1 inbound
#
interface GigabitEthernet1/0/3
port link-type access
port default vlan 20
traffic-policy p1 inbound
#
interface GigabitEthernet1/0/4
port link-type access
port default vlan 20
traffic-policy p1 inbound
#
接下來,通過以下三種方法,就可以將該流策略所需占用的ACL資源減少到3000以下,從而滿足配置該流策略的ACL資源需求。
1. 推薦先嘗試使用方法一,合并rule規(guī)則,減少rule規(guī)則數(shù)量。
2. 在已經(jīng)使用方法一的基礎(chǔ)上,可以繼續(xù)使用方法二或方法三,進(jìn)一步減少ACL資源的使用數(shù)量。如果對ACL資源精簡數(shù)量要求較高,推薦將應(yīng)用在接口的業(yè)務(wù)調(diào)整至全局,或者配置基于流ID的流策略;如果對ACL資源精簡數(shù)量要求不高,且應(yīng)用流策略的接口數(shù)量大于接口所屬VLAN的數(shù)量,推薦將應(yīng)用在接口的業(yè)務(wù)調(diào)整至VLAN。
表1-1 方法二與方法三的比較
方法一:合并rule規(guī)則,減少rule規(guī)則數(shù)量
分析各rule規(guī)則公用的匹配項(xiàng),找出各規(guī)則之間的聯(lián)系。
本例中的1000條rule規(guī)則中包含以下內(nèi)容:
#
acl number 3000
rule 1 permit ip source 10.1.1.1 0destination 10.10.1.1 0
rule 2 permit ip source 10.1.1.2 0destination 10.10.1.1 0
rule 3 permit ip source 10.1.1.3 0destination 10.10.1.1 0
。。。
rule 255 permit ip source 10.1.1.255 0destination 10.10.1.1 0
rule 256 permit ip source 10.1.2.1 0destination 10.10.1.1 0
rule 256 permit ip source 10.1.2.2 0destination 10.10.1.1 0
rule 256 permit ip source 10.1.2.3 0destination 10.10.1.1 0
。。。
rule 510 permit ip source 10.1.2.255 0destination 10.10.1.1 0
。。。
rule 801 deny tcp destination-port eqwww //80端口
rule 802 deny tcp destination-port eq81
rule 803 deny tcp destination-port eq82
。。。
rule 830 deny tcp destination-port eqpop2 //109端口
rule 831 deny tcp destination-port eqpop3 //110端口
。。。
rule 1000 xxx
# 首先,可以通過合并網(wǎng)段來合并rule規(guī)則,將rule 1~rule510合并成以下兩條規(guī)則。rule 1~rule 510均匹配報(bào)文的源IP地址和目的IP地址,且源IP地址覆蓋了10.1.1.0/24和10..2.0/24兩個(gè)網(wǎng)段的所有地址(真實(shí)組網(wǎng)中,一般不會(huì)通過rule匹配一個(gè)網(wǎng)段的所有IP地址,可以結(jié)合掩碼拆分成多個(gè)網(wǎng)段),因此可以將合并成以下兩條規(guī)則:#
acl number 3000
rule 1 permit ip source 10.1.1.00.0.0.255 destination 10.10.1.1 0
rule 2 permit ip source 10.1.2.00.0.0.255 destination 10.10.1.1 0
。。。
# 其次,可以通過range比較符合并端口號來合并rule規(guī)則,將rule 801~rule831合并成一條規(guī)則。由于rule 801~rule 831均用到了匹配項(xiàng)TCP目的端口號,且端口號范圍覆蓋了80~110整個(gè)號段,因此可以合并成一條規(guī)則(通過display acl division命令可以查看80~110端口號之間rule規(guī)則會(huì)拆成5條下發(fā)):#
acl number 3000
。。。
rule 801 deny tcp destination-port range80 110
。。。
#
合并規(guī)則后,上例中的規(guī)則減少到462條,實(shí)際下發(fā)的規(guī)則為466條,占用的ACL資源數(shù)量為1864。計(jì)算過程為:461(IP地址合并后的rule規(guī)則數(shù)量)×4(接口數(shù)量)×1(入方向)+1(端口號合并后的rule規(guī)則數(shù)量)×5(按range拆分后的rule規(guī)則數(shù)量)×4(接口數(shù)量)×1(入方向)=1864,小于設(shè)備剩余的ACL資源數(shù)量(3000條),因此能夠滿足配置該流策略的ACL資源需求。
通過方法一合并rule規(guī)則為466條后,還可以在此基礎(chǔ)上通過方法二或者方法三進(jìn)一步精簡ACL資源。
方法二:調(diào)整業(yè)務(wù)應(yīng)用范圍,減少業(yè)務(wù)應(yīng)用位置的數(shù)量
在通過方法一合并rule規(guī)則后,可以選擇以下任意一種方式,調(diào)整業(yè)務(wù)應(yīng)用范圍,從而繼續(xù)精簡ACL資源數(shù)量。
將應(yīng)用在接口的業(yè)務(wù)調(diào)整至VLAN
如果應(yīng)用流策略的接口數(shù)量大于這些接口所屬VLAN的數(shù)量,且未應(yīng)用流策略的接口均不屬于這些VLAN,則可以將流策略應(yīng)用到這些接口所屬的VLAN下。調(diào)整應(yīng)用范圍后的ACL資源占用數(shù)量為rule規(guī)則數(shù)量×VLAN數(shù)量,小于之前的rule規(guī)則數(shù)量×接口數(shù)量。否則,建議將應(yīng)用在接口的業(yè)務(wù)調(diào)整至全局。
由前文流策略中的配置可知,GE1/0/1和GE1/0/2屬于VLAN10,GE1/0/3和GE1/0/4屬于VLAN 20,其他接口均不屬于VLAN 10和VLAN 20,此時(shí)VLAN的數(shù)量小于接口的數(shù)量,則可以將流策略應(yīng)用在VLAN 10和VLAN 20下。在通過方法一優(yōu)化后、通過本方法優(yōu)化前,對應(yīng)的配置文件如下:#
acl number 3000
rule 1 permit ip source 10.1.1.00.0.0.255 destination 10.10.1.1 0
rule 2 permit ip source 10.1.2.00.0.0.255 destination 10.10.1.1 0
。。。
rule 801 deny tcp destination-port range80 110
。。。
rule 1000 ip source 192.168.10.1 32
#
traffic classifier c1 operator and precedence 5
if-match acl 3000
#
traffic behavior b1
permit
statistic enable
#
traffic policy p1 match-order config
classifier c1 behavior b1
#
interface GigabitEthernet1/0/1
port link-type access
port default vlan 20
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/2
port link-type access
port default vlan 20
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/3
port link-type access
port default vlan 20
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/4
port link-type access
port default vlan 20
traffic-policyp1 inbound
#在使用方法一的基礎(chǔ)上,使用本方法調(diào)整后,對應(yīng)的配置文件如下:#
acl number 3000
rule 1 permit ip source 10.1.1.00.0.0.255 destination 10.10.1.1 0
rule 2 permit ip source 10.1.2.00.0.0.255 destination 10.10.1.1 0
。。。
rule 801 deny tcp destination-port range80 110
。。。
rule 1000 ip source 192.168.10.1 32
#
traffic classifier c1 operator and precedence 5
if-match acl 3000
#
traffic behavior b1
permit
statistic enable
#
traffic policy p1 match-order config
classifier c1 behavior b1
#
vlan 10
traffic-policyp1 inbound
#
vlan 20
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/1
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/2
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/3
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/4
port link-type access
port default vlan 20
#調(diào)整后,ACL資源占用數(shù)量降低到932條,在合并rule規(guī)則的基礎(chǔ)上進(jìn)一步減少了ACL資源需求數(shù)量。計(jì)算過程為:466(rule規(guī)則數(shù)量)×2(VLAN數(shù)量)×1(入方向)=932。
將應(yīng)用在接口的業(yè)務(wù)調(diào)整至全局
可以將流策略應(yīng)用到全局,并在不應(yīng)用該流策略的接口下各配置一條讓全局的配置不生效的流策略,利用接口優(yōu)先級大于全局優(yōu)先級的原則,實(shí)現(xiàn)相同的配置效果。
由前文流策略中的配置可知,需要在接口的GE1/0/1~GE1/0/4入方向上應(yīng)用流策略。此時(shí),若僅有接口GE1/0/5的入方向不可以應(yīng)用該流策略,且其他所有接口的入方向都可以應(yīng)用該流策略,則可以將該流策略應(yīng)用到全局,并在接口GE1/0/5上應(yīng)用分類規(guī)則相同的不同流策略(例如流策略p2)。
在使用方法一的基礎(chǔ)上,繼續(xù)使用本方法調(diào)整后,對應(yīng)的配置文件如下:
#
acl number 3000
rule 1 permit ip source 10.1.1.00.0.0.255 destination 10.10.1.1 0
rule 2 permit ip source 10.1.2.00.0.0.255 destination 10.10.1.1 0
。。。
rule 801 deny tcp destination-port range80 110
。。。
rule 1000 ip source 192.168.10.1 32
#
acl number 3001
rule 5 permit ip //匹配所有IP報(bào)文
#
traffic classifier c1 operator and precedence 5
if-match acl 3000
#
traffic classifier c2 operator and precedence 10
if-match acl 3001
#
traffic behavior b1
permit
statistic enable
#
traffic behavior b2
permit
#
traffic policy p1 match-order config
classifier c1 behavior b1
#
traffic policy p2 match-order config
classifier c2 behavior b2
#
interface GigabitEthernet1/0/1
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/2
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/3
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/4
port link-type access
port default vlan 20
#
interface GigabitEthernet1/0/5
traffic-policy p2 inbound
#
traffic-policy p1 global inbound
#調(diào)整應(yīng)用范圍后的ACL資源占用數(shù)量降低到467條,在合并rule規(guī)則的基礎(chǔ)上進(jìn)一步減少了ACL資源需求數(shù)量。計(jì)算過程為:466(rule規(guī)則數(shù)量)×1(全局)×1(入方向)+1(rule規(guī)則數(shù)量)×1(接口數(shù)量)×1(入方向)=467。該方法一般應(yīng)用于接入層設(shè)備。當(dāng)設(shè)備所有下行接口都應(yīng)用相同的流策略,且所有上行接口不應(yīng)用流策略時(shí),則可以將該流策略應(yīng)用到全局,并在每個(gè)上行接口應(yīng)用與下行接口不相同的流策略,使全局應(yīng)用的流策略在上行接口不生效。由于下行接口數(shù)量通常大于上行接口數(shù)量,因此通過該方法可以節(jié)省ACL資源。方法三:配置基于流ID的流策略,綜合節(jié)省ACL資源在方法一的基礎(chǔ)上,還可以通過方法三來繼續(xù)減少ACL資源使用數(shù)量。
對于流策略業(yè)務(wù),當(dāng)設(shè)備上不同的接口或VLAN需要配置相同的流分類規(guī)則并對匹配的報(bào)文做相同的動(dòng)作時(shí),為節(jié)省ACL資源,可以將一條流策略拆分成兩條,第一條對報(bào)文按照ACL分類后重標(biāo)記每類報(bào)文的流ID,第二條按照流ID進(jìn)行分類并對匹配同一流ID的報(bào)文進(jìn)行相同的處理。該功能僅適用于應(yīng)用在入方向的流策略。
如果不配置該功能,流策略占用的ACL資源數(shù)量為rule規(guī)則數(shù)量×接口數(shù)量(或VLAN數(shù)量)×1(入方向);配置該功能后,流策略占用的ACL資源數(shù)量為rule規(guī)則數(shù)量×1(全局)×1(入方向)+1(流ID)×接口數(shù)量(或VLAN數(shù)量)×1(入方向)。
配置思路如下:
1. 配置ACL,并指定rule規(guī)則。
本例中,已經(jīng)通過方法一合并rule規(guī)則。合并后的rule規(guī)則如下:
#
acl number 3000
rule 1 permit ip source 10.1.1.00.0.0.255 destination 10.10.1.1 0
rule 2 permit ip source 10.1.2.00.0.0.255 destination 10.10.1.1 0
。。。
rule 801 deny tcp destination-port range80 110
。。。
rule 1000 ip source 192.168.10.1 32
#
2. 配置流分類,按照ACL對報(bào)文進(jìn)行分類。
本例中,已經(jīng)配置流分類c1,用于匹配符合ACL 3000的報(bào)文。
#
traffic classifier c1 operator and precedence 5
if-match acl 3000
#
3. 配置流行為,通過remark flow-id命令重新標(biāo)記報(bào)文的流ID。
配置流行為b3,用于重新標(biāo)記報(bào)文的流ID。例如,重新標(biāo)記流ID為4。
#
traffic behavior b3
remark flow-id 4
#
4. 配置流策略,綁定已配置的流行為和流分類,并應(yīng)用到全局。
配置流策略p3,綁定流分類c1和流行為b3,并應(yīng)用到全局的入方向。
#
traffic policy p3 match-order config
classifier c1 behavior b3
#
traffic-policy p3 global inbound
#5. 配置流分類,通過if match flow-id命令對報(bào)文進(jìn)行分類。
配置流分類c3,匹配流ID為4的報(bào)文。
#
traffic classifier c3 operator and precedence 10
if-match flow-id 4
#6. 配置流行為,以便對匹配同一流ID的報(bào)文進(jìn)行相同的處理。
本例中,已經(jīng)配置流行為b1,用于對報(bào)文進(jìn)行流量統(tǒng)計(jì)。
#
traffic behavior b1
statistic enable
#7. 配置流策略,綁定以配置的流行為和流分類,并應(yīng)用到接口或VLAN上。#
traffic policy p1 match-order config
classifier c3 behavior b1
#
interface GigabitEthernet1/0/1
traffic-policy p1 inbound
#
interface GigabitEthernet1/0/2
traffic-policy p1 inbound
#interface GigabitEthernet1/0/3
traffic-policy p1 inbound
#
interface GigabitEthernet1/0/4
traffic-policy p1 inbound
#最終流策略業(yè)務(wù)的相關(guān)配置如下:#
acl number 3000
rule 1 permit ip source 10.1.1.00.0.0.255 destination 10.10.1.1 0
rule 2 permit ip source 10.1.2.00.0.0.255 destination 10.10.1.1 0
。。。
rule 801 deny tcp destination-port range80 110
。。。
rule 1000 ip source 192.168.10.1 32
#
traffic classifier c1 operator and precedence 5
if-match acl 3000
#
traffic classifier c3 operator and precedence 10
if-match flow-id 4
#
traffic behavior b1
permit
statistic enable
#
traffic behavior b3
remark flow-id 4
#
traffic policy p1 match-order config
classifier c3 behavior b1
#
traffic policy p3 match-order config
classifier c1 behavior b3
#
interface GigabitEthernet1/0/1
port link-type access
port default vlan 10
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/2
port link-type access
port default vlan 10
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/3
port link-type access
port default vlan 20
traffic-policyp1 inbound
#
interface GigabitEthernet1/0/4
port link-type access
port default vlan 20
traffic-policyp1 inbound
#
traffic-policy p3 global inbound
#上述舉例中,配置基于流ID的流策略的功能后,占用的ACL資源降低到470條,在合并rule規(guī)則的基礎(chǔ)上進(jìn)一步減少了ACL資源需求數(shù)量。計(jì)算過程為:466(rule規(guī)則數(shù)量)×1(全局)×1(入方向)+1(流ID)×4(接口數(shù)量)×1(入方向)=470條。
最后再復(fù)習(xí)一下:
1. 首先,推薦先嘗試合并rule規(guī)則,減少rule規(guī)則數(shù)量。
2. 其次,如果對ACL資源精簡數(shù)量要求較高,推薦將應(yīng)用在接口的業(yè)務(wù)調(diào)整至全局,或者配置基于流ID的流策略;如果對ACL資源精簡數(shù)量要求不高,且應(yīng)用流策略的接口數(shù)量大于接口所屬VLAN的數(shù)量,推薦將應(yīng)用在接口的業(yè)務(wù)調(diào)整至VLAN。
責(zé)任編輯:lq6
-
接口
+關(guān)注
關(guān)注
33文章
8575瀏覽量
151015 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2637瀏覽量
99528 -
ACL
+關(guān)注
關(guān)注
0文章
61瀏覽量
11976
原文標(biāo)題:3步搞定交換機(jī)ACL資源不足
文章出處:【微信號:huaweidoc,微信公眾號:華為產(chǎn)品資料】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論