摘抄:https://blog.csdn.net/tryheart/article/details/107822654
ACL
访问控制列表(Access Contorl Lists),是对数据流进行过滤。
ACL的定义
它是路由器和交换机(三层交换机)接口的指令列表(通过接口控制流量),用来控制端口进出的数据包。
访问控制列表里面包含了:匹配关系、条件和查询语句。表只是一个框架结构,在表中会放很多控制语句。
ACL的功能
流量控制、匹配感兴趣的流量
ACL的分类和区别
根据它使用的列表的列表号,按照表号的不同,将他分为两类:
第一类:基于源IP地址进行过滤,基本ACL(标准ACL),编号范围:2000-2999。
第二类:基于源和目的IP地址、源和目的端口(TCP/UDP)、协议类型来进行过滤,高级ACL(扩展ACL),编号范围:3000-3999。
对应用层端口的控制方式,用得比较广泛。
ACL的配置原则:
基于每种协议设置一个ACL(数据是通过什么方式过来的–TCP UDP icmp http)
基于每一个方向设置一个ACL (区分数据的进和出)
基于每个接口设置一个ACL
ACL的工作原理:
1.入站配置ACL:
对过来的数据分组,通过ACL分组进行处理,然后再放到路由器的出口。
2.出站配置ACL
数据进入路由器,通过路由解析后再拒绝或者允许。这种方式消耗路由资源
通常情况下,我们会将ACL配置放置入站口去解决。
ACL的配置
标准ACL 实验1
首先配置两个路由器的 IP 以及缺省路由
acl 2000 建立基本ACL,表号是2000
[Huawei-acl-basic-2000]rule deny source 10.1.1.5 0 配置拒绝规则
默认 rule 5 值越小越优先
进入需要控制流量的接口,这里是 g0/0/1
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 2000 在接口的入方向调用ACL。拒绝 10.1.1.5 这个 IP 通过 g0/0/1 口。
traffic-filter:流量过滤。
inbound:入口
outbound: 出口
[g0/0/1] undo traffic-filter inbound 删除配置命令
高级ACL 实验2
Ping:属于ICMP协议。
acl 3000
rule deny icmp source 10.1.1.2 0 destination 30.1.1.3 0 拒绝C1 ping server 1,但是允许HTTP 和其他协议访问。
rule deny icmp source 10.1.1.3 0 destination 30.1.1.3 0 拒绝PC ping server 1,但是允许HTTP 和其他协议访问。
进入 g0/0/0 口
[Huawei-GigabitEthernet0/0/0]traffic-filter outbound acl 3000 在出口方向调用ACL。拒绝 10.1.1.2 和 10.1.1.3 通过 g0/0/0 口。
因为在 g0/0/0 已经配置了ACL2000了所以不能再继续配置了。
拒绝 Telnet 实验 3
将几个路由器的 IP 以及缺省路由都配置好,再把几个路由器的Telnet 配置好。
ACL 3001
[Huawei-acl-adv-3001]rule deny tcp source 40.1.1.2 0 destination 20.1.1.2 0 destination-port eq telnet
进入第三个路由器的 g0/0/2 口
[Huawei-GigabitEthernet0/0/0]traffic-filter inbound acl 3001 在入口方向调用 ACL。拒绝 40.1.1.2 通过 g0/0/2 口。
所以R3不能Telnet 20.1.1.2 这个口,但是可以Telnet 其他口。
注意点
1.一个接口的同一个方向,只能调用一个ACL;每个端口、每个方向、每条协议只能对应一条访问列表
2.一个ACL里面可以有多个RULE规则,从上往下依次执行;具有严格限制条件的语句应该放在访问列表所有语句的最方面。
3.数据包一旦被某个rule规则匹配,就不再继续往下匹配
4.华为:默认隐含放过所有数据包,在ACL配置时。
5.访问列表不能过滤路由器自己产生的数据,(只能控制外面进来的数据,有一个入和出,自己的数据控制不了。)