Хорошо

Policy-based Routing (PBR). Описание и пример конфигурации Популярное

Последний ответ фев 05, 2021 15:46:59 744 2 11 0 3

        Все запущенные на устройстве динамические протоколы маршрутизации (OSPF, ISIS, ..) строят собственные таблицы маршрутизации, основываясь на информации, полученной от соседних устройств (на которых также данные протоколы запущены) и считают метрики (cost) до каждой известной сети.

    Далее маршрутизатор строит основную таблицу маршрутизации, в которую попадают известные статические и динамические маршруты, а также непосредственно подключенные сети. Если о сети известно из нескольких источников, например, по OSFP и статически, маршрутизатор (в общем случае) выбирает только один маршрут исходя из лучшего параметра preference. Чем меньше preference, тем маршрут считается более предпочтительным. Все протоколы маршрутизации и типы маршрутов имеют заранее определенные preference (значения по умолчанию можно посмотреть здесь).

    Таблица маршрутизации в общем виде сопоставляет адреса назначения сети (destination) с выходными интерфейсами на устройстве, или другими словами с адресами портов соседних устройств (next hop).

    Но бывают ситуации, когда оптимальный с точки зрения таблицы маршрутизации маршрут (обладающий лучшим значением preference и cost) является не подходящим под конкретную задачу. Да, можно изменить preference у всего протокола маршрутизации с заданного по умолчанию на нужную величину, изменить метрику стоимости. Но это может перестроить всю таблицу маршрутизации.

    А если задача более узкая: изменить next hop конкретного маршрута, не меняя таблицу маршрутизации в целом? К данной задаче также относится следующий кейс: у компании два канала доступа к сети Интернет через разных провайдеров. Один канал основной и является маршрутом по умолчанию для всех внутренних пользователей. Второй канал – резервный, работает только в случае отказа основного канала (хотя полностью оплачивается провайдеру). Трафик пользователей увеличивается, и полосы пропускания основного канала перестает хватать. Можно его расширить, а можно эффективно и гибко использовать полосу резервного канала путем перемаршрутизации трафика заданных пользователей с основного в резервный.

    Одним из наиболее подходящих механизмов для этого является Policy-based routing (PBR). PBR – это технология, предоставляющая возможность гибкой маршрутизации трафика на основании политик, определенных пользователем (администратором сети).


PBR бывает следующих типов:

   - Local PBR. Применяется только к локально сгенерированным пакетам (например, пакеты ICMP);

    - Interface PBR. Применяется только к входящим пакетам, полученным от других устройств.

    - SPR. Интеллектуальная политика маршрутизации на основе качества каналов связи.

    

PBR может классифицировать трафик по следующим признакам:

    - ACL (в том числе ACL6);

    - номер VLAN;

    - Исходный MAC-адрес;

    - MAC-адрес назначения;

    - Приоритет 802.1p, DSCP;

    - Тип протокола 3-го уровня (IP / IPv6);

    - Входящий интерфейс;

    - Исходящий интерфейс;

    - SYN Флаг в заголовке TCP-пакета;

    и не только.

     

    PBR обрабатывает пакеты до проверки основной таблицы маршрутизации.

В случае наличия PBR, маршрутизатор сначала анализирует пакет на соответствие заданных администратором в PBR признаков и сразу перенаправляет пакет согласно настройке. Если же пакет не соответствует ни одному из указанных в PBR признаков, маршрутизатор перенаправляет пакет в соответствие с основной таблицей маршрутизации.

    

Пример.

Для примера конфигурирования PBR можно рассмотреть следующую схему:

Пример сети. PBR

Маршрутизатор R1 имеет 2 подключения к провайдерам (ISP1-основной канал и ISP2-резервный соответственно). Оба провайдера знают о некой сети в Интернет 192.168.1.0 /24 (с хостом 192.168.1.1).

На R1 настроены маршруты по умолчанию в оба провайдера с лучшим параметром preference к ISP1. Только в случае недоступности ISP1 (10.0.0.1), R1 перестраивает маршрут по умолчанию на ISP2 (172.16.0.1).

Задача: локальный сегмент R1 должен направлять весь трафик к ISP1, кроме хоста с IP адресом 1.1.1.20 (PC2). Трафик от 1.1.1.20 должен выходить через ISP2.


Таблица маршрутизации R1. Маршрут по умолчанию 10.0.0.1 (ISP1):

Таблица маршрутизации


Если запутить команду tracert с PC1 и PC2, то будет видно, что трафик идет через ISP1 (10.0.0.1):

Трассировка от PC1 (до PBR)

Трассировка от PC2 (до PBR)


Настройка PBR на R1.

Шаг 1. Выделить нужный трафик с помощью ACL. Нужный трафик - это трафик от PC2 (1.1.1.20)

acl number 2000  

 rule 5 permit source 1.1.1.20 0


Шаг 2. Классифицировать трафик для PBR. Для этого выполнить команду traffic classifier и выбрать нужный ACL.

traffic classifier toISP2 operator or

 if-match acl 2000


Шаг 3. Задать поведение для класифицированного трафика. Выполнить команду traffic behavior в которой изменить next hop (явно указать ip адрес ISP2).

traffic behavior toISP2

 redirect ip-nexthop 172.16.0.1


Шаг 4. Необходимо связать классификатор и поведение. Для этого объединить в политике настроенные ранее classifier и behavior:

traffic policy toISP2

 classifier toISP2 behavior toISP2


Шаг 5. Применить политику к интерфейсу:


interface GigabitEthernet0/0/2

 traffic-policy toISP2 inbound


На этом настройка PBR закончена.


При проверке трафик от PC1 без изменений ведет через ISP1, а вот трафик от PC2 уже ведет через ISP2 (172.16.0.1):

Трассировка PC1 (после PBR)

Трассировка PC2 (после PBR)


PBR открывает администратору большие возможности по гибкому управлению трафиком.


Спасибо за прочтение.


Для подготовки использовался Huawei Configuration Guide - IP Unicast Routing (ссылка)



  • x

Sergo_Stepanov
Опубликовано 2021-2-5 15:46:59
Отличная статья с хорошим примером.
Снимаю шляпу, очень информативно и наглядно.

По ссылке пример с тремя линками и выбором на основании протокола www
https://support.huawei.com/enterprise/en/doc/EDOC0100585934/ccc21e9/example-for-configuring-interface-pbr
Развернуть
  • x

VictorSergeevich
VictorSergeevich Опубликовано 2021-2-5 16:31 (0) (0)
Добрый день! Спасибо за отзыв и за ссылку. По ссылке интересный пример разбирается.  

Комментарий

Выполните вход в систему, чтобы ответить на пост. Вход | Регистрация
Отправить

Внимание! В целях защиты правовых интересов Вас, сообщества и третьих лиц, не публикуйте любой материал, содержащий политические высказывания, порнографию, упоминание азартных игр, употребление наркотиков, а также материал, нарушающий коммерческую тайну или содержащий персональные данные пользователей. Также не предоставляйте данные от вашей учетной записи. Вы будете нести ответственность за все действия, выполняемые под вашим аккаунтом. Подробная информация: “Пользовательское соглашение.”

My Followers

Авторизуйтесь и пользуйтесь всеми преимуществами участника!

Вход

Заблокировать
Вы уверены, что хотите заблокировать этого пользователя?
Пользователи из вашего черного списка не могут комментировать ваши посты, не могут упоминать вас, не могут отправлять личные сообщения.
Напоминание
Пожалуйста, привяжите свой мобильный номер чтобы получить бонус за приглашение.