Policy-based Routing (PBR), как основное назначение (Часть 1)

    Что такое Policy-based Routing (PBR)
    Policy-based routing (PBR) перевод данного словосочетания несет смысл такого характера, как маршрутизация на основе определенных политик (правил, условий), которые являются относительно гибкими и устанавливаются Администратором. Другими словами это технология предоставляет условия гибкой маршрутизации (если смотреть на технологию с первоочередной ее задачи), по источнику или назначению пакета.
    Где применяется
    Применение данной технологии очень часто используется для организации избыточности в небольших офисах, при нескольких каналах связи с «вешним миром», «гуглится» примерно таким запросом (PBR 2 ISP). Ну, или другими аналогичными. Если вы «погуглите» то для избыточности нужно будет помимо PBR еще такие штуки как Tracking, SLA, на них я сильно внимание не буду заострять, как сейчас так и в дальнейшей части статьи.


    Кратко про SLA и tracking — это две технологии, точнее связка двух технологий (в нашем случае), которые генерируют различного рода icmp трафик (при заданных условиях), это я про SLA, и выполняют мониторинг данного генератора, а это про tracking.

    Так же PBR находит применение в настройках динамических протоколах маршрутизации (к примеру BGP; OSPF;EIGRP)для фильтрации и redistributions (перенаправления) роутов ну и мелочей типа изменение метрики маршрутов и т.п., и в статической маршрутизации (раскроется ниже), В построение механизмов улучшение качества сервисов (QoS). Возможно, что-то забыл, уж не обессудьте. В дальнейшем, в статье, я не буду раскрывать тему применения PBR в BGP, QoS, OSPF.
    Основы конструкции
    Собственно карта выглядит таким образом:
    Route-map namemap permit 5
    match int fa0/0
    set ip default next-hop 10.10.10.1

    Разберем по порядку:
    Первая строка (route-map namemap [permit | deny] [sequence-number]) содержит непосредственно команду которая открывает нашу карту (route -map), далее идет имя карты (namemap), для дальнейшего применение к политике этой карты затем идет permit (так как мы хотим, что бы трафик при выполнении условии описанных ниже выполнял действие). Т.е. идет перенаправление пакетов на шлюз 10.10.10.1. Вместо параметра permit может выступать параметр deny, но он не так часто применяется. В большей степени он применяется только при redistributions (перенаправления), в динамических протоколах маршрутизации, а если быть точнее, наоборот, при deny не производить redistributions (перенаправления). Для нижеуказанного условия карты, последним параметром идет sequence-number он у нас 5 т.е. порядковый номер карты, он удобен для логического представления карт с одним и тем же именем. Так же для удобства администрирования карты (удаления в частности).

    Вторая строка (match interface fa0/0), содержит условие, для какого трафика применять нашу карту. В нашем случае, у нас будет применяться весь трафик проходящий через интерфейс маршрутизатора fastethernet0/0. Тут можно по различным критериям делать выборку, как правило, все рисуют карту по access-lists (листам доступа) т.е. рисуют access-list с параметрами для каких сетей применять карту. Примеры access-lists с легким комментарием представлены ниже.
    access-list 101 permit ip 192.168.0.0 0.0.0.255 any
    ### этот access-list примененный к route-maps будет выбирать трафик сети 192.168.0.0/24
    до любого назначения.
    А при применении такого access-lists
    access-list 101 deny ip 192.168.0.0 0.0.0.255 host 192.168.2.44
    access-list 101 deny ip 192.168.0.0 0.0.0.255 192.168.1.0 0.0.0.31
    access-list 101 permit ip 192.168.0.0 0.0.0.255 any
    ### в первой строчке не будет перенаправлять трафик до хоста 192.168.2.44
    ### по второй строке так же не будет перенаправлять на сеть 192.168.1.0/27
    ### ну и по третьей строке будет применять для всего остального трафика, сети 192.168.0.0/24.


    Так же добавить хочется что параметр match повторяющийся, т.е. выборку можно делать по нескольким критериям. К примеру метим по access-lists, и параллельно по размеру пакета match length min max, где min max это диапазон размера пакета от и до). И еще маленькое дополнение к этому параметру он не является обязательным. Другими словами если не делать выборку по критериям, то карта будет применяться ко всем пакетам, проходящим через интерфейс на который мы применим нашу карту маршрутизации.

    Переходя к следующему параметру, скажу, что если вы выполните подкоманду set ? то помощь, вам покажет много значений, в основном эти значения направлены на опять же динамические протоколы маршрутизации. На данный момент я решил их не касаться (я планирую написать статьи про динамическую маршрутизацию, там и вернемся к ним). А перейдем сразу к set ip

    Мы взяли в пример set ip default next-hop 10.10.10.1
    Тут мы опять же рассмотрим ключевое слово default, оно означает, что если не будет роутов в глобальной таблице маршрутизации информации о сети назначения пакета, то будет отрабатывать наша карта и пакет будет отправлен на следующий шаг в данном случае 10.10.10.1.
    Можно написать явный set ip next-hop 10.10.10.1 и тогда пакет в не зависимости от глобальной таблицы будет перенаправлен на наш next-hop, т.е. пакет попавший в критерий что он пришел на интерфейс fa0/0, отправится на 10.10.10.1 и он уже будет решать что с этим пакетом делать.

    Далее рассматривая параметр set ip, можно задать следующий шагом(next-hop) как определенный ip адрес, для последующей маршрутизации, так непосредственно интерфейс. К примеру set ip next-hop interface Dialer1), это удобно когда у вас, к примеру не статический адрес на next-hop-е, а динамический и вы не можете явно прописать адрес 3-го уровня, ну или если вы забыли какой ip адрес у вас на интерфейсе и вам лень посмотреть. Как было подмечено ниже в комментариях, не стоит указывать интерфейсы, на которых прописана сеть с большим количеством хостов в сети, другими словами использовать стоит при point to point сети (с префиксов 30 ).Другие параметры set ip, используются для изменения параметров ip пакета. Установка маркирования приоритета пакета в QoS(set ip precedence 3), или сброса параметра пакета don’t fragments (set ip df 0), что позволит установить размер пакета, какой нужен маршрутизаторам для дальнейшей передачи по каналам связи.
    Остается мелочь повесить route-map на интерфейс через который приходят пакеты нуждающиеся в перенаправлении пакетов в отличие от дефолтного маршрута глобальной таблицы маршрутизации. И получится такой листинг
    Route-map namemap permit 5
    match int fa0/0
    set ip default next-hop 10.10.10.1

    interface FastEthernet0/0
    encapsulation dot1Q 20
    ip address 192.168.0.1 255.255.255.0
    ip policy route-map namemap


    Прошу заметить, что данная конфигурация не совсем правильная в нашем случае, хотя рабочая. Тут сами подумайте, чем она не корректна, и какие условия нужно изменить.

    Послесловие:
    В этой части я попытался раскрыть азы PBR и как он работает с пакетами. Если у меня это получилось не внятно, прошу указать на ошибки. Буду очень признателен. В части 2 я опишу еще несколько моментов касающихся PBR, и приведу примеры построения маршрутизации, для конкретных случаев.

    UPD вот собственно и попытка продолжения часть 2

    Материал для статьи брался из головы, так что литературу указать не смогу, разве что www.

    P.S статья эта была в песочнице, мне кто-то дал приглашение на хабр, но так как я был в офлайне долгое время приглашение утратило силу свою. хочу сказать спасибо товарищу который дал инвайт. сейчас я по приглашению smartov, мы с ним знакомы по другому ресурсу в сети. Ему так же благодарность за приглашение.

    Posted by Mario
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 55

      0
      я сперва подумал, что неправильно прочитал ник amarao ))
        0
        Негодуэ!
        0
        я тоже как то был удивлен читать комментарий который мне не знаком под моим ником :)
          +1
          Может быть не Police а Policy?
            0
            да вы правы очепятался.
            0
            Держите в карму, по возможности переносите в блог Cisco
              0
              поддерживаю. больше статей хороших и разных, эту — в блог cisco.
                –1
                Оно как бы логично — в Циско, однако предлагаю смотреть ширше, ведь PBR — это не частная технология Циско, а просто один из способов маршрутизации.
                  +1
                  команды здесь цискарные… хотя, пусть автор решает
                0
                перенес. возможность переносить появилась :)
                  +2
                  А ещё довольно интересная тема — балансировка с помощью pbr.
                  access-list 10 permit 0.0.0.0 255.255.255.254
                  access-list 20 permit 0.0.0.1 255.255.255.254

                  route-map RLB-RAD permit 10
                  match ip address 10
                  set ip next-hop 172.23.8.249
                  route-map RLB-RAD permit 20
                  match ip address 20
                  set ip next-hop 172.23.8.250

                  тут балансировка идёт по чётному/нечётному ип-адресу.
                  • UFO just landed and posted this here
                    • UFO just landed and posted this here
                        0
                        ну не скажи) трафик от одного клиента в таком случае хрен знает как пойдёт)

                        к тому же тут есть вариации типа
                        access-list 10 permit 0.0.0.0 255.255.255.248
                        access-list 20 permit 0.0.0.1 255.255.255.248
                        access-list 30 permit 0.0.0.2 255.255.255.248
                        access-list 40 permit 0.0.0.3 255.255.255.248
                        access-list 50 permit 0.0.0.4 255.255.255.248
                        access-list 60 permit 0.0.0.5 255.255.255.248
                        access-list 70 permit 0.0.0.6 255.255.255.248
                        access-list 80 permit 0.0.0.7 255.255.255.248

                        ну и роут-мапы соответствующие…
                        полезно, когда нужно балансировать трафик более плавно и между большим числом каналов/железок, хотя в этом наверное редко возникает необходимость)
                      –2
                      Для знающих циску в статье ничего нового, а для остальных — дремучий лес.
                        0
                        ну с учетом того, что я щевал каждый основной параметр карт маршрутизации, то статья не претендует на высокго уровня значимость.
                        сейчас начинаю писать статью о непосредственном применении карт. т.е. где и как применяется с примерами.
                        так что если кого то интересует какой либо аспект прошу отпишитесь. раскрою.
                        а так буду оперироваться на вопросы встречающиеся на форумах…
                          –1
                          ждем-с)
                          0
                          Неправда.
                          +1
                          Очень скомкано и трудно доступно. Если бы не знал о чем идет речь ничего бы не понял :)
                          IMHO, самый простой метод знакомства с PBR — это разбор небольшого работающего конфига с двумя ISP.
                            +1
                            ну во второй части раскрою непосредственно на примерах с описание м что и как…
                            в том числе и балансировку по 2-м провам, просто тут тема есть про балансировку… вот и думаю трогать ее или нет.
                            и другие вещи.
                              0
                              Трогать-трогать :)
                          • UFO just landed and posted this here
                              0
                              ну в чем то вы правы. но посути это просто придирка к словам.

                              к примеру с сайта cisco в white papers about PBR _http://www.cisco.com/en/US/products/ps6599/products_white_paper09186a00800a4409.shtml#wp11665

                              там они так же как и я применяют понятие policy based routing и в частности к QoS…

                              так что это все абстрактно…
                              это аналогично что я буду придереться к вашему выскаыванию
                              «этот механизм называется route-map»
                              а я скажу что route-map это не механизм а комманда.
                              это аналогичная придирка, но все равно спасибо за то что принимаете участие в дискуси. и указали на какую то ошибку «непонятку».
                              ИМХО первая статья в моей жизни… жду отзывов…
                              • UFO just landed and posted this here
                                  0
                                  ну в принципе я ответил ранее в комменте («ну в чем то вы правы. но посути это просто придирка к словам.»)

                                  ссылку дал только для того что бы показать что не сильно важно ваше замечание.
                                  и трактовка не совсем понятна даже у оф документов. по этому у меня тоже в голове поравнялись понятия, да и «скользкое» различие в целом то…

                                  • UFO just landed and posted this here
                                      0
                                      нет желания на сертах демогогию разводить…

                                      да и сказал же уже, не единожды, что согласен, что разные вещи.
                            • UFO just landed and posted this here
                                0
                                да спасибо за ценные комментарии. сейчас буду редактировать.

                                > Уточнение, не все устройства cisco которые умею PBR поддерживают эту комманду.

                                вы бы не могли сделать уточнение если есть конкретика, думаю будет полезый контент.

                                • UFO just landed and posted this here
                                    0
                                    знаете. у меня как то на свичах PBR крутить не было случая практически.
                                    но что то ходя, по просторам интернета, как то сложилось впечатление что свичи не корректно с PBR работают.
                                    p.s. залес на
                                    3560g и есть у него set ip default next-hop
                                    • UFO just landed and posted this here
                                0
                                автор, если вдруг соберетесь расширить описание — имхо можно написать про local policy. бывает нужным и тема все та же.
                                  0
                                  local policy оставил на следующую часть.
                                  0
                                  а еще можно применять PBR с балансировкой по загрузке канала. но это другая история :)
                                    +1
                                    лол, циско-мажоры, такие циско-мажоры :D [irony]с нетерпением ждем статей про префикс-листы, ведь таким авторам наверняка захочется поделиться недавно открытым познанием составления префикс листов, ага ?[/irony]

                                    имхо, такие вещи не должно быть влом прочитать и на cisco.com.

                                    ps: куда же дели годных пацанов с корками ccie, которые тут писали хоть и не сказать чтобы что-то сложное и интересное, но зато с ними было интересно в комментах потроллить ^__^, ну и да, их статьи не в пример были читабельнее. :) а вот тут у автора на лицо творческая импотенция :(
                                      0
                                      не жалко жизнь на троллинг?
                                      • UFO just landed and posted this here
                                          +2
                                          беда в том, что parta сам ничего не пишет, лишь критикует, причем переходя на личности и открыто признаваясь в троллинге. Недостатки есть везде, но человек старался и чем больше будет таких старателей — тем больше будет статей. Если человеку указать на конкретные недостатки конкретной статьи — это гораздо больше побудит его их в дальнейшем исправить, чем если его просто макать в грязь лицом.

                                          тем более, эта статья первая, думаю мало кто с первого раза пишет гениальные статьи.
                                        0
                                        Сочту за комплемент

                                        ЗЫ По Вашему же замечанию пишу теперь больше у себя, на антициско.ру

                                        Здесь народ дюже серьезный — обвинил меня в болезненной приязни к смайлам :)
                                        +1
                                        Построение фраз — будто prompt переводил. Но обилие орфографических ошибок эту гипотезу опровергает.
                                        Коллега, извините, но мысли надо как-то четче формулировать и хотя б через Word текст пропустить. Очень сложно для прочтения, на каждом предложении глаза спотыкаются.
                                        Постарайтесь в следующих частях раскрыть эту тему более внятным языком. И сюжет поинтереснее бы, а то все это, действительно, и на cisco.com присутствует, да еще и с картинками.
                                          0
                                          «Постарайтесь в следующих частях раскрыть эту тему более внятным языком»

                                          уж постараюсь.

                                          «И сюжет поинтереснее бы, а то все это, действительно, и на cisco.com присутствует, да еще и с картинками.»

                                          к примеру можно? что вам интересно? вообще статья ориентирована на начальную стадию… а не на поучение ccie :)
                                            0
                                            не ведитесь :) это хабр. Есть люди, которые сами не писамши очень любят критиковать. А истинного критика легко отличить — он всегда четко показывает, в чем недостаток (а нередко и как улучшить), а не прячется за общими фразами.
                                              +1
                                              необязательно быть гениальным конструктором унитазов чтобы понять удобен он или нет.
                                                –1
                                                ну так и говорите, чем конкретно неудобен, как сделал это ниже digreen, а общие слова и переход на личности — явный признак слабости аргументации.
                                              +3
                                              Есть у меня мнение, что хабр все-таки не для азов чего-то банального, уж простите. Он не должен заменять собой чтение документации начального уровня. Тут должны быть статьи либо с чем-то новым, незнакомым, либо выражающие личное отношение автора к чему-либо. Да даже просто качественное описание личного опыта автора — уже хорошо.
                                              Повторюсь — это мое мнение. На самом деле голосование пользователей все расставляет по местам. У каждого ведь своя точка зрения на предназначение хабра.
                                              Я ж не злой толстый тролль, мне просто хочется, чтобы в блоге Cisco было что-то пусть не уникальное, но хотя бы занятное. И если б мог — я б плюсанул вас только ради того, чтоб анонсированная в конце поста вторая часть про PBR все-таки вышла. Я вон сам проанонсировал описание попытки эмуляции Cisco IPS на qemu, так потом на другом слился — уже и забыл, что написать хотел, вся идея рассосалась постепенно-)
                                              Если уж пишете про такие вещи — так побольше личного опыта, что ли.
                                              Ну или, например, PBR отжирает ресурсы — так сделайте сравнительный тест с ним и без него. У нас на работе чуть скажешь LAN-админам про необходимость PBR, так делают круглые глаза: «ненене, мы ж перегрузим все». А тут хоп — ссылку на хабр дам, а там все проверено, с печатью качества -)
                                              P.S. Про русский язык претензия как была, так и осталась. Это интернет, а не ЕГЭ, конечно, но надо уважать читателя. Спасибо за понимание.

                                                0
                                                смотрите в моем видении статей было такое. я думал начать с азов а потом перейти на моменты в которых я лично применял PBR, c описанием… что и как.
                                                вторая часть будет попытка донести в каких случаях применять удобно и раскрытие мелочей с которыми я сталкивался.
                                                кстати не знаю сколько у вас трафика идет но PBR не сильно прожорлив то…
                                                правда внедрял его с малым трафиком.
                                                  0
                                                  подтверждаю, в новых цисках PBR делается через CEF. у меня в силу хитрости схемы на 3825 весь трафик идет через PBR. снятие сего злодейства снижает нагрузку на 1-2%.
                                                    +1
                                                    С нетерпением жду второй части. Нарисуйте схемок туда, а? -) С ними, мне кажется, подобные топики всегда более доходчивы, да и симпатичны просто.
                                                    У нас компания большая, трафики соответственные. Поэтому осторожничаем с внедрением любых дополнительных приблуд, даже на 6500 и 7600, и даже практически гарантированно безопасных. Наверное, это и правильно — лучше перебдеть, чем недобдеть.
                                                      0
                                                      да как раз схемы рисую на данный момент и скелет статьи накидываю.
                                                      правда счас меня в коммандировку отправляют.
                                                        0
                                                        по поводу вашей компании. лучше конечно смотреть по обстоятельствам…
                                                        и правильно что осторожничаете.
                                                        я PBR рисую только в мелких офисах…
                                                  0
                                                  Во всех статьях про PBR рассматривается в основном вопрос балансировки изнутри наружу.
                                                  Но никто не затрагивает тему как заставить Cisco отвечать через тот же интерфейс, через который к ней обратились.
                                                  Как организовать ответ внутрисетевых серверов описано тут habrahabr.ru/blogs/cisconetworks/80717/
                                                  А вот как это же проделать с самим маршрутизатором?

                                                  Конструкции по типу:
                                                  route-map OUT permit 10
                                                  match int Dialer1
                                                  set ip next-hop x.x.x.x

                                                  interface Dialer1
                                                  ip policy route-map OUT

                                                  Эффекта не приносят, несклько дней уже бьюсь…
                                                    0
                                                    вы можете трясти пальму сколько угодно, хоть вечность. однако, пока не сядите подумать, кокос не достанете ^___^ потому что прежде чем фанатично биться, стоит осознать по каким правилам и законам этого мира работают те механизмы над которыми вы бьетесь. пакет пришедший на интерфейс дальше пройдет преобразование ната (если он есть) и потом по таблице рутинга, ответный пакет пойдет так же но в обратном направлении. соответственно если у вас в таблице рутинга дефолт написан через другой интерфейс, он улетит через другой интерфейс. в случае с натом и двумя провайдерами с разными ойпи это приведет к проблемам, да. самый простой вариант на мой взгляд распихать аплинки по врфам.
                                                      0
                                                      будет как раз этот момент.
                                                        0
                                                        я такую схему делал для сервера. решается PBR + хитрый нат.

                                                      Only users with full accounts can post comments. Log in, please.