什么是访问控制列表
访问控制列表(ACL)是应用在路由器接口的指令列表(即规则)。这些指令列表用来告诉路由器,哪些数据包可以接收,哪些数据包需要拒绝。
访问控制列表的作用
通过在路由器或多层交换机上配置ACL来控制对特定网络资源的访问。
访问控制列表的工作原理
ACL是一组规则的集合,它应用在路由器的出或入接口上。如果对接口应用了访问控制列表,那么路由器将对数据包应用改组规则进行顺序检查。
如果匹配第一条规则,则不再往下检查,路由器将决定该数据包允许通过或拒绝通过。
如果不匹配第一条规则,则依次往下检查,直到有任何一条规则匹配,路由器将决定该数据包允许通过或拒绝通过。
如果最后没有任何一条规则匹配,则路由器根据默认的规则将丢弃该数据包。
访问控制列表的类型
1.标准访问控制列表
标准访问控制列表根据数据包的源IP地址来允许或拒绝数据包。标准访问控制列表的访问控制列表号是1~99。
2.扩展访问控制列表
扩展访问控制列表根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包。扩展访问控制列表的访问控制列表号是100~199。
3.命名访问控制列表
命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号。
4.定时访问控制列表
定时访问控制列表提供基于时间的附加控制特性,定义在什么时间允许或拒绝数据包。
访问控制列表的配置
1.标准访问控制列表的配置
(1)创建ACL
Router(config)# access-list access-list-number {permin | deny} source [source-wildcard]
(2)删除已建立的标准ACL
Router(config)#no access-list access-list-number
(3)将接口应用于接口
Router(config-if)#ip access-group access-list-number {in | out}
(4)在接口上取消ACL的应用
Router(config-if)#no ip access-group access-list-number {in | out}
(5)查看ACL配置
Router#show access-list
2.扩展访问控制列表的配置
(1)创建ACL
Router(config)# access-list access-list-number {permin | deny} protocol {source source-wildcard destination destination-wildcard} [operator operan]
(2)删除已建立的扩展ACL
Router(config)#no access-list access-list-number
(3)将ACL应用于接口
Router(config-if)#ip access-group access-list-number {in | out}
(4)在接口上取消ACL的应用
Router(config-if)#no ip access-group access-list-number {in | out}
3.命名访问控制列表的配置
(1)创建ACL
Router(config)#ip access-list {standard | extended} access-list-name
如果是标准命名ACL,命令如下:
Router(config-std-nacl)# [ Sequence-Number ] {permit | deny} source [source-wildcard]
如果是扩展命名ACL,命令如下:
Router(config-ext-nacl)# [ Sequence-Number ] { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan ]
(2)删除已建立的命名ACL
Router(config)# no ip access-list {standard |extended} access-list-name
(3)将ACL应用于接口
Router(config-if)#ip access-group access-list-name {in | out}
(4)在接口上取消命名ACL的应用
Router(config-if)#no ip access-group access-list-name {in | out}
4.定时访问控制列表的配置
(1)定义时间范围的名称
Router(config)#time-range time-range-name
(2)指定该时间范围何时生效
定义一个时间周期
Router(config-time-range)#periodic days-of-the-week hh:mm to [days-of-the-week] hh:mm
定义一个绝对时间
Router(config-time-range)# absolute [start hh:mm day month year] [end hh:mm day month year]
(3)在扩展ACL中引入时间范围
Router(config)# access-list access-list-number {permit | deny} protocol {source source-wildcard destination destination-wildcard} [operator operan] time-range time-range-name
(4)将ACL应用于接口
Router(config-if)# ip access-group access-list-number {in | out}