ACL(access control list)
为什么要使用访问控制列表:
1、管理网络中逐步增长的IP数据
2、当数据经过路由器时进行过滤

限制网络流量,提高网络性能
提供数据流量控制
为网络访问提供基本的安全层
决定转发或者阻止哪些类型的数据流

通配符掩码位设成0则表示精确匹配。
通配符掩码位设成1则表示任意匹配。

标准ACL:
1、检查源地址
2、通常允许、拒绝的是完整的协议
3、可以使用列表号:1-99、1300-1999
4、标准的访问控制列表只对源地址进行控制
5、列表放置的位置:
     R1  (fa0/0) -------------(fa0/0)R2(fa0/1)------(fa0/0)R3   (由于此处的图没办法贴过来,大家可以看这个标记想象)

从源到目标的方向是:R1的fa0/0-----out---------->在此接口调用将不起作用,原因是访问控制列表仅对穿越路由器的数据包进行过滤,
        对本路由器起源的数据包不作过滤。
      R2的fa0/0-----in------------>结果起作用,但是R1在不能访问R3的同时也不能访问R2了
           fa0/1-----out---------->结果正确
      R3的fa0/0------in----------->结果正确
  结论:标准访问控制列表要尽量应用在靠近目标端

扩展ACL:
1、检查源地址和目的地址
2、通常允许、拒绝的是某个特定的协议
3、可以使用列表号:100-199、2000-2699
4、扩展访问列表既可以控制源地址,又可以控制目标地址
5、列表放置的位置:
 R1  (fa0/0) -------------(fa0/0)R2(fa0/1)------(fa0/0)R3                       

从源到目标的方向是:R1的fa0/0-----out---------->在此接口调用将不起作用,原因是访问控制列表仅对穿越路由器的数据包进行过滤,
        对本路由器起源的数据包不作过滤。
      R2的fa0/0-----in------------>结果正确,且无其他影响
           fa0/1-----out---------->结果正确,且无其他影响
      R3的fa0/0------in----------->结果正确,且无其他影响
结论:扩展访问控制列表要尽量应用在靠近源端,这样可以使一些非法的流量被尽早丢弃,节省中间设备的贷款和CPU资源

访问列表的比较规则:
1、如果一个访问列表有多行语句,通常按顺序从第一条开始比较,然后再往下一条条比较。
2、一个数据包如果与访问列表的一行匹配,则按规定进行操作,不再进行后续的比较。
3、在每个访问列表的最后一行是隐含的deny any语句--意味着如果数据包与所有行都不配的话,将被丢弃。

标准ACL配置:
1、创建ACL
 access-list   access-list-number     {deny|permit}        {source[source-wildcard] | any}    [log]
例:R3(config)#access-list   1   deny  12.1.1.1
      R3(config)#access-list   1 permit  any                   ------这一行不能省略,因为访问控制 最后隐含了一条deny any的规则。
注意:这两行顺序不能颠倒
2、应用ACL
     R3(config)#int   s1/0
     R3(config-if)#ip  access-group  1  in                  -------在接口下调用访问控制列表1 ,针对的是R3的s1/0口的in方向


扩展ACL配置:
1、创建ACL
例:R3(config)#access-list   100   deny    tcp      host   12.1.1.1   host   23.1.1.3     eq    telnet
       协议           源地址             目标地址                 telnet使用的是tcp协议,此处也可写telnet的端口号23
      R3(config)#access-list   100  permit   ip  any   any                   ------隐含的是拒绝所有,这一行的作用是允许其他所有的IP流量
注意:这两行顺序不能颠倒
2、应用ACL
     R3(config)#int   s1/0
     R3(config-if)#ip  access-group  100  in                  -------在接口下调用访问控制列表1 ,针对的是R3的s1/0口的in方向

查看命令:
show ip access-list
show ip interface  

在VTY下使用:在vty下调用是过滤telnet流量

R1(config)#access-list   10   permit    192.168.1.1
R1(config)#line   vty   0   4
R1(config-line)#access-class   10    in

在VTY只能调用标准列表,扩展列表不起作用