Рассмотрим, как предотвратить транзит маршрутов через AS в BGP. По умолчанию BGP будет рассылать маршруты к сетям-соседям eBGP. Это означает, что если у клиента настроен multi-homed (подключение к двум или более интернет-провайдерам), его AS может стать транзитной.
Существуют 4 метода, которые можно использовать для предотвращения формирования транзитных AS:
- Filter-list с AS PATH access-list.
- No-Export Community.
- Фильтрация prefix-list.
- Фильтрация distribute-list.
Содержание:
- Топология
- Пример №1 filter-list с AS PATH access-list
- Пример №2 No-Export Community
- Пример №3 фильтрация prefix-list
- Пример №4 фильтрация distribute-list
- Выводы
Топология
R1 подключен к ISP1 и ISP2, каждый маршрутизатор находится в разных AS. Поскольку R1 — многоканальный, возможно, что провайдеры будут использовать его для достижения ISP1 и ISP2. Чтобы этого избежать, нужно убедиться, что R1 рассылает маршруты только из собственной AS.
Настройки маршрутизатора ISP1
Настройки маршрутизатора ISP2
Настройки маршрутизатора R1
Пример №1 filter-list с AS PATH access-list
Prefix-lists и distribute-lists рабочее, но не масштабируемое решение, если учитывать, что таблица BGP имеет тысячи маршрутов BGP. Filter-list и no-export community хорошее решение, так как настроив их только один раз, при обновлении и добавлении новых маршрутов не придётся заново настраивать списки доступа и карты маршрутов.
Ранее был настроен BGP на каждом маршрутизаторе, что привело к образованию сеанса eBGP между R1 — ISP1 и R1 — ISP2. После рассылки сетей loopback, посмотрим на таблицу BGP маршрутизаторов ISP1 и ISP2:
Маршрутизатор ISP1:
Маршрутизатор ISP2:
Маршрутизаторы ISP узнали о всех сетях друг друга, и они будут использовать R1 в качестве адреса следующего перехода (next hop).
Использование filter-list с AS PATH access-list, вероятно, является наиболее удобным решением. Оно гарантирует, что маршруты всегда будут рассылаться только в своей AS. Приступим к настройке маршрутизатора R1:
Регулярное выражение ^$ гарантирует, что будут рассылаться только локально созданные маршруты. Этот фильтр необходимо применить к обоим интернет-провайдерам.
Примечание: подробнее про регулярные выражения можно узнать в этой статье.
Чтобы увидеть изменения, используем команду clear ip bgp *
на R1 и посмотрим на таблицу BGP:
R1 все ещё знает о маршрутах от маршрутизаторов ISP. Что касается ISP1 и ISP2, то их таблицы BGP следующие.
Маршрутизатор ISP1:
Маршрутизатор ISP2:
ISP1 и ISP2 знают только о сети соседа 1.1.1.0/24. Транзитная AS не сформирована.
Пример №2 No-Export Community
Примечание: перед настройкой примера №2 необходимо удалить предыдущие настройки примера №1:
Использование no-export community также прекрасное решение. Настроим R1 таким образом, чтобы маршруты от маршрутизаторов ISP были помечены no-export community. Это гарантирует, что маршруты будут известны в AS 1, но не будут рассылаться другим маршрутизаторам. Создадим карту маршрутов (route-map), указав сообщество, и укажем соседей в BGP:
Примечание: в примере используется только один маршрутизатор в AS 1. Если в AS имеются ещё маршрутизаторы, и активирован iBGP, необходимо отправить сообщества (community) на эти маршрутизаторы с помощью команды neighbor <ip> send-community
.
Теперь посмотрим на таблицы BGP ISP1 и ISP2:
Маршрутизатор ISP1:
Маршрутизатор ISP2:
Они знают только о сети соседа 1.1.1.0/24.
Пример №3 фильтрация prefix-list
Примечание: перед настройкой примера №3 необходимо удалить предыдущие настройки примера №2:
Используя prefix-list, можно определить, какие маршруты рассылаются соседям BGP. Это хорошее решение, но нужно учитывать, что каждый раз, когда в таблицу маршрутизации добавляется новый маршрут, придется снова и снова перенастраивать prefix-list. Посмотрим на это на примере маршрутизатора R1:
Prefix-list будет рассылать только сеть 1.1.1.0/24 маршрутизаторам ISP. Давайте проверим таблицы BGP ISP1 ISP2:
Маршрутизатор ISP1:
Маршрутизатор ISP2:
Пример №4 фильтрация distribute-list
Примечание: перед настройкой примера №4 необходимо удалить предыдущие настройки примера №3:
Этот метод аналогичен использованию prefix-list, но на этот раз будем использовать distribute-list:
Теперь посмотрим на таблицы BGP ISP1 и ISP2:
Маршрутизатор ISP1:
Маршрутизатор ISP2:
Выводы
Спасибо за уделенное время на прочтение статьи. Теперь Вы умеете предотвращать транзит маршрутов через AS в BGP на маршрутизаторах Cisco.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.