2 700 подписчиков на нашем канале!

ћерион Ќетворкс

11 минут чтени€

¬ этом материале расскажем, как можно фильтровать маршруты, анонсируемые протоколом динамической маршрутизации EIGRP. ƒанный материал предполагает, что у читател€ есть начальные навыки работы с сетью или как минимум знани€ на уровне CCNA. ѕоэтому о том, что такое динамическа€ маршрутизаци€ в этом материале не будет рассказано, так как тема достаточно больша€ и займет не одну страницу.

“еперь представим, что мы работаем в большой компании с сотн€ми серверов, дес€тками филиалов. ћы подн€ли сеть, настроили динамическую маршрутизацию и все счастливы. ѕакеты ход€т куда надо, как надо. Ќо в один прекрасный день, нам сказали, что на маршрутизаторах филиалов не должно быть маршрутов к сет€м отдела производства. Ќа рисунке ниже представлена упрощенна€ схема нашей вымышленной сети.

—еть предпри€ти€ Cisco в Packet Tracer
 онфигурацию всех устройств из этой статьи (дл€ каждой ноды) можно скачать в архиве по ссылке ниже.
—качать конфиги тестовой лаборатории

ћы конечно можем убрать из-под EIGRP указанные сети, но в этом случае из сетей в головном офисе тоже не будет доступа к сет€м отдела производства. »менно дл€ таких случаев была придумана така€ возможность, как фильтраци€ маршрутов. ¬ EIGRP это делаетс€ командой distribute-list в конфигурации EIGRP.

ѕринцип работы distribute-list (список распределени€) прост: список распределени€ работает по спискам доступа (ACL), спискам префиксов (prefix-list) или карте маршрутов (route-map). Ёти три инструмента определ€ют будут ли анонсироватьс€ указанные сети в обновлени€х EIGRP или нет. ¬ команде distribute-list также можно указать направление обновлений: вход€щие или исход€щие. “акже можно указать конкретный интерфейс, где должны фильтроватьс€ обновлени€. ѕолна€ команда может выгл€деть так:

distribute-list acl [in | out][interface-type interface-number]

‘ильтраци€ маршрутов с помощью списков доступа

ѕервым делом рассмотрим фильтрацию с помощью ACL. ‘ильтраци€ маршрутов EIGRP с помощью списков ACL основан на разрешающих и запрещающих действи€х списков доступа. “о есть, чтобы маршрут анонсировалс€, в списке доступа он должен быть указан с действием permit, а deny, соответственно, запрещает анонсирование маршрута. ѕри фильтрации, EIGRP сравнивает адрес источника в списке доступа с номером подсети (префиксом) каждого маршрута и принимает решение на основе действий, указанных в ACL.

„тобы лучше узнать принцип работы приведЄм примеры.

ѕринцип фильтрации маршрутов EIGRP

ƒл€ фильтрации маршрутов, указанных на рисунке выше нужно создать ACL, где каждый указанный маршрут сопровождаетс€ командой deny, а в конце следует прописать permit any, чтобы остальные маршруты могли анонсироватьс€:

access-list 2 deny 10.17.32.0 0.0.1.255
access-list 2 deny 10.17.34.0 0.0.0.255
access-list 2 deny 10.17.35.0 0.0.0.127
access-list 2 deny 10.17.35.128 0.0.0.127
access-list 2 deny 10.17.36.0 0.0.0.63
access-list 2 deny 10.17.36.64 0.0.0.63
access-list 2 permit any

ј на интерфейсе настройки EGRP прописываем:

distribute-list 2 out s4/0

ѕроверим таблицу маршрутизации до и после применени€ указанных команд. ‘ильтрацию будем проводить на WAN маршрутизаторах.

ѕроверка таблицы маршрутизации Cisco

 ак видим все маршруты до сети отдела ѕроизводства видны в таблице маршрутизации филиала. “еперь применим указанные изменени€:

ѕрименение фильтров EIGRP

