访问控制列表(ACL) 是应用在应用在路由接或多层交换机接口上的指令列表(即规则),这些规则可以告诉路由器哪些包需要拒绝,哪些包可以接收,基本的工作原理:ACL使用包过滤技术,在路由器上第三层,第四层包头中的信息(工作在第三层上的设备有Router,用来逻辑寻址,第三层封装的是包,包括原IP,目标IP。第四层负责可靠和不可靠传输的,工作在第四层上的协议有TCP/UDP,封装的是段,包括原端口和目标端口。) 根据定义好的规则,对包进行过滤,从而达到访问控制的作用。

        访问控制列表有两个方向:

               进(In) :以到达路由器接口的数据包,将被路由器处理

               出(out):已经过路由器的处理,正离开路由器

       访问控制列表的匹配规则:

               接口应用了规则以后,那么路由器将对数据包应用该规则进行顺序检查

               如果匹配第一条规则,则不再往后检查,路由器决定丢包还是通过。

               如果不匹配第一条规则,依次往后进行检查(一直如此)。

                                                                                  //匹配 ==  是否关系到此数据包

                                                                                 // 如果一直没有匹配,默认拒绝所有

             所以规则放置的顺序是很重要的,一旦找到了一条匹配规则则不再往下进行匹配,所以条件越具体的越往上写 如:子网掩码比较长的向上写(一个IP的子网掩码就比一个网段的子网掩码长),路由器上定义ACL,本路由器并不受次ACL的限制。

       ACL 有两种基本控制类型

              ①标准访问控制列表

                    标准访问控制列表根据源IP进行允许或拒绝数据包,标准访问控制列表列表号是

      1~99

                   命令:创建ACL  access-list  access-list-number   {permit | deny}  source IP 

  source-wildcard

                 accss-list-number :ACL列表标号

                source 数据包源IP地址

               source-wildcard:反码,可以通过 255.255.255.255 减去 子网掩码得到

               permit | deny 允许或者拒绝。

               如:access-list 1 permit192.168.18.0 0.0.0.255  //允许192.168.18.0网段的数据包通过。

                      access-list 1 deny host 192.168.18.32  //拒绝主机192.168.18.32 通过,当仅有一个  主机时可用host(主机)代替。 

                      access-list 1 deny any  //拒绝所有,这里any 代表的是所有。

              ②扩展访问控制列表

                      扩展访问控制列表是根据协议类型以及源IP,目标IP地址进行访问控制

              如:access-list 101 permit  ip 192.168.18.0 0.0.0.255 192.168.19.0 0.0.0.255

                     access-list 101 deny ip any any

 //允许网络192.168.18.0/24 访问网络 192.168.19.0/24流量通过,而拒绝其他任何流量。

                    access-list 101 deny tcp 192.168.18.0 0.0.0.255 192.168.19.0 0.0.0.255 eq 21

                    access-list 101 permit ip any any

//拒绝网络192.168.18.0/24 访问 192.168.19.0/24 的FTP服务器,允许其他所有。

                    access-list 101 deny icmp 192.168.18.0  0.0.0.255 192.168.18.32 echo

                    access-list 101 permit ip any any

//拒绝网络192.168.18.0/24的主机ping通192.168.18.32 允许其他所有

 echo是ping命令去的时候包,而echo-replay 是ping命令回来的包

 

    标准访问控制列表和扩展访问列表都不能删除单条ACL语句,都是全部删除。

  

上面只是定义了ACL规则,要将ACL规则应用于接口ACL才会生效,命令如下:

      ip access-group access-list-number {in | out}

取消接口上ACL的应用

   no ip access-group access-list-name {in | out}