Конфигурация списков контроля доступа (ACL)
Обзор
Список контроля доступа (ACL) — это список записей контроля доступа (ACE). Каждая запись ACE в ACL определяет права доступа, которые разрешены или запрещены.
Каждый пакет, поступающий на устройство, сравнивается с каждой записью ACE в каждом ACL в порядке их определения. Устройство продолжает проверку до тех пор, пока не будет найдено совпадение. Если совпадение не найдено и устройство достигает конца списка, пакет отклоняется. По этой причине наиболее часто встречающиеся правила следует размещать в начале списка.
Устройство прекращает проверку правил после нахождения совпадения.
Примечание: Если совпадения нет, пакет отклоняется (неявный запрет). Поэтому ACL, предназначенный для запрета нескольких выбранных пакетов, должен содержать хотя бы один фильтр разрешения с более низким приоритетом; в противном случае весь трафик будет отклонен из-за фильтра неявного запрета по умолчанию.
Топология
Рисунок 15-22: Пример топологии ACL
Конфигурация IPv4 ACL
#configure terminal | Перейти в режим конфигурации. |
(config)#ip access-list T1 | Создать IP ACL с именем T1. |
(config-ip-acl)#deny any host 1.1.1.1 any | Создать правило доступа для запрета IP-пакетов с исходным адресом 1.1.1.1. |
(config-ip-acl)#permit any host 1.1.1.1/24 any | Создать правило доступа для разрешения IP-пакетов с исходным адресом 1.1.1.1. |
(config-ip-acl)#exit | Выйти из режима конфигурации списка доступа. |
(config)#interface xe10 | Перейти в режим конфигурации интерфейса. |
(config-if)#no switchport | Настроить интерфейс как уровень 3. |
(config-if)#ip address 1.1.1.3/24 | Назначить IP-адрес. |
(config-if)#ip access-group T1 in | Применить группу доступа T1 для входящего трафика на интерфейсе. |
(config-if)#end | Выйти из режима конфигурации интерфейса и режима конфигурации. |
Проверка
Используйте команды ниже для проверки количества совпадений. Когда входящие IP-пакеты достигают интерфейса xe10 с исходным адресом 1.1.1.1, количество совпадений для правила доступа 10 увеличивается на количество отправленных пакетов.
#show ip access-lists T1
IP access list T1
10 deny any host 1.1.1.1 any [match=200]
20 permit any 1.1.1.1/24 any
default deny-all
Когда входящие IP-пакеты достигают интерфейса xe10 с исходным адресом в диапазоне от 1.1.1.1 до 1.1.1.254, количество совпадений для правила доступа 20 увеличивается на количество отправленных пакетов.
#show ip access-lists T1
IP access list T1
10 deny any host 1.1.1.1 any
20 permit any 1.1.1.1/24 any [match=2000]
default deny-all
Примечание: Используйте команду clear ip access-list counters
для сброса статистики всех ACL или clear ip access-list <access-list name> counters
для сброса статистики конкретного ACL.
Конфигурация ICMP ACL
#configure terminal | Перейти в режим конфигурации. |
(config)#ip access-list icmp-acl-01 | Создать IP ACL с именем icmp-acl-01. |
(config-ip-acl)#10 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11 fragments | Создать правило доступа с порядковым номером 10 для запрета ICMP-пакетов с определенного источника к определенному назначению с DSCP значением af11. Примечание: Порядковый номер является необязательным. |
(config-ip-acl)#20 permit icmp 1.1.1.1/24 2.2.2.2/24 precedence flash | Создать правило доступа с порядковым номером 20 для разрешения ICMP-пакетов с определенного источника к определенному назначению с приоритетом flash. |
(config-ip-acl)#exit | Выйти из режима конфигурации списка доступа. |
(config)#interface xe10 | Перейти в режим конфигурации интерфейса. |
(config-if)#no switchport | Настроить интерфейс как уровень 3. |
(config-if)#ip address 1.1.1.3/24 | Назначить IP-адрес. |
(config-if)#ip access-group icmp-acl-01 in | Примени ть группу доступа icmp-acl-01 для входящего трафика на интерфейсе. |
(config-if)#end | Выйти из режима конфигурации интерфейса и режима конфигурации. |
Проверка
Используйте команды ниже для проверки количества совпадений. Когда входящие IP-пакеты достигают интерфейса xe10 с исходным адресом 1.1.1.X, адресом назначения 2.2.2.X, значением DSCP af11 и являются фрагментированными, количество совпадений для правила доступа 10 увеличивается на количество отправленных пакетов.
#show ip access-lists icmp-acl-01
IP access-list icmp-acl-01
10 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11 [match=200]
20 permit icmp 1.1.1.1/24 2.2.2.2/24 precedence flash
default deny-all
Когда входящие IP-пакеты достигают интерфейса xe10 с исходным адресом 1.1.1.X, адресом назначения 2.2.2.X и значением приоритета flash, количество совпадений для правила доступа 20 увеличивается на количество отправленных пакетов.
#show ip access-lists icmp-acl-01
IP access-list icmp-acl-01
10 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11
20 permit icmp 1.1.1.1/24 2.2.2.2/24 precedence flash [match=200]
default deny-all
Примечание: Используйте команду clear ip access-list counters
для сброса статистики всех ACL или clear ip access-list <access-list name> counters
для сброса статистики конкретного ACL.
Нумерация записей в списке доступа
Вы можете изменить порядковые номера правил в списке доступа.
Примечание: Перенумерация ACL, прикрепленного к интерфейсу управления, очищает счетчики ACL, связанные с ним.
#configure terminal | Перейти в режим конфигурации. |
(config)#ip access-list icmp-acl-01 | Перейти в режим конфигурации списка доступа для ACL icmp-acl-01. |
(config-ip-acl)#resequence 100 200 | Перенумеровать список доступа, начиная с порядкового номера 100 и увеличивая на 200. |
(config-ip-acl)#1000 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11 | Перенумеровать конкретное правило доступа 100 с порядковым номером 1000. |
(config-ip-acl)#exit | Выйти из режима конфигурации списка доступа. |
Проверка
До перенумерации:
#show access-lists icmp-acl-01
IP access list icmp-acl-01
10 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11 log
20 permit icmp 1.1.1.1/24 2.2.2.2/24 precedence flash
default deny-all
После перенумерации списка доступа, начиная с порядкового номера 100 и увеличивая на 200:
#show access-lists icmp-acl-01
IP access list icmp-acl-01
100 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11 log
300 permit icmp 1.1.1.1/24 2.2.2.2/24 precedence flash
default deny-all
По сле перенумерации конкретного правила доступа 100 с порядковым номером 1000:
#show access-lists icmp-acl-01
IP access list icmp-acl-01
300 permit icmp 1.1.1.1/24 2.2.2.2/24 precedence flash
1000 deny icmp 1.1.1.2/24 2.2.2.2/24 dscp af11 log
default deny-all
Конфигурация IPv6 ACL
#configure terminal | Перейти в режим конфигурации. |
(config)#ipv6 access-list ipv6-acl-01 | Создать IPv6 ACL с именем ipv6-acl-01. |
(config-ipv6-acl)#11 deny ip any any flow-label 100 | Создать правило доступа с порядковым номером 11 для запрета IPv4 инкапсулированных пакетов в IPv6 с любым исходным адресом и любым адресом назначения с меткой потока 100. |
(config-ipv6-acl)#default permit-all | Обновить правило по умолчанию для разрешения всего трафика. |
(config-ipv6-acl)#exit | Выйти из режима конфигурации списка доступа. |
(config)#interface xe10 | Перейти в режим конфигурации интерфейса. |
(config-if)#no switchport | Настроить интерфейс как уровень 3. |
(config-if)#ipv6 address 1:1::1:3/64 | Назначить IPv6-адрес. |
(config-if)#ipv6 access-group ipv6-acl-01 in | Применить группу доступа ipv6-acl-01 для входящего трафика на интерфейсе. |
(config-if)#end | Выйти из режима конфигурации интерфейса и режима конфигурации. |
Проверка
Используйте команды ниже для проверки количества совпадений. Когда входящие IPv6-пакеты достигают интерфейса xe10 с инкапсулированными IPv4-пакетами с меткой потока 100, количество совпадений для правила доступа 11 увеличивается на количество отправленных пакетов.
#show ipv6 access-lists ipv6-acl-01
IPv6 access-list ipv6-acl-01
11 deny ip any any flow-label 100 [match=1000]
default permit all
Для всех остальных IPv6-пакетов вызывается правило доступа по умолчанию, и количество совпадений увеличивается на количество отправленных пакетов.
#show ipv6 access-lists ipv6-acl-01
IPv6 access-list ipv6-acl-01
11 deny ip any any flow-label 100
default permit-all [match=2000]
Примечание: Используйте команду clear ipv6 access-list counters
для сброса статистики всех IPv6 ACL или clear ipv6 access-list <ipv6 access-list name> counters
для сброса статистики конкретного IPv6 ACL.