ACL在处理IP分片时的情况

ACL在处理IP分片时的情况

 

IP分片除了首片报文外,后续的分片都未包含L4信息(如TCP/UDP端口号、TCP标志等),这使得ACL很难适当地处理它们。用FO(Fragment Offset)表示分片偏移量,未分片报文和分片的首片的分片偏移量FO=0,后续分片的分片偏移量FO>0。在ACL配置中,将FO>0(即非首片的分片报文)用fragments选项来标识。

ACL对分片报文的处理方式见下表:


表1 ACL对分片报文的处理方式

 

举例来说,可能更容易理解一些:



表2 ACL对分片报文的处理示例

 

下面再举几个例子来具体说明:

举例1 对下面的访问列表1001来说:

ip access-list extended 1001

10 permit tcp any host 191.15.20.1 eq 80

20 deny ip any any

exit

对于目的IP为主机地址191.15.20.1的TCP报文来说:

(1)如果报文的是未分片报文,或者是分片报文的首片:当报文的目的端口为80时,与规则10相匹配,报文被允许通过;当报文的目的端口不是80时,与规则20相匹配,报文被拒绝通过。

(2)如果报文是分片报文的非首片:由于规则10的动作为permit,因此认为报文与规则10相匹配,报文被允许通过。

 

举例2 对下面的访问列表1002来说:

ip access-list extended 1002

10 deny tcp any host 191.15.20.1 eq 80

20 permit ip any any

exit

对于目的IP为主机地址191.15.20.1的TCP报文来说:

(1)如果报文的是未分片报文,或者是分片报文的首片:当报文的目的端口为80时,与规则10相匹配,报文被拒绝通过;当报文的目的端口不是80时,与规则20相匹配,报文被允许通过。

(2)如果报文是分片报文的非首片:由于规则10的动作为deny,因此认为报文与规则10不匹配,转下一条规则,从而与规则20相匹配,报文被允许通过。

从上面两个例子可以看出,ACL对非首片分片报文的处理中,permit规则是宽松匹配,而deny规则是严格匹配。

 

举例3 对下面的访问列表1003来说:

ip access-list extended 1003

10 deny tcp any host 191.15.20.1 fragments

20 permit tcp any host 191.15.20.1 eq 80

30 deny ip any any

exit

 

对于目的IP为主机地址191.15.20.1的TCP报文来说:

(1)如果报文的是未分片报文,或者是分片报文的首片:当报文的目的端口为80时,与规则20相匹配,报文被允许通过;当报文的目的端口不是80时,与规则30相匹配,报文被拒绝通过。

(2)如果报文是分片报文的非首片,正好与规则10相匹配,报文被拒绝通过。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s