8.5. Настройка расширенного ACL (Extended ACL)
Назначение
Расширенный IPv4 ACL предназначен для идентификации трафика одновременно по информации L2 и L3 уровня.
Описание
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 и так далее (подробнее см. в Справочнике по командам).
MAC ACL и IPv4 ACL в расширенном IPv4 ACL могут быть настроены поочередно в произвольном порядке.
Настройка
В данном примере на интерфейсе “eth-0-1” использован расширенный ACL по IPv4, чтобы разрешить пакеты с MAC-адресом источника 0000.0000.1111
и значением COS, равным 2
, разрешить все TCP-пакеты и запретить любые другие пакеты.

Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Создание ACL
Switch(config)# ip access-list ipxacl extend
Switch(config-ex-ip-acl)# permit src-mac host 0000.0000.1111 dest-mac any cos 2
Switch(config-ex-ip-acl)# permit tcp any any
Switch(config-ex-ip-acl)# deny src-mac any dest-mac any
Switch(config-ex-ip-acl)# end
Применение расширенного ACL при помощи команды access-group
Созданный расширенный ACL может быть применен для входящего или исходящего трафика на интерфейсе коммутатора с помощью команды access-group.
Шаг 3: Применение политики на порте
Switch(config)# interface eth-0-1
Switch(config-if)# access-group input ipxacl
Switch(config-if)# exit
Шаг 4: Выход из режима “Global config”
Switch(config)# end
Шаг 5: Проверка
Switch# show running-config
ip access-list ipxacl extend
10 permit src-mac host 0000.0000.1111 dest-mac any cos 2
20 permit tcp any any
30 deny src-mac any dest-mac any
!
interface eth-0-1
access-group input ipxacl
!
Switch# show access-list ip
ip access-list ipxacl extend
10 permit src-mac host 0000.0000.1111 dest-mac any cos 2
20 permit tcp any any
30 deny src-mac any dest-mac any
Применение ACL при помощи class-map и policy-map
Созданный расширенный ACL может быть применен для входящего или исходящего трафика на интерфейсе коммутатора с помощью применения на интерфейсе политики (service-policy), настроенной с использованием class-map, ссылающегося на ACL и policy-map, ссылающегося на class-map. Преимуществом данного подхода является возможность более гибкой настройки и возможность включения статистики по срабатыванию строк ACL с помощью команды statistic enable для class-map в настройке policy-map.
Шаг 4: Создание класса и привязка ACL
Switch(config)# class-map cmap
Switch(config-cmap)# match access-group ipxacl
Switch(config-cmap)# exit
Шаг 5: Настройка политики и привязка класса
Switch(config)# policy-map pmap
Switch(config-pmap)# class cmap
Switch(config-pmap-c)# statistics enable
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Шаг 6: Применение политики на порте
Switch(config)# interface eth-0-1
Switch(config-if)# service-policy input pmap
Switch(config-if)# exit
Шаг 7: Выход из режима “Global Config”
Switch(config)# end
Шаг 8: Проверка
Switch# show running-config
ip access-list ipxacl extend
10 permit src-mac host 0000.0000.1111 dest-mac any cos 2
20 permit tcp any any
30 deny src-mac any dest-mac any
!
class-map match-any cmap
match access-group ipxacl
!
policy-map pmap
class cmap
statistics enable
!
interface eth-0-1
service-policy input pmap
!
Switch# show access-list ip
ip access-list ipxacl extend
10 permit src-mac host 0000.0000.1111 dest-mac any cos 2
20 permit tcp any any
30 deny src-mac any dest-mac any