8.4. Настройка ACL
Назначение
Списки контроля доступа (ACL) предназначены для идентификации трафика по различным признакам. Списки ACL могут идентифицировать трафик по таким полям как IP-адрес, MAC-адрес, и запрещать или разрешать передачу пакетов с определенными признаками.
ВНИМАНИЕ!
Данный функционал предназначен только для анализа транзитного трафика. Для анализа трафика, получателем которого будет являться сам коммутатор, необходимо использовать CoPP ACL.
Описание
ACL может иметь несколько записей управления доступом (ACE), которые представляют собой команды, сопоставляющие свои записи с полями пакетов.
MAC ACL может фильтровать пакеты по MAC-SA и MAC-DA, а MAC-адрес может быть замаскирован, настроен как идентификатор узла, или настроен как любой (чтобы фильтровать все MAC-адреса). MAC ACL также может фильтровать другие поля L2, такие как COS, VLAN-ID, INNER-COS, INNER-VLAN-ID, тип L2, тип L3.
IPv4 ACL может фильтровать пакеты по IP-SA и IP-DA, а IP-адрес может быть скрыт, или настроен как идентификатор узла, или настроен как любой, чтобы фильтровать все IPv4-адреса. IPv4 ACL также может фильтровать другие поля L3, такие как DSCP, протокол L4 и поля L4, такие как порт TCP, порт UDP и так далее.
Настройка
В примере ниже на порте “eth-0-1” использован ACL на основе MAC-адреса, чтобы разрешить пакеты с MAC-адресом источника 0000.0000.1111
и запретить любые другие пакеты. На порте “eth-0-2” использован ACL по IPv4-адресу, чтобы разрешить пакеты с IP-адресом источника 1.1.1.1/24
и запретить любые другие пакеты.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Создание ACL
MAC-ACL:
Switch(config)# mac access-list mac
Switch(config-mac-acl)# permit src-mac host 0000.0000.1111 dest-mac any
Switch(config-mac-acl)# deny src-mac any dest-mac any
Switch(config-mac-acl)# exit
IPv4-ACL:
Switch(config)# ip access-list ipv4
Switch(config-ip-acl)# permit any 1.1.1.1 0.0.0.255 any
Switch(config-ip-acl)# deny any any any
Switch(config-ip-acl)# exit
Шаг 3: Создание классов и привязка ACL
Switch(config)# class-map cmap1
Switch(config-cmap)# match access-group mac
Switch(config-cmap)# exit
Switch(config)# class-map cmap2
Switch(config-cmap)# match access-group ipv4
Switch(config-cmap)# exit
Шаг 4: Настройка политик и привязка классов
Switch(config)# policy-map pmap1
Switch(config-pmap)# class cmap1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map pmap2
Switch(config-pmap)# class cmap2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Шаг 5: Применение политик на портах
Switch(config)# interface eth-0-1
Switch(config-if)# service-policy input pmap1
Switch(config-if)# exit
Switch(config-if)# interface eth-0-2
Switch(config-if)# service-policy input pmap2
Switch(config-if)# exit
Шаг 6: Выход из режима “Global config”
Switch(config)# end
Шаг 7: Проверка
Switch# show running-config
mac access-list mac
10 permit src-mac host 0000.0000.1111 dest-mac any
20 deny src-mac any dest-mac any
!
ip access-list ipv4
10 permit any 1.1.1.0 0.0.0.255 any
20 deny any any any
!
class-map match-any cmap1
match access-group mac
!
class-map match-any cmap2
match access-group ipv4
!
policy-map pmap1
class cmap1
!
policy-map pmap2
class cmap2
!
interface eth-0-1
service-policy input pmap1
!
interface eth-0-2
service-policy input pmap2
!