img

Фильтрация маршрутов в OSPF

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

В одном из прошлых статей мы рассмотрели способы фильтрации маршрутов для динамического протокола маршрутизации EIGRP. Следует отметить, что EIGRP проприетарная разработка Cisco, но уже открыта другим производителям. OSPF же протокол открытого стандарта и поддерживается всем вендорами сетевого оборудования. Предполагается, что читатель знаком с данным протоколом маршрутизации и имеет знания на уровне CCNA.

OSPF тоже поддерживает фильтрацию маршрутов, но в отличии от EIGRP, где фильтрацию можно делать на любом маршрутизаторе, здесь она возможна только на пограничных роутерах, которые называются ABR (Area Border Router) и ASBR (Autonomous System Boundary Router). Причиной этому является логика анонсирования маршрутов в протоколе OSPF. Не вдаваясь в подробности скажу, что здесь маршруты объявляются с помощью LSA (Link State Advertisement). Существует 11 типов LSA, но рассматривать их мы не будем. По ходу статьи рассмотрим только Type 3 LSA и Type 5 LSA.

LSA третьего типа создаются пограничными роутерами, которые подключены к магистральной области (backbone area) и минимум одной немагистральной. Type 3 LSA также называются Summary LSA. С помощью данного типа LSA ABR анонсирует сети из одной области в другую. В таблице базы данных OSPF они отображается как Summary Net Link States:

Таблица базы данных OSPF

Фильтрация LSA третьего типа говорит маршрутизатору не анонсировать сети из одной области в другую, тем самым закрывая доступ к сетям, которые не должны отображаться в других областях.


Видео: протокол OSPF (Open Shortest Path First) за 8 минут

Для настройки фильтрации применяется команда area area-num filter-list prefix prefix-list-name {in | out} в интерфейсе конфигурации OSPF. Как видно, здесь применяются списки префиксов или prefix-list, о которых мы говорили в предыдущей статье. Маршрут не анонсируется если попадает под действие deny в списке префиксов.

Камнем преткновения в данной команде являются ключевые слова in и out. Эти параметры определяют направление фильтрации в зависимости от номера области, указанного в команде area are-num filter. А работают они следующим образом:

  • Если прописано слово in, то маршрутизатор предотвращает попадание указанных сетей в область, номер которого указан в команде.
  • Если прописано слово out, то маршрутизатор фильтрует номера сетей, исходящих из области, номер которого указан в команде.

Схематически это выглядит так:

Направление фильтрации в зависимости от номера области

Команда area 0 filter-list in отфильтрует все LSA третьего типа (из областей 1 и 2), и они не попадут в area 0. Но в area 2 маршруты в area 1 попадут, так как нет команд вроде area 2 filter-list in или area 1 filter-list out. Вторая же команда: area 2 filter-list out отфильтрует все маршруты из области 2. В данном примере маршрутная информация из второй области не попадёт ни в одну из областей.

В нашей топологии, показанной на рисунке, имеются две точки фильтрации, то есть два пограничных маршрутизатора:

Топология нашей лаборатории в Cisco Packet Tracer

При чем каждый из этих маршрутизаторов будет фильтровать разные сети. Также мы здесь используем обе ключевых слова in и out. На ABR1 напишем следующие prefix-list-ы:

ip prefix-list FILTER-INTO-AREA-34 seq 5 deny 10.16.3.0/24
ip prefix-list FILTER-INTO-AREA-34 seq 10 permit 0.0.0.0/0 le 32
Настройка prefix-list на Cisco

А на ABR2

ip prefix-list FILTER-OUT-OF-AREA-0 seq 5 deny 10.16.2.0/23 ge 24 le 24
ip prefix-list FILTER-OUT-OF-AREA-0 seq 10 permit 0.0.0.0/0 le 32
Настройка prefix-list на Cisco

Теперь проверив таблицу маршрутизации на R3, увидим, что маршрут до сети 10.16.3.0 отсутствует:

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

Теперь поясним, что мы сказали маршрутизатору. В конфигурации ABR1 первый prefix-list с действием deny совпадет только с маршрутом, который начинается на 10.16.3.0, а длина префикса равна 24. Второй же префикс соответствует всем остальным маршрутам. А командой area 34 filter-list prefix FILTER-INTO-AREA-34 in сказали отфильтровать все сети, которые поступают в 34 область. Поэтому в базе OSPF маршрута в сеть 10.16.3 через R1 не будет.

На втором же маршрутизаторе пошли другим путём. Первый команда ip prefix-list FILTER-OUT-OF-AREA-0 seq 5 deny 10.16.2.0/23 ge 24 le 24 совпадет с маршрутами, который начинается на 10.16.2.0 и 10.16.3.0, так как указан /23. На языке списка префиксов означает взять адреса, которые могут соответствовать маске 255.255.254.0, а длина префикса адреса равна 24. А командой area 0 out сказали отфильтровать все LSA 3 типа, которые исходят из области 0. На первый взгляд кажется сложным, но если присмотреться, то все станет ясно.


