Прошу прощения за картинку, коллеги... |
Все посты по CCNP Route лабе здесь.
Во время подготовки к CCNP Route, я снова плотно подсел на "технику" MindMap. Например, каждую CLI команду, которую я применяю во время подготовки к экзамену я выношу на отдельную схему. Покажу её в будущих постах. Тема фильтрации довольно мутная, поэтому и её я решил сделать немного понятнее и нагляднее с помощью небольшой диаграммы.
Фильтрация маршрутов как таковое лично я подразделяю на два больших типа - локально и при редистрибуции.
Первый способ я применял как раз таки в прошлом посте. Можно сослаться на route-map или же добавить в другой протокол внешние (external), внутренние (internal) или NSSA (nssa-external) маршруты. Понятное дело, что речь идет только про OSPF. Все это мы рассмотрим чуть дальше.
Второй способ, как я уже упомянул, я называю локальным. Здесь у каждого протокола свои особенности. В RIP, скажем, нельзя применять route-map при редистрибуции, а вот в OSPF можно дополнительно фильтровать Type3 и Type5 LSA на ABR и ASBR соответственно.
Route-map, как я уже упомянул, очень мощный инструмент. Сам этот роутмап постоит из двух частей - match и set. В первой части мы указываем, по какому параметру мы определяем интересный трафик. Это может быть тег, интерфейс, ACL, префикс лист и многое другое. Во второй части, делаем какие-либо операции с этим трафиком. Устанавливаем метрику, тип метрики, тег, вес и все прочее такое.
Ниже не полный список всех опций.
После краткого экскурса в теорию пора пофильтровать на лабе.
Фильтрация при редистрибуции
Обратим наш взор на OSPF. Здесь в NSSA области располагается наш инфраструктурный сервер. Само собой, мы хотим чтобы до него имел доступ каждый роутер в сети. Допустим, OSPF сеть обсуживает какие-то важные структуры и мы не хотим "светить" её остальной сети.
В этом случае, мы можем применить механизм фильтрования на основе областей OSPF. Настраиваем на B5-E2-O1 и E4-O2 так.
router eigrp 90
redistribute ospf 110 match external 2 metric 1000 200 255 1 1500
redistribute ospf 110 match external 2 metric 1000 200 255 1 1500
Таким образом в EIGRP уйдут только внешние маршруты с типом два, а именно суммарный 192.168.0.0/21. Проверяем на Е7. Видно, что теперь у нас только один маршрут из OSPF сети.
Но, стоит помнить о GRE туннеле, который терминируется на О9. Его мы настроим в следующем посте. Но это значит, что про этот адрес тоже должны знать, ну как минимум в RIP домене. Так что такой способ фильтрации "с плеча" нам не подходит.
Настроим фильтр на B5-E2-O1 и E4-O2 таким образом, чтобы он пропускал только внешние маршруты на 192.168.0.0/21 и анонсировал в EIGRP адрес на loopback'e O9 (10.0.10.9/32). Не стоит забывать и про тег, который мы навешиваем на маршруты OSPF попадающие в EIGRP. Так мы избавляемся от проблем при редистрибуции. Навешивали мы его простым роутмапом ниже.
route-map TAG_EIGRP_TO_OSPF permit 10
set tag 400
set tag 400
Придется немного изменить его, но пойдем поэтапно.
1. Определяем те подсети, которые мы хотим пропустить в остальную часть сети. 192.168.0.0/21 и 10.0.10.9/32. Я сделаю это с помощью extended ACL.
ip access-list extended GREandSRV
permit ip 192.168.0.0 0.0.0.234 any
permit ip host 10.0.10.9 any
permit ip 192.168.0.0 0.0.0.234 any
permit ip host 10.0.10.9 any
2. Пишем новый route-map. Пропускаем только префиксы из предыдущего ACL, а все что идет с тегом 400 отбрасываем. Как вы помните, здесь мы страхуем себя от колец и прочих неприятностей. Трафик на входе в OSPF домен "красится" определенным тегом и отбрасывается при попытке протиснутся обратно в EIGRP.
route-map FROM_OSPF_TO_EIGRP permit 10
match ip address GREandSRV
!
route-map FROM_OSPF_TO_EIGRP deny 20
match tag 400
match ip address GREandSRV
!
route-map FROM_OSPF_TO_EIGRP deny 20
match tag 400
3. Добавляем ключ route-map при редисрибуции в EIGRP.
router eigrp 90
redistribute ospf 110 metric 1000 200 255 1 1500 route-map FROM_OSPF_TO_EIGRP
redistribute ospf 110 metric 1000 200 255 1 1500 route-map FROM_OSPF_TO_EIGRP
Теперь E7 знает только про нужные маршруты.
Фильтрация с помощью distribute-list
В distance-vector протоколах нет никаких там границ зон и прочей "чепухи", поэтому фильтровать маршруты можно прям на любых устройствах.
Как вы помните, R3 и R4 соединены одной общей сетью. Оба эти устройства сообщают об этой сети двум своим "хабам" в RIP домене - R1 и R2.
Задача номер один. Мы хотим, чтобы R1 не балансировал трафик до R3 и R4, а посылал его только в сторону R3. Причем, по каким-то таинственным причинам, мы не будем тюнить метрику. Сейчас задача простая - R1 не должен знать о том, что за R4 находится сеть 10.20.34.0/32.
Сейчас картина выглядит следующим образом.
Сделаем так, что бы R4 не рассказывал про сеть 10.20.34.0/30 R1. Создаем простой ACL, в котором фильтруем подсеть 10.20.34.0/30 и разрешаем все остальное. Далее, навешиваем это на интерфейс в сторону R1 в исходящем направлении.
access-list 1 deny 10.20.34.0 /30
access-list 1 permit any
router rip
distribute-list 1 out Ethernet0/0
distribute-list 1 out Ethernet0/0
Далее, надо чуточку подождать, RIP штука небыстрая...
Теперь же попробуем применить направление in. Для этого взглянем, скажем, на E6. Он подключен двумя линками к EIGRP сети. Один из них serial, так что весь трафик "валит" через более приоритетный ethernet интерфейс. Например, трафик на 10.0.20.4/32.
Попробуем немного сбалансировать картину. Что если менеджмент трафик пустить в простаивающий на данный момент Serial1/0. Трафика там не много, как раз разгрузим Ethernet0/0. Весь менеджмент трафик представляет из себя трафик на адреса /32 (ну почти...).
На этот раз воспользуемся префикс-листом ниже. Первой строчкой запрещаем все адреса (0.0.0.0/0) с префиксами, которые больше или равны 32. По факту - только /32. Вторая строчка разрешает все префиксы от 0 до 32.
ip prefix-list ThirtyTwo seq 5 deny 0.0.0.0/0 ge 32
ip prefix-list ThirtyTwo seq 10 permit 0.0.0.0/0 le 32
ip prefix-list ThirtyTwo seq 10 permit 0.0.0.0/0 le 32
Применяем
router eigrp 90
distribute-list prefix ThirtyTwo in Ethernet0/0
distribute-list prefix ThirtyTwo in Ethernet0/0
Т.е. мы просто игнорируем все /32 подсети через интерфейс Eth0/0. После этого весь такой трафик пойдет через оставшийся сериальный интерфейс. Ну кроме 10.0.30.5/32, тот вообще доступен через Ethernet0/1.
Фильтрация между областями
В OSPF также работает команда distribute-list, но работает только в направлении in. По сути, она просто не дает добавить определенные маршруты в таблицу маршрутизации. Причем в LSDB эти маршруты видны будут. Все это мы уже рассматривали.
Сейчас займемся фильтрацией LSA Type 3 и LSA Type 5.
Сейчас займемся фильтрацией LSA Type 3 и LSA Type 5.
Вот в этой части OSPF сети мы видим, что подсеть на O6 (10.16.0.0/16) будет доступна через два ABRa - О3 и О4.
Так, но не совсем. У нас же ещё и виртуальный линк настроен, поэтому LSA приходит ещё и напрямую от O6, но не суть. Скажем, мы не хотим, чтобы LSA Type 3 про 10.16.0.0/16 проходила через O4 в нулевую область. На О4 так же есть и вторая область, в ней мы ничего фильтровать не хотим.
Тут для меня всегда был не очень очевидный момент с направлениями IN и OUT.
Сейчас мы хотим отфильтровать LSA которые идут в сторону area0, значит конфигурировать будем её. IN означает, что мы будем фильтровать маршруты, которые уходят в эту область. A OUT - маршруты, которые приходят из этой области.
Например, команда
area 0 filter-list prefix 10.16_BLOCKING in
отфильтрует отсылку LSA в нулевую область но будет слать её в четвертую.
area 1 filter-list prefix 10.16_BLOCKING out
отфильтрует LSA на подходе, в таком случае ни area0, ни area 2 её не получат.
В любом случае, сначала создаем префикс лист.
O4(config)#ip prefix-list 10.16_BLOCKING seq 5 deny 10.16.0.0/16
O4(config)#ip prefix-list 10.16_BLOCKING seq 10 permit 0.0.0.0/0 le 32
Навешываем его в filter-list на направление in в area0.
O4(config)#router ospf 110
O4(config-router)#area 0 filter-list prefix 10.16_BLOCKING in
После чего в нулевой области LSA должен пропасть, а во второй нет. Но вторая область настроена как stub no-summary. Переконфигурируем её на обычную тупиковую.
O4(config)#router ospf 110
O4(config-router)#no area 2 stub
*Oct 4 18:44:29.906: %OSPF-5-ADJCHG: Process 110, Nbr 10.0.10.7 on Ethernet0/2 from FULL to DOWN, Neighbor Down: Adjacency forced to reset
O4(config-router)#area 2 stub
Проверяем и убеждаемся в том, что в нулевой области LSA нет.
А в четвертой есть
При использовании area 1 filter-list prefix 10.16_BLOCKING out, как я и говорил, LSA будет отсутствовать во всех областях.
Ура, я наконец-то покончил с большой темой по Advanced IGP. В следующем посте коротенько про VRF Lite и GRE Tunneling.
5. Advanced IGP routing (IPv4)
- Configure authentication (plain-text, MD5)
- Configure Summarization
- Metris
- Load balancing (equal, unequal)
- Routing loops
- Advanced redistribution with filtering
5. Advanced IGP routing (IPv4)
- Configure Summarization
- Metris
- Load balancing (equal, unequal)
- Routing loops
- Advanced redistribution with filtering
- VRF Lite
- GRE Tunneling
P.S.:
Для тех, кто дочитал до конца этот пост и читал недавний про смену работы. Работу я все же сменил. Пока все отлично, для меня приоткрылись двери "сесурити" и балансировщиков нагрузки. Будем грызть! Думаю, через некоторое время постараюсь написать пост про новую работу.
Спасибо за внимание.
- GRE Tunneling
P.S.:
Для тех, кто дочитал до конца этот пост и читал недавний про смену работы. Работу я все же сменил. Пока все отлично, для меня приоткрылись двери "сесурити" и балансировщиков нагрузки. Будем грызть! Думаю, через некоторое время постараюсь написать пост про новую работу.
Спасибо за внимание.
Комментариев нет:
Отправить комментарий