| 教学过程: 【回顾】:OSPF协议的原理是什么?具体的配置过程呢? 【项目引入】:小李公司的新项目已经部署到后期,但是客户提出了新的要求,需要对内部主机上网行为做过滤策略,只允许部分用户可以访问互联网资源,其他用户不能访问外部资源。 7.1任务一:ACL技术的应用 7.1.1 预备知识 (1)ACL概念 u 为什么要用ACL? (1) 当网络流量不断增长的时候,对数据流要进行管理和限制 (2) 作为通用判别标准应用到不同的场合 u 什么是ACL ACL(访问控制列表)是一种对经过路由器的数据流进行判断、分类和过滤的方法。 u ACL的作用 常见的ACL的应用是将ACL应用到接口上。其主要作用是根据数据包与数据段的特征来进行判断,决定是否允许数据包通过路由器转发,其主要目的是对数据流量进行管理和控制。 我们还常使用ACL实现策略路由和特殊流量的控制。在一个ACL中可以包含一条或多条特定类型的IP数据报的规则。ACL可以简单到只包括一条规则,也可以是复杂到包括很多规则。通过多条规则来定义与规则中相匹配的数据分组。 u ACL应用的场合 ACL作为一个通用的数据流量的判别标准还可以和其他技术配合,应用在不同的场合:防火墙、QOS与队列技术、策略路由、数据速率限制、路由策略、NAT等。 (2) ACL的分类 访问控制列表分为两种类型: (1) 标准ACL u 只针对数据包的源地址信息作为过滤的标准而不能基于协议或应用来进行过滤。即只能根据数据包是从那里来的来进行控制,而不能基于数据包的协议类型及应用来对其进行控制。 u 只能粗略的限制某一类协议,如IP协议。 (2) 扩展ACL u 可以针对数据包的源地址、目的地址、协议类型及应用类型(端口号)等信息作为过滤的标准。即可以根据数据包是从那里来、到那里去、何种协议、什么样的应用等特征的来进行精确地控制。 u 能精确针对某一种协议。 【注意】:ACL可被应用在数据包进入路由器的接口方向,也可被应用在数据包从路由器外出的接口方向。并且一台路由器上可以设置多个ACL。但对于一台路由器的某个特定接口的特定方向上,针对某一个协议,如IP协议,只能同时应用一个ACL。 (3)ACL的工作流程  下面以应用在外出接口方向(outbound)的ACL为例说明ACL的工作流程: u 首先数据包进入路由器的接口,根据目的地址查找路由表,找到转发接口(如果路由表中没有相应的路由条目,路由器会直接丢弃此数据包,并给源主机发送目的不可达消息)。 u 确定外出接口后需要检查是否在外出接口上配置了ACL,如果没有配置ACL,路由器将做与外出接口数据链路层协议相同的2层封装,并转发数据。 u 如果在外出接口上配置了ACL,则要根据ACL制定的原则对数据包进行判断,如果匹配了某一条ACL的判断语句并且这条语句的关键字如果是permit,转发数据包。 u 如果匹配了某一条ACL的判断语句并且这条语句的关键字如果不是permit,而是deny则丢弃数据包。 【总结】:以上ACL内部的处理过程总的来说,就是自上而下,顺序执行,直到找到匹配的规则,拒绝或允许。 (4) ACL的判别标准  ACL可以使用的判别标准包括:源IP、目的IP、协议类型(IP、UDP、TCP、ICMP)源端口号、目的端口号。ACL可以根据这五个要素中的一个或多个要素的组合来作为判别的标准。总之,ACL只能根据IP包及TCP或UDP数据段中的信息来对数据流进行判断,即根据第3层及第4层的头部信息进行判断。 (5) 标准ACL和扩展ACL的比较  u 对于标准ACL,对数据包的控制是基于源IP地址的,可以针对数据包的源地址决定允许或拒绝数据包的通过,针对的是整个TCP/IP协议簇的所有数据包,其编号号码范围从1到99。 u 对于扩展ACL,对数据包的控制可以基于源IP地址、目的IP地址、协议类型、传输层端口号等信息,可以针对数据包的源与目的、协议类型及应用类型来决定允许或拒绝数据包的通过,可以对数据包进行精确的分类与控制,其编号号码范围从100到199。 (6) ACL的规则 u 按照由上到下的顺序执行,找到第一个匹配后既执行相应的操作,然后跳出ACL而不会继续匹配下面的语句。所以ACL中语句的顺序很关键,如果顺序错误则有可能效果与预期完全相反。 u 末尾隐含为deny全部,意味着ACL中必须有明确的允许数据包通过的语句,否则将没有数据包能够通过。 u ACL可应用于IP接口或某种服务,ACL是一个通用的数据流分类与判别的工具,可以被应用到不同的场合,常见的应用为将ACL应用在接口上或应用到服务上。 u 在引用ACL之前,要首先创建好ACL,否则可能出现错误。 u 对于一个协议,一个接口的一个方向上同一时间内只能设置一个ACL,并且ACL配置在接口上的方向很重要,如果配置错误可能不起作用。 (7)在什么地方配置ACL  虽然ACL应用在路由器的入接口或出接口都可以达到相同的效果,但是为了避免不必要的数据流量,ACL应被配置在接近数据源的路由器上。 7.1.2 ACL的配置及应用  通配符的作用:  在ACL的判别条件中使用一个IP地址与通配符来指定匹配的范围。 u 通配符中为“0”的位代表被检测的数据包中的地址位必须与前面的IP地址相应位一致才被认为满足了匹配条件。 u 而通配符中为“1”的位代表被检测的数据包中的地址位是否与前面的IP地址相应位一致都认为满足了匹配条件。 u 如果要对特定主机进行匹配则需要匹配IP地址中所有位,所以通配符为0.0.0.0,代表必须匹配所有位才认为满足了匹配条件。 u 如果想指定匹配所有地址可使用IP地址与通配符为 0.0.0.0 255.255.255.255,其中IP地址0.0.0.0代表所有网络地址,而通配符255.255.255.255代表不管数据包中的IP地址是什么都满足匹配条件。所以0.0.0.0 255.255.255.255 意为接受所有地址并且可简写为any。 u 对于特定子网网段范围的匹配,其计算方式与子网划分与子网掩码的计算类似但“0”与“1”的含义相反。 (1)标准ACL配置示例  本例中ACL 1 只允许源地址为172.16.0.0网段的主机通过,并且ACL1被应用在接口Fei_1/1与Fei_1/2的外出方向。而处于172.16.3.0与处于172.16.4.0两个网段内的主机也不能访问非172.16.0.0网络的主机,原因是一般的数据通讯都是双向的,回来的数据包被ACL拒绝导致通讯不能正常进行。 控制Telnet访问:  使用命令line telent access-class access-list-number 来引用一个ACL并作用在路由器的telnet服务上。利用ACL针对地址限制进入的 vty 连接。 (2)配置扩展ACL  其中:access-list-number 为ACL列表号,号码范围为100-199 { permit | deny }为关键字,必选项Protocol为协议类型,包括:协议类型----协议类型包括Ip 、Udp、Tcp、Icmp。source source-wildcard为源地址及源地址掩码。[operator port]传输层的源端口号。destination destination-wildcard为目的地址及目的地址掩码[ operator port ]传输层的目的端口号。[ established ]只有当协议类型为TCP时可用,其含义为允许从源到目的建立TCP连接并传输数据而不允许其他连接的建立。 在接口配置模式下使用命令Router(config-if)# ip access-group access-list-number { in | out }将ACL应用到接口上。 u 扩展ACL配置示例:  本例子中首先配置编号为101 的扩展ACL,拒绝从172.16.4.0/24网段发出的到达172.16.3.0/24网段的TCP端口号为21(FTP)的数据流。 u 显示ACL:show ip access-list 1 在特权模式下使用命令show ip access-list 可显示IP ACL的具体内容。 7.1.3 任务拓展 上机完成P143:图7-11。 |