一、ACL概述
1、作用
读取三层、四层头部信息,根据预先定义好的规则对流量进行筛选和过滤。 三层头部信息:源、目IP 四层头部信息:TCP/UDP协议、源、目端口号
2、接口应用的方向
①入方向:流量将要进入本地路由器,将要被本地路由器处理 ②出方向:已经被本地路由器处理过,流量将离开本地路由器 补: 策略做好后,在入接口和出接口调用的区别: 入接口调用的话是对本地路由器生效,出接口调用的话,对本地路由器不生效,流量将在数据发过程中的下一台设备生效。
3、处理原则
①路由条目只会被匹配一次 ②路由条目在ACL访问控制列表中匹配的顺序是从上往下匹配的 ③路由条目在ACL访问控制列表隐含一个放行所有 ④ACL访问控制列表至少要放行一条路由条目 
4、类型
4.1 标准访问控制列表
- 只能基于源地址进行过滤
- 标准访问控制列表号是2000-2999
- 调用原则:靠近目标
4.2 扩展访问控制列表
- 可以根据源、目IP,TCP/UDP协议,源、目端口号进行过滤
- 相比较标准访问控制列表,流量控制的更精准
- 调用原则:靠近源
二、实验配置
1、实例1
(1)拓扑图如下图所示,要求用标准访问控制列表,使vlan10客户机不能访问vlan20客户机。  (2)L2-SW1上的配置: [L2-SW1]vlan bat 10 20 //创建vlan10、20 [L2-SW1]int e0/0/1 //进入接口e0/0/1 [L2-SW1-Ethernet0/0/1]port link-type access //设置接口链路类型为access [L2-SW1-Ethernet0/0/1]port default vlan 10 //将接口e0/0/1 划分进vlan10 [L2-SW1-Ethernet0/0/1]int e0/0/2 //进入接口e0/0/2 [L2-SW1-Ethernet0/0/2]port link-type access //设置接口链路类型为access [L2-SW1-Ethernet0/0/2]port default vlan 20 //将接口e0/0/2 划分进vlan20 [L2-SW1-Ethernet0/0/2]int e0/0/3 //进入接口e0/0/3 [L2-SW1-Ethernet0/0/3]port link-type access//设置接口链路类型为access [L2-SW1-Ethernet0/0/3]port default vlan 10//将接口e0/0/3 划分进vlan10 [L2-SW1-Ethernet0/0/3]int e0/0/4 //进入接口e0/0/4 [L2-SW1-Ethernet0/0/4]port link-type access //设置接口链路类型为access [L2-SW1-Ethernet0/0/4]port default vlan 20 //将接口e0/0/4 划分进vlan20 [L2-SW1-Ethernet0/0/4]int g0/0/1 //进入接口g0/0/1 [L2-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk [L2-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单,放行所有vlan
R1上的配置: [R1]int g0/0/0 //进入接口g0/0/0 [R1-GigabitEthernet0/0/0]undo shutdown //开启物理接口 [R1-GigabitEthernet0/0/0]int g0/0/0.1 //进入子接口g0/0/0.1 [R1-GigabitEthernet0/0/0.1]dot1q termination vid 10 //封装方式为802.1q,接口g0/0/0.1划分进vlan10 [R1-GigabitEthernet0/0/0.1]ip add 192.168.10.1 24 //设置IP地址及子网掩码长度 [R1-GigabitEthernet0/0/0.1]arp broadcast enable //开启ARP广播功能 [R1-GigabitEthernet0/0/0.1]int g0/0/0.2//进入子接口g0/0/0.2 [R1-GigabitEthernet0/0/0.2]dot1q termination vid 20 //封装方式为802.1q,接口g0/0/0.2划分进vlan20 [R1-GigabitEthernet0/0/0.2]ip add 192.168.20.1 24 //设置IP地址及子网掩码长度 [R1-GigabitEthernet0/0/0.2]arp broadcast enable //开启ARP广播功能
(3)客户机配置IP地址及子网掩码长度 Client1:IP;192.168.10.10,网关;192.168.10.1,子网掩码:255.255.255.0 Client1:IP;192.168.20.10,网关;192.168.20.1,子网掩码:255.255.255.0 Client1:IP;192.168.10.20,网关;192.168.10.1,子网掩码:255.255.255.0 Client1:IP;192.168.20.20,网关;192.168.20.1,子网掩码:255.255.255.0
(4)此时client客户机之间相互都可以ping通,如下图所示。  (5)接着为了让vlan10客户机不能访问vlan20客户机,我们通过在R1上用ACL标准访问控制列表实现,具体配置如下:
[R1]acl 2000 //创建标准访问控制列表,列表号为2000 [R1-acl-basic-2000]rule deny source 192.168.10.0 0.0.0.255 //拒绝192.168.10.0网段的路由条目(子网掩码为反掩码) [R1-acl-basic-2000]rule permit source any //放行其他路由条目 [R1]int g0/0/0.2 //进入子接口g0/0/0.2 [R1-GigabitEthernet0/0/0.2]traffic-filter outbound acl 2000 //选择在子接口g0/0/0.2出接口上调用acl列表号2000
(6)验证测试是否成功,如下图所示,client1均不能与其它三台客户机通信,表明已成功用标准访问控制列表实现。   
2、实例2
(1)拓扑图如下图所示,要求用扩展访问控制列表,禁止client1客户机访问ftp服务器。 
(2)L2-SW1上的配置: [L2-SW1]vlan bat 10 20 //创建vlan10、20 [L2-SW1]int e0/0/1 //进入接口e0/0/1 [L2-SW1-Ethernet0/0/1]port link-type access //设置接口链路类型为access [L2-SW1-Ethernet0/0/1]port default vlan 10 //将接口e0/0/1 划分进vlan10 [L2-SW1-Ethernet0/0/1]int e0/0/2 //进入接口e0/0/2 [L2-SW1-Ethernet0/0/2]port link-type access //设置接口链路类型为access [L2-SW1-Ethernet0/0/2]port default vlan 20 //将接口e0/0/2 划分进vlan20 [L2-SW1-Ethernet0/0/2]int e0/0/3 //进入接口e0/0/3 [L2-SW1-Ethernet0/0/3]port link-type access//设置接口链路类型为access [L2-SW1-Ethernet0/0/3]port default vlan 10//将接口e0/0/3 划分进vlan10 [L2-SW1-Ethernet0/0/3]int e0/0/4 //进入接口e0/0/4 [L2-SW1-Ethernet0/0/4]port link-type access //设置接口链路类型为access [L2-SW1-Ethernet0/0/4]port default vlan 20 //将接口e0/0/4 划分进vlan20 [L2-SW1-Ethernet0/0/4]int g0/0/1 //进入接口g0/0/1 [L2-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk [L2-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单,放行所有vlan
AR1上的配置: [R1]int g0/0/0 //进入接口g0/0/0 [R1-GigabitEthernet0/0/0]undo shutdown //开启物理接口 [R1-GigabitEthernet0/0/0]int g0/0/0.1 //进入子接口g0/0/0.1 [R1-GigabitEthernet0/0/0.1]dot1q termination vid 10 //封装方式为802.1q,接口g0/0/0.1划分进vlan10 [R1-GigabitEthernet0/0/0.1]ip add 192.168.10.1 24 //设置IP地址及子网掩码长度 [R1-GigabitEthernet0/0/0.1]arp broadcast enable //开启ARP广播功能 [R1-GigabitEthernet0/0/0.1]int g0/0/0.2//进入子接口g0/0/0.2 [R1-GigabitEthernet0/0/0.2]dot1q termination vid 20 //封装方式为802.1q,接口g0/0/0.2划分进vlan20 [R1-GigabitEthernet0/0/0.2]ip add 192.168.20.1 24 //设置IP地址及子网掩码长度 [R1-GigabitEthernet0/0/0.2]arp broadcast enable //开启ARP广播功能 [R1]int g0/0/1 //进入接口g0/0/1 [R1-GigabitEthernet0/0/1]undo shutdown //开启物理接口 [R1-GigabitEthernet0/0/1]ip address 12.1.1.1 24 [R1]ip route-static 0.0.0.0 0 12.1.1.2 //配置静态路由,添加目的网段 0.0.0.0,子网掩码长度,下一跳入接口12.1.1.2
AR2上的配置: [R2]int g0/0/0 //进入接口 g0/0/0 [R2-GigabitEthernet0/0/0]ip add 12.1.1.2 24 //设置IP地址及子网掩码长度 [R2-GigabitEthernet0/0/0]int g0/0/1 //进入接口 g0/0/1 [R2-GigabitEthernet0/0/1]ip add 202.10.10.2 24 //设置IP地址及子网掩码长度 [R2]ip route-static 0.0.0.0 0 12.1.1.1 //设置静态路由,默认路由,下一跳入接口12.1.1.1
(3)客户机上的配置:与上面实例1相同。
(4)FTP服务器上的配置:   (5)测试客户机和服务器是否能连通,能联通后继续下一步做策略。 client1:ping 202.10.10.100  client2:ping 202.10.10.100  client3:ping 202.10.10.100  client4:ping 202.10.10.100  (6)接着为了禁止client1客户机访问ftp服务器。我们通过在R1上用ACL扩展访问控制列表实现,具体配置如下:
[R1]acl 3000//创建扩展访问列表,列表号3000 [R1-acl-adv-3000]rule deny tcp source 192.168.10.10 0.0.0.0 destination 202.10.10.100 0.0.0.0 destination-port eq 21 //禁止client访问ftp服务器 [R1-acl-adv-3000]rule permit tcp source any destination any destination-port eq 21 //放行其他客户机访问ftp服务器 [R1-acl-adv-3000]rule permit ip source any destination any //放行其他客户机网络流量 [R1]int g0/0/0.1 //进入接口g0/0/0.1 [R1-GigabitEthernet0/0/0.1]traffic-filter inbound acl 3000 //选择在入接口上调用列表号3000
(7)此时在让client1去ping服务器,虽然是ping通的,但是不可以上传和下载文件。   而在client2、3、4上也是可以ping通的,而且可以上传和下载文件。 
三、总结
1、一定要搞清楚访问控制列表在接口应用的方向。 2、标准访问控制列表调用原则:靠近目标;而扩展访问列表调用原则靠近源。
|