» посмотрим таблицу маршрутов роутера филиала еще раз:

ip route eigrp

¬се маршруты в отдел производства исчезли из таблицы маршрутизации. ѕравда, можно было обойтись и одной командой в списке доступа, но дл€ нагл€дности решили прописать все адреса. ј более короткую версию можете указать в комментари€х к этому посту.  стати, фильтрацию в данном примере мы применили на один интерфейс, но можно применить и на все интерфейсы, на которых включен EIGRP. ƒл€ этого команду distribute-list нужно ввести без указани€ конкретного интерфейса.

distribute-list 2 out

—ледует отметить, что дл€ правильной работы фильтрации в нашей топологии на маршрутизаторе WAN2 нужно прописать те же настройки, что и на WAN1.


‘ильтраци€ маршрутов с помощью списка префиксов

¬ Cisco IOS есть еще один инструмент, который позвол€ет осуществл€ть фильтрацию маршрутов prefix-list-ы. ћожет возникнуть вполне логичный вопрос: а чем не угодили списки доступа? ƒело в том, что изначально ACL был разработан дл€ фильтрации пакетов, поэтому дл€ фильтрации маршрутов он не совсем подходит по нескольким причинам:

  • списки IP-префиксов позвол€ют сопоставл€ть длину префикса, в то врем€ как списки ACL, используемые командой EIGRP distribution-list, нет;
  • »спользование расширенных ACL может оказатьс€ громоздким дл€ конфигурировани€;
  • Ќевозможность определени€ совпадени€ маски маршрута при использовании стандартных ACL;
  • –абота ACL достаточно медленна, так как они последовательно примен€етс€ к каждой записи в маршрутном обновлении;

ƒл€ начала разберЄмс€ в принципе работы списка префиксов. —писки IP префиксов позвол€ют сопоставл€ть два компонента маршрута:

  • адрес сети (номер сети);
  • длину префикса (маску сети);

ћежду списками доступа и списками префиксов есть общие черты.  ак и нумерованные списки доступа, списки префиксов могу состо€ть из одной и более команд, которые ввод€тс€ в режиме глобальной конфигурации и нет отдельного режима конфигурации.  ак и в именованных списках доступа, в списках префиксов можно указать номер строки. ¬ целом команда выгл€дит так:

ip prefix-list list-name [ seq seq-value ] { deny | permit prefix / prefix-length } [ ge ge-value ] [ le le-value ]

 оротко работу списка префиксов можно описать так:

  1. јдрес сети маршрута должен быть в пределах, указанных в команде ip prefix-list prefix/prefix-length.
  2. ћаска подсети маршрута должна соответствовать значени€м, указанным в параметрах prefix-length, ge, le.

ѕервый шаг работает также как и списки доступа. Ќапример, написав ip prefix-list TESTLIST 10.0.0.0/8 мы скажем маршрутизатору, что адрес сети должен начинатьс€ с 10. Ќо списки префиксов всегда провер€ют и на соответствие длины маски сети указанным значени€м. Ќиже приведено по€снение параметров списка IP-префиксов:

ѕараметр prefix-list-а

«начение

Ќе указан

10.0.0.0/8;

ћаска сети должна быть равной длине, указанной в параметре prefix/prefix-length. ¬се маршруты, которые начинаютс€ с 10.

ge и le (больше чем, меньше чем)

10.0.0.0/8 ge 16 le 24

ƒлина маски должна быть больше 16, но меньше 24. ј первый байт должен быть равен 10-ти.

le меньше чем

10.0.0.0/8 le 24

ƒлина маски должна быть от восьми до 24-х включительно.

ge больше чем

10.0.0.0/8 ge 24

ƒлина маски должна быть равна или больше 24 и до 32-х включительно.

”чтите, что Cisco требует, чтобы параметры prefix-length, ge и le соответствовали следующему равенству: prefix-length <= ge-value <= le-value (8<=10<=24).

