ACL 访问控制列表
功能:
1.访问限制 ----在路由器流量进或出的接口上匹配流量,之后对其进行限制
2.定义感兴趣流量
ACL 简介:
1.自上而下,逐一匹配,上条匹配按上条执行,不在查看下条
2.ACL 列表的调用分为in(先匹配ACL再查看路由)和out(先查看路由,再匹配ACL)
3.必须满足金字塔形结构
4.ACL 分为 标准 ACL 和 扩展 ACL
5.(在cisco中末尾隐含拒绝所有 ;在华为设备中若没有匹配到ACL 则执行默认处理)
ACL的分类
标准ACL : 关注 源IP 地址 ,在使用时尽量靠近目标
扩展ACL: 关注 源 IP 、 目标IP、 协议, 在使用时尽量靠近源(不能再源之上,ACL不能过滤自身产生的流 量)
ACL 部署:ACL 中匹配后缀参数为通配符 0代表固定位 1代表任意位
INTEGER<2000-2999>标准ACL使用的 -----一个编号是一张表
INTEGER<3000-3999> 扩展ACL使用的
实现:pc1不能访问pc3和pc4,pc2可以访问pc3和pc4
R1配置静态路由
[r1]int g 0/0/0
[r1-GigabitEthernet0/0/0]ip add 192.168.1.1
[r1]int g 0/0/1
[r1-GigabitEthernet0/0/1]ip add 192.168.2.1 24
[r1]ip route-stat 192.168.3.0 24 192.168.2.2
R2配置静态路由
[r2]int g 0/0/1
[r2-GigabitEthernet0/0/1]ip add 192.168.3.1 24
[r2]int g 0/0/0
[r2-GigabitEthernet0/0/0]ip add 192.168.2.2 24
[r2]ip route-static 192.168.1.0 24 192.168.2.1
给pc配上ip和网关,使用pc1测试互通性
ping 192.168.2.2
ping 192.168.3.1
ping 192.168.3.3
使用pc2测试互通性
ping 192.168.3.2
ping 192.168.3.3
设置ACL,因为是标准ACL所以,需要尽量靠近目标,所以需要在R2路由器上配置
[r2]acl 2000 `创建编号为2000的ACL`
[r2-acl-basic-2000]rule deny source 192.168.1.2 0.0.0.0 `拒绝1.2这个ip`
注:ACL使用的是通配符,OSPF使用的是反掩码;区别在于通配符可以0和1穿插,类似下面
[r2-acl-basic-2000]rule deny source 192.168.1.2 0.255.0.255
拒绝一个地址范围
[r2-acl-basic-2000]rule deny source 192.168.1.2 0.0.0.255
默认以5为步调增加需要,便于插入规则
允许192.168.1.3这个地址访问,因为是自上而下执行,所以我们需要写到rule 10 前面,要不然就会被拒绝访问
[r2-acl-basic-2000]rule 9 permit source 192.168.1.3 0
注意:ACL在定制完成后,必须到接口上进行调用才能生效工作
[r2]int GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]traffic-filter ?
inbound Apply ACL to the inbound direction of the interface `入向`
outbound Apply ACL to the outbound direction of the interface `出向`
[r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
规则写好了可以测试了,先使用PC1测试
使用PC2测试
实现:pc1不能访问pc3但是可以访问pc4,pc2可以正常访问(这个时候就必须使用扩展ACL来实现了)
我们先把刚刚我们设置的acl删除
[r2-acl-basic-2000]undo rule 5
[r2-acl-basic-2000]undo rule 9
[r2-acl-basic-2000]undo rule 10
[r2-acl-basic-2000]undo rule 15
因为是扩展ACL所以我们需要在靠近源的地方设置,所以我们需要在R1上设置,根据华为的默认特性所以我们只需要设置拒绝权限就行了
[r1]acl 3000
[r1-acl-adv-3000]rule deny ip source 192.168.1.2 0 destination 192.168.3.2 0
deny:拒绝 permit:允许
ip:协议
source:源
destination:目标
在接口上调用
[r1]int g 0/0/0
[r1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000
使用pc1测试
使用pc2测试
实现:设置192.168.2.1 不能ping 192.168.2.2,但是192.168.2.2可以ping 192.168.2.1
[r2]acl 3000
[r2-acl-adv-3000]rule deny icmp source 192.168.2.1 0 destination 192.168.2.2 0 i
cmp-type echo
[r2]int GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]traffic-filter inbound acl 3000
测试
实现:R1远程登录R2(因为华为的pc不能使用远程登录,所以用路由器测试)
telnet远程登录:基于tcp下的23号端口进行;
条件:
1.登录与登录设备间可以正常通讯
2.被登录设备开启远程登录服务
配置登录用的账号和密码
[r2]aaa
[r2-aaa]local-user ppx password cipher 123456 `账号、密码`
[r2-aaa]local-user ppx service-type telnet `该账号的功能`
[r2-aaa]local-user ppx privilege level ?
INTEGER<0-15> Level value
[r2-aaa]local-user ppx privilege level 15 `设置用户具有的权限,15是最大权限`
[r2]user-interface vty 0 4 `虚拟登录接口`
[r2-ui-vty0-4]authentication-mode aaa `调用认证`
拒绝R1远程登录R2
[r2]acl 3000
[r2-acl-adv-3000]rule deny tcp source 192.168.2.1 0.0.0.0 destination 192.168.2.2 0 destination-port eq 23
[r2]int g 0/0/0
[r2-GigabitEthernet0/0/0]traffic-filter inbound acl 3000