5. Манипуляция и классификация

Задачи и инструменты

  • Часто приходится применять определенные действия к некоторому подмножеству объектов (пакетов, маршрутов)

  • Классификация позволяет принять решение о применении действия

  • Манипуляции при принятии решения позволяют изменить объект

  • Инструменты: ACL, Prefix List, Route Map

Access Control List

  • Простейший классификатор, не выполняет манипуляцию

  • Анализирует объекты и выносит вердикт permit/deny:

    • IP-пакеты: адреса источника\назначения, порты TCP\UDP, тип содержимого

    • IP-маршруты: адрес и маска сети\адрес шлюза

    • Кадры Ethernet: MAC источника\назначения, LLC/SPAN вложения

Разновидности:

  • По способу конфигурирования:

    • Нумерованные

    • Именованные

  • По возможностям анализа (только для IPv4):

    • Стандартные

    • Расширенные

  • По типу классифицируемых объектов:

    • IPv4

    • IPv6

    • IEEE 802

    • MPLS

    • DECnet

Вся остальная информация по ACL в CCNA!

Prefix List

  • Классификатор, адаптированный под анализ маршрутов

    • Функционально не отличается от ACL

    • Анализирует IP-адрес (не попадание в эталонную сеть) и длину префикса

Router(config)#ip prefix-list PFL permit 10.10.11.0/24
Router(config)#ip prefix-list PFL seq 5 deny 10.10.12.0/24
  • Для анализа длины префикса используются операторы ge и le

    • Если ни один оператор не задан, требуется точное совпадение длины префикса с маской эталонной сети (частая ошибка настройки)

Router(config)#ip prefix-list EXACT1    permit 10.10.11.0/24
Router(config)#ip prefix-list EXACT2    permit 10.10.11.0/24 ge 24 le 24
Router(config)#ip prefix-list RANGE     permit 10.10.11.0/24 ge 26 le 28
Router(config)#ip prefix-list LONGER    permit 10.10.11.0/24 ge 25
Router(config)#ip prefix-list ORLONGER  permit 10.10.11.0/24 ge 24
Router(config)#ip prefix-list UPTO      permit 10.10.11.0/24 le 28
Router(config)#ip prefix-list DEFAULT   permit 0.0.0.0/0
Router(config)#ip prefix-list ANY-ROUTE permit 0.0.0.0/0 le 32

Cвязь ACL и PFL

  • Префикс-листы удобно использовать для классификации маршрутов

  • Любой префикс-лист можно записать в форме ACL

    • Standard ACL для префикс-листов без операторов

    • Extended ACL для префикс-листов с операторами для анализа маски

    • Исключение - применение с distribute-list в EIGRP и BGP

Route Map

  • Продвинутый инструмент, позволяет:

    • Анализировать различные по природе свойства объекта

    • Выполнять сложные сравнения И\ИЛИ

    • Выполнять манипуляции с анализируемым объектом

  • Как и ACL, имеет упорядоченную структуру блоков и выполнение сравнения в блоках до вынесения явного или неявного вердикта

Блоки Route Map

  • Блоки пронумерованы и выполняются последовательно (сверху вниз)

  • Если в блоке обнаружено совпадение (match), то:

    • Выносится вердикт (permit/deny)

    • Выполняются манипуляции (set)

    • Несколько match-условий в разных строках - разная природа, логика И

    • Несколько match-условий в одной строке - одинаковая природа, логика ИЛИ

route-map MYROUTEMAP permit 10
match {statement 1}
match {statement 2}
set {set statement 1}
set {set statement 2}

route-map MYROUTEMAP deny 20
match {match statement 4}
match {match statement 5}

route-map MYROUTEMAP permit 30
match {match statement 6} {match statement 7}
set {set statement 3}

Route-map Match-условия

  • Route-map может анализировать разные типы объектов, механизм позволяет заказывать сравнение самых разных свойств и объектов

  • Ответственность за разумность сравнения лежит на операторе

Match

Описание

match ip address [prefix-list]

IP-адрес источника\получателя для пакетов, адрес сети и длина префиксов для маршрутов

match ip next-hop [prefix-list]

IP-адрес шлюза для маршрута

match ip route-source

IP-адрес источника маршрута

match ipv6 address [prefix-list]

IPv6-адреса источника\получателя для пакетов, адрес сети и длина префиксов для маршрутов

match metric

Метрика маршрута

match route-type {external|internal|nssa-external|local}

Тип маршрута

match tag

Метка маршрута для RIP/OSPF/EIGRP/BGP

Route-map Set-манипуляции

  • Route-Map может анализировать разные типы объектов, механизм позволяет манипулировать самыми разными свойствами объектов

  • Ответственность за корректность манипуляции лежит на операторе

Match

Описание

set ip next-hop

Задание шлюза для маршрута или для пакета

set ipv6 next-hop

Задание шлюза для маршрута или для пакета IPv6

set metric-type

Задание типа метрики маршрута EIGRP/OSPF

set metric

Задание метрики маршрута

set origin

Задание атрибута BGP

set community

Задание атрибута BGP

set as-path

Задание атрибута BGP

set tag

Задание метки маршрута RIP/EIGRP/OSPF

Конфигурация Route Map

  • Порядок блоков важен, как и в ACL

Router(config)#route-map SET_METRIC_RM permit
Router(config-route-map)#match ip address VIP_USERS_ACL
Router(config-route-map)#set metric 100
Router(config-route-map)#route-map SET_METRIC_RM deny 5
Router(config-route-map)#match ip address TROUBLEMAKERS_ACL
Router(config-route-map)#route-map SET_METRIC_RM
Router#show route-map SET_METRIC_RM

Использование Route Map

  • Policy-Based Routing

  • Редистрибуция между протоколами динамической маршрутизации

  • Фильтрация маршрутов в BGP и манипуляции с ними

    • В IOS нормально работать с BGP можно только с использованием Route Map

Использование PBR

  • PBR позволяет отойти от традиционной табличной маршрутизации

    • Маршрутизация в зависимости от адреса источника

    • Маршрутизация в зависимости от сетевого приложения

    • Загрузка нескольких каналов в Интернет

Настройка PBR

  • Конфигурация Route Map

    • Отбираем нужный трафик условиями match

    • Переопределяем next-hop

      • set ip next-hop - задается connected-адрес next-hop

      • set ip next-hop recursive - задается резолвящийся адрес next-hop

      • set ip default next-hop - PBR срабатывает между специфичным маршрутом и 0.0.0.0/0

      • set interface - задается connected-интерфейс

      • set default interface - аналогично set ip default next-hop

    • Необработанные пакеты отправятся по таблице маршрутизации

  • Применяем Route Map для маршрутизации по политике

    • В контексте входящего интерфейса для транзитного трафика

    • В глобальном контексте для локального трафика

  • Настраиваем динамический контроль PBR

    • Объекты отслеживания (IP SLA, маршруты, интерфейсы, споки)

    • CDP (если не задан объект отслеживания)

Конфигурация PBR Route Map

  • Необработанные пакеты отправляются по таблице маршрутизации

Router(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1
Router(config)#route-map PBR_RM permit
Router(config-route-map)#match ip address LAPTOP
Router(config-route-map)#set ip next hop 2.2.2.2
  • Route Map применяется для транзитного и локального трафика

Router(config)#ip local policy route-map PBR_RM    !для локального трафика
Router(config)#interface gi0/0                     !входящий интерфейс для трафика PBR
Router(config-if)#ip policy route-map PBR_RM

Диагностика PBR

  • Обычная трассировка с устройств

  • Дебаг политик

Router#debug ip policy
Nov 12 20:00:01.302: IP: s=192.168.100.2 (FastEthernet0/1), d=8.8.8.8, len 48, FIB policy match
Nov 12 20:00:01.302: IP: s=192.168.100.2 (FastEthernet0/1), d=8.8.8.8, g=2.2.2.2, len 48, FIB policy routed
Nov 12 20:00:01.503: IP: s=192.168.100.1 (FastEthernet0/1), d=8.8.8.8, len 48, policy rejected -- normal forwarding

Динамический контроль PBR

  • Требуется отслеживать доступность Next Hop

    • Next Hop в connected-маршруте Ethernet будет жив, пока жива запись ARP

    • Можно использовать ICMP-зонд IP SLA или CDP

Router(config)#route-map PBR_RM permit 10
Router(config-route-map)#set ip next-hop 2.2.2.2  !используется cdp
Router(config-route-map)#set ip next-hop verify-availability !Проверка 2.2.2.2 на доступность через CDP
Router(config)#ip sla 1
Router(config-ip-sla)#icmp-echo 2.2.2.2 source-interface gi0/1
Router(config-ip-sla-echo)#frequency 10
Router(config)#ip sla schedule 1 start-time now life forever
Router(config)#track 10 ip sla 1
Router(config-route-map)#set ip next-hop verify-availability 2.2.2.2 10 track 1
Router(config-route-map)#set ip next-hop verify-availability 3.3.3.3 20 track 2

Last updated