ј теперь перейдем непосредственно к настройке фильтрации с помощью списка префиксов. ƒл€ этого в интерфейсе конфигурации EIGRP прописываем distribute-list prefix prefix-name.

¬оспользуемс€ той же топологией и введЄм некоторые изменени€ в конфигурацию маршрутизатора WAN1, точно такую же конфигурацию нужно прописать и на WAN2. »так, наша задача:

  • отфильтровать маршруты в сети 10.17.35.0 и 10.17.36.0;
  • отфильтровать маршруты сетей точка-точка так, чтобы маршрутизаторы в филиалах и на коммутаторах €дра (Core1 и Core2) не видели сети с длиной маски /30 бит. “ак как трафик от пользователей в эти сети не идет, следовательно, нет необходимости анонсировать их в сторону пользователей.

ƒл€ этого создаем prefix-list с названием FILTER-EIGRP и добавим нужные сети:

ip prefix-list FILTER-EIGRP seq 5 deny 10.17.35.0/24 ge 25 le 25
ip prefix-list FILTER-EIGRP seq 10 deny 10.17.36.0/24 ge 26 le 26
ip prefix-list FILTER-EIGRP seq 15 deny 0.0.0.0/0 ge 30 le 30
ip prefix-list FILTER-EIGRP seq 20 permit 0.0.0.0/0 le 32

”далим из конфигурации фильтрацию по спискам доступа и проверим таблицу маршрутизации:

”даление фильтров EIGRP

ј теперь применим наш фильтр и затем еще раз проверим таблицу маршрутизации:

ѕрименение фильтров EIGRP ѕроверка таблицы маршрутизации EIGRP на Cisco

 ак видим из рисунка, маршрутов в сети 10.17.35.0, 10.17.36.0 и сети дл€ соединений точка-точка между сетевыми устройствами в таблице уже нет. ј теперь объ€сним что мы сказали маршрутизатору:

ip prefix-list FILTER-EIGRP seq 5 deny 10.17.35.0/24 ge 25 le 25

¬се сети, которые начинаютс€ на 10.17.35 и имеют длину 25 бит запретить. ѕод это условие попадают сети 10.17.35.0/25 и 10.17.35.128/25. ƒлине префикса /25 соответствует маска 255.255.255.128.

ip prefix-list FILTER-EIGRP seq 10 deny 10.17.36.0/24 ge 26 le 26

¬се сети, которые начинаютс€ на 10.17.36 и имеют длину 26 бит запретить. ѕод это условие попадают сети 10.17.36.0/26 и 10.17.36.64/26. ƒлине префикса /26 соответствует маска 255.255.255.192.

ip prefix-list FILTER-EIGRP seq 15 deny 0.0.0.0/0 ge 30 le 30

¬се сети, длина префикса которых равна 30 бит - запретить. ¬ нашей топологии под это условие попадают сети 10.1.1.0/30, 10.1.1.4/30, 10.1.2.0/30, 10.1.2.4/30 все сети которые начинаютс€ на 10.9.2.

ip prefix-list FILTER-EIGRP seq 20 permit 0.0.0.0/0 le 32

¬се сети, префикс которых имеет длину до 32-х бит разрешить. ѕод это условие попадают все остальные сети топологии.


‘ильтраци€ маршрутов с помощью route-map

ƒалее пойдет речь о картах маршрутов или route-map-ах. ¬ целом, в работе сети route-map-ы используютс€ довольно часто. Ётот достаточно гибкий инструмент дает возможность сетевому инженеру тонко настраивать маршрутизацию в корпоративной сети. »менно поэтому следует хорошо изучить принцип их работы, чем мы и займемс€ сейчас. ј дальше покажем, как фильтровать маршруты с помощью этого инструмента.