Фильтрация маршрутов в OSPF через distribute-list

Фильтрация LSA третьего типа не всегда помогает. Представим ситуацию, когда в какой-то области 50 маршрутизаторов, а нам нужно чтобы маршрутная информация не попала в таблицу только 10 роутеров. В таком случае фильтрация по LSA не поможет, так как он фильтрует маршрут исходящий или входящий в область, в нашем случае маршрут не попадёт ни на один маршрутизатор, что противоречит поставленной задаче.

Для таких случаев предусмотрена функция distribute-list. Она просто не добавляет указанный маршрут в таблицу маршрутизации, но в базе OSPF маршрут до сети будет.

В отличии от настройки distribute-list в EIGRP, в OSPF нужно учесть следующие аспекты:

  • Команда distribute-list требует указания параметров in | out, но только при применении in фильтрация будет работать.
  • Для фильтрации команда может использовать ACL, prefix-list или route-map.
  • Можно также добавить параметр interface interface-type-number, чтобы применить фильтрацию для конкретного интерфейса.

Внесем некоторые изменения в конфигурацию маршрутизатора R3, чтобы отфильтровать маршрут до сети 10.16.1.0:

Фильтруем маршрут до подсети OSPF

Как видно на выводе, до применения prefix-list-а, в таблице маршрутизации есть маршрут до сети 10.16.1.0. Но после внесения изменений маршрут исчезает из таблицы, но вывод команды show ip ospf database | i 10.16.1.0 показывает, что в базе OSPF данный маршрут существует.


Фильтрация маршрутов на ASBR

Как уже было сказано в начале материала, ASBR это маршрутизатор, который стоит между двумя разными автономными системами. Именно он генерирует LSA пятого типа, которые включают в себя маршруты в сети, находящиеся вне домена OSPF.

Топология сети показана ниже:

Топология сети с ASBR
Конфигурацию всех устройств из этой статьи можно скачать в архиве по ссылке ниже.
Скачать конфиги тестовой лаборатории

Как видно из рисунка, у нас есть два разных домена динамической маршрутизации. На роутере ASBR настроена редистрибюция маршрутов, то есть маршруты из одно домена маршрутизации попадают во второй. Нам нужно отфильтровать маршруты таким образом, чтобы сети 172.16.101.0/24 и 172.16.102.0/25 не попали в домен EIGRP. Все остальные, включая сети точка-точка, должны быть видны для пользователей в сети EIGRP.

Для фильтрации Cisco IOS нам дает всего один инструмент route-map. О них мы подробно рассказывали в статье и фильтрации маршрутов в EIGRP.

Можно пойти двумя путями. Либо запрещаем указанные маршруты, в конце добавляем route-map с действием permit, который разрешит все остальные, либо разрешаем указанным в списке префиксов маршруты, а все остальное запрещаем (имейте ввиду, что в конце любого route-map имеется явный запрет deny).

Покажем второй вариант, а первый можете протестировать сами и поделиться результатом.

Для начала создаем списки префиксов с разрешёнными сетями:

ip prefix-list match-area0-permit seq 5 permit 172.16.14.0/30
ip prefix-list match-area0-permit seq 10 permit 172.16.18.0/30
ip prefix-list match-area0-permit seq 15 permit 172.16.8.1/32
ip prefix-list match-area0-permit seq 20 permit 172.16.4.1/32
ip prefix-list match-area0-permit seq 25 permit 172.16.48.0/25
ip prefix-list match-area0-permit seq 30 permit 172.16.49.0/25
ip prefix-list match-area3-permit seq 5 permit 172.16.103.0/24 ge 26 le 26

Еще раз отметим, что фильтрация LSA Type 5 делается только на ASBR маршрутизаторе. До внесения изменений на маршрутизаторе R1 видны сети до 101.0 и 102.0:

show ip route

Применим изменения на ASBR:

Применим изменения на ASBR

Проверим таблицу маршрутизации R1 еще раз:

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

Как видим, маршруты в сеть 101.0 и 102.0 исчезли из таблицы.

На этом, пожалуй, завершим это материал. Он и так оказался достаточно большим и сложным. Удачи в экспериментах!

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
В начале 2000-х, когда идея мессенджеров только формировалась, расширяемый протокол обмена сообщениями и информацией о присутств
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетев
img
Система доменных имен (DNS – Domain Name System) обеспечивает сетевую коммуникацию. DNS может показаться какой-то невидимой сило
img
Wi-Fi это технология, которая использует радиоволны для отправки и получения сигналов от находящихся поблизости устройств, чтобы
img
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступно
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до се
21 ноября
20:00
Бесплатный вебинар
Введение в Docker