3.1 作用
ACl访问控制列表主要有以下两个作用:
-
在路由表时完整可通行的情况下,对流量的放行进行限制
-
抓取路由,进行动作
从路由层面控制住数据的可达性
不管什么访问控制列表,只能针对经过自己的流量失效,本设备始发的流量无效。
3.2 基本ACL
3.2.1 特点
仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。
序列号范围是2000~2999
举例:
[Huawei] acl 2001
[Huawei] rule 5 permit source 192.168.32.1 0 //rule 编号(可不填) 动作 source 源地址 匹配条件
3.3 高级ACL
3.3.1 特点
即可使用IPV4报文的源IP地址、也可使用目的IP地址、IP协议地址、ICMP类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。
序列号范围是3000~3999。
举例:
[Huawei] acl 3001
[Huawei-acl-adv-3001] rule permit tcp source 10.9.8.0 0.0.0.255 destination 10.38.160.0 0.0.0.255 destination-port eq 128 //rule 编号(可不填) 动作 协议名 source 源地址 匹配条件 destination 目的地址 匹配条件 destination-port eq等于/gt大于/lt小于 端口号
3.4 二层ACL
3.4.1 特点
使用报文的以太网帧头信息来定义规则, 如根据源MAC地址、目的MAC地址、二层协议类型等。
序列号范围是4000-4999
举例:
[Huawei] acl 4001
[Huawei-acl-L2-4001] rule permit source-mac 0000-0000-0002 destination-mac 0000-0000-0001 l2-protocol 0x0800 //rule 编号(可不填) 动作 source-mac 源地址(IPV6) destination-mac 目的地址(IPV6)l2-protocol 协议值
-
ARP,对应的协议值为0x0806
-
IP,对应的协议值为0x0800
-
MPLS,对应的协议值为0x8847
-
RARP,对应的协议值为0x8035
-
默认为0xffff
3.5 用户ACL
3.5.1 特点
既可使用IPV4报文的源IP地址,也可使用目的IP地址、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP端口/目的端口配置来定义规则。
注意:只能在NAC特性中使用,当前环境下无法运行。
序列号范围是6000-6031
[Huawei] acl 6000
[Huawei-acl-ucl-6000] rule permit ip destination passthrough-domain www.huawei.com /rule 动作 协议名或值 destination passthrough-domain(仅当动作为permit时才支持配置) 允许报文通过的域名地址)
3.6 命名型ACL
都用数字表示访问控制列表不够直观,增加后期维护的难度,所以推荐在工作中使用字符串来给acl命名。如果未指定ACL类型,默认为高级ACl。
举例:
[Huawei] acl name test 2001
3.6 注意事项
-
任何设备在通信的时候,默认都会使用出接口IP地址作为源IP,必须要注意
-
基本访问控制列表基于源IP做限制,为了精准控制,请尽量靠近目的地配置减少影响
-
ACL至少有一条permit才有意义
-
ACL必须要被接口使用才可以发挥作用
-
ACL应用到接口是一定要注意inbound或者outbound
3.7 ACL匹配顺序
-
按rule-id从小到大的顺序进行匹配
-
自动排序(auto)
-
使用”深度优先“的原则进行匹配
ACL类型 匹配原则 基本ACL 1. 带VPN实例的规则优先 2. 源地址范围小的优先 3. rule-id小的优先 高级ACL 1. 带VPN实例规则优先 2. 制指定了IP协议承载的协议类型规则优先 3. 源IP地址范围小的优先 4. 目的IP地址范围小的优先 5. 四层端口号范围小的规则优先 6. rule-id小的优先
-
补充:ICMP协议
互联网控制报文协议,使网络层的一个重要协议,协议号为1,用于在网络设备间传递各种差错和控制信息。
ICMP Echo Request和ICMP Echo Reply分别用来查询和响应某些信息,进行差错校验。
当网络设备无法访问目标时,会自动发送ICMP目的不可达报文到发送端设备。
消息和编码:
详细:
运用实例:
-
ping :
主要运用type8请求消息发起检测,type0回复消息来检测网络连通性。
-
tracert:
-
先向目的端发送一个UDP报文,TTL值为1,端口号为一个几乎任何一个应用程序都不会用到的端口号。
-
第一跳收到后判断自己是不是目的地址,将TTL值减1后,为0,丢弃报文并向源发送一个ICMP超时报文(报文中含有第一跳地址)。源端收到后,再向目的端发送一个UDP报文,TTL值+1。
-
重复上述过程直至目的端收到源端发送的报文,判断出目的地址为本机IP地址,则处理此报文,按照端口号寻找占用此端口号的上层协议,但因为没有应用程序使用此端口号,则向源端回复一个ICMP端口不可达报文。
-
源端收到后判断出UDP报文已经到达目的端,则停止tracert,从而得到源端到目的端所经过的路径。
-
路由重定向的条件
-
数据包的源IP地址和该报走的下一跳IP地址属于同一个网段。
-
数据包的入接口和路由指定后的出接口是同一个接口。
系统开启重定向功能。
路由器基本上会直接忽略ICMP重定向报文,不同的系统对此也有不同的处理方案,像windows会添加一项主机路由,而某些系统也会直接忽略。
ICMP重定向使得客户端的管理工作减少,路由功能降低,但会使路由器的负担增加。像一些要处理数十个子网数千台主机业务的服务器,如果要支持重定向,那么服务器将会维护一个非常庞大的路由表,会及其浪费服务器的性能。而且,ICMP重定向也存在着安全隐患。