Route-map примен€ет логику похожую на логику if, else, then в €зыках программировани€. ќдин route-map может включать в себ€ несколько команд route-map и маршрутизатор выполн€ет эти команды поочередно согласно номеру строки, который система добавл€ет автоматически, если не был указан пользователем. ѕосле того как, система нашла соответствие маршрута условию и определила разрешить анонсирование или нет, маршрутизатор прекращает выполнение команды route-map дл€ данного маршрута, даже если дальше указано другое условие.  аждый route-map включает в себ€ критерии соответстви€, который задаетс€ командой match. —интаксис route-map выгл€дит следующим образом:

route-map route-map-name {permit | deny} seq sequence-number
match (1st set of criteria)

 ак и в случае с ACL или prefix-list, в route-map тоже можно указать пор€дковый номер строки дл€ добавлени€ или удалени€ соответствующего правила.

¬ команде match можно указать ACL или prefix-list. Ќо тут может возникнуть недоразумение. ј св€зано оно с тем, как обрабатываютс€ route-map Cisco IOS. ƒело в том, что решение о запрете или допуске маршрута основано на команде deny или permit команды route-map. ƒругими словами, маршрут будет обработан route-map-ом если в ACL или prefix-list-е данный маршрут сопровождаетс€ командой permit. »наче, route-map проигнорирует данную запись и перейдет к сравнению со следующим условием route-map. ѕо€сним на примере:

access-list 101 permit 10.17.37.0 0.0.0.255
access-list 102 deny 10.17.35.0 0.0.0.127
route-map Test permit 5
match ip-address 101
route-map Test deny 10
match ip-address 102

¬ данном случае маршрут 10.17.37.0 будет обработан route-map 5, а маршрут 10.17.35.0 будет проигнорирован, так как в списке доступа под номером 102 он запрещЄн и не попадЄт под критерий соответстви€ route-map.

ѕриведЄм ключевые пункты работы route-map при фильтрации маршрутов:

  •  оманда route-map с опцией permit либо разрешит анонсирование маршрута, если он соответствует критерию, указанному в команде match, либо пропустит дл€ обработки следующим пунктом.
  •  оманда route-map с опцией deny либо запретит анонсирование маршрута, если он соответствует критерию, указанному в команде match, либо пропустит дл€ обработки следующим пунктом.
  • ≈сли команда match основываетс€ на ACL или prefix-list-ы, а в ACL или prefix-list-ах указанный маршрут прописан с действием deny, то маршрут не будет отфильтрован. Ёто будет означать, что маршрут не соответствует критерию, указанному в команде match и его нужно пропустить дл€ обработки следующим пунктом.
  • ¬ конце каждого route-map существует €вный запрет; чтобы пропустить все маршруты, которые не попали под критерии, нужно указать команду route-map с действием permit без опции match.

ƒл€ того чтобы задействовать route-map в фильтрации маршрутов используетс€ та же команда distribute-list с опцией route-map route-map-name. ¬несЄм некоторые изменени€ в конфигурацию маршрутизатора WAN1. “очно такие же изменени€ нужно будет сделать на WAN2. »спользуем те же префикс-листы, что и в предыдущем примере с незначительными редактировани€ми:

ip prefix-list MANUFACTURING seq 5 permit 10.17.35.0/24 ge 25 le 25
ip prefix-list MANUFACTURING seq 10 permit 10.17.36.0/24 ge 26 le 26
ip prefix-list POINT-TO-POINT seq 5 permit 0.0.0.0/0 ge 30 le 30
»спользование префикс-листов

ѕосле внесени€ изменений маршрутов в сеть производства, а также в сети точка-точка таблице маршрутизации на роутерах филиалов не окажетс€. “акже на Core1 не будет маршрута до сетей point-to-point:

»тоги работы по фильтрам

ћы рассмотрели фильтрацию маршрутов в EIGRP трем€ способами. ’орошим тоном считаетс€ использование списка префиксов, так как они заточены именно под эти цели. ј использование карты маршрутизации или route-map-ов неэффективно из-за большего количества команд дл€ конфигурации.

¬ следующем материале рассмотрим фильтрацию в домене OSPF.


ѕолезна ли ¬ам эта стать€?


Ёти статьи могут быть вам интересны: