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 и так далее.

Настройка

image

Рис. 8.2 Конфигурация сети

В примере ниже на порте “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
!