Инженер корпоративных сетей: от основ коммутации до глобальной маршрутизации и безопасности

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

1. Глобальные сети и протокол динамической маршрутизации BGP

Глобальные сети и протокол динамической маршрутизации BGP

В 1989 году на конференции IETF два инженера, Кирк Лохид из Cisco и Яков Рехтер из IBM, набросали черновик протокола на трех салфетках. Этот импровизированный документ лег в основу BGP (Border Gateway Protocol) — технологии, которая сегодня удерживает вместе сотни тысяч независимых сетей, образуя то, что мы называем Интернетом. Если внутренние протоколы маршрутизации (IGP), такие как OSPF или EIGRP, можно сравнить с навигатором внутри города, то BGP — это логистическая система, соединяющая целые страны и континенты. Без него ваш компьютер не знал бы, через какого провайдера отправить пакет, чтобы он кратчайшим путем достиг сервера в Токио или Сан-Франциско.

Анатомия глобальной связности: Автономные системы

Прежде чем разбирать механику передачи пакетов, необходимо понять иерархию глобальной сети. Интернет — это не монолитная структура, а конгломерат из более чем 70 000 независимых сетей, называемых Автономными Системами (Autonomous Systems, AS).

Автономная система — это совокупность IP-сетей и маршрутизаторов под управлением одного административного субъекта (провайдера, университета или крупной корпорации), имеющая единую политику маршрутизации. Каждой такой системе присваивается уникальный номер — ASN (Autonomous System Number).

Существует два типа ASN:

  • Двухбайтовые номера: от 1 до 65 535.
  • Четырехбайтовые номера: до 4 294 967 295 (введены из-за дефицита старых номеров).
  • Внутри этого диапазона выделены частные номера (Private AS), аналогичные «серым» IP-адресам: 64 512–65 534 для 16-битных и 4 200 000 000–4 294 967 294 для 32-битных. Они используются внутри корпоративных сетей или при подключении к провайдеру, когда выход в глобальную таблицу маршрутизации под собственным номером не требуется.

    Маршрутизация в глобальном масштабе делится на два уровня:

  • Interior Gateway Protocols (IGP): OSPF, IS-IS, RIP, EIGRP. Их задача — максимально быстро найти кратчайший путь внутри одной AS, учитывая пропускную способность каналов и задержки.
  • Exterior Gateway Protocols (EGP): На текущий момент существует только один актуальный протокол этого класса — BGPv4. Его задача — обмен информацией о доступности сетей между разными AS.
  • Почему BGP не похож на другие протоколы

    Если вы привыкли к OSPF, где маршрутизаторы обмениваются состоянием каналов (Link-State) и строят карту сети, BGP покажется вам странным. Его называют Path-Vector протоколом (дистанционно-векторный протокол с учетом пути). BGP не знает топологию соседней сети; он знает только список автономных систем, которые нужно пройти, чтобы достичь целевого префикса.

    Главное отличие BGP от IGP заключается в приоритетах. Для OSPF главное — скорость сходимости и техническая оптимальность пути. Для BGP главное — политика и экономика. В глобальной сети «кратчайший» путь не всегда лучший. Провайдер может предпочесть более длинный маршрут через партнера, с которым у него заключен договор о бесплатном пиринге, вместо короткого, но дорогого платного канала (Transit).

    BGP работает поверх протокола TCP (порт 179). Это обеспечивает надежную доставку обновлений без необходимости реализовывать собственные механизмы подтверждения получения данных, контроля потока и фрагментации. Однако использование TCP накладывает ограничение: чтобы установить соседство, маршрутизаторы уже должны иметь IP-связность.

    Типы соседства: iBGP vs eBGP

    BGP-сессии разделяются на две категории в зависимости от того, находятся ли соседи (пиры) в одной автономной системе или в разных.

    External BGP (eBGP)

    Устанавливается между маршрутизаторами разных AS. По умолчанию eBGP предполагает, что соседи соединены напрямую (TTL пакета равен 1). Если пакет должен пройти через промежуточный узел, необходимо настраивать ebgp-multihop. При передаче маршрута eBGP-соседу маршрутизатор меняет атрибут Next Hop на свой собственный адрес и добавляет свой номер AS в список AS_Path.

    Internal BGP (iBGP)

    Устанавливается между маршрутизаторами внутри одной AS. Здесь правила меняются:
  • Маршрутизатор не добавляет свой ASN в AS_Path при передаче префикса iBGP-соседу.
  • Атрибут Next Hop по умолчанию не меняется (что часто приводит к проблемам доступности, если внутри AS нет маршрута до внешнего стыка).
  • Правило расщепления горизонта (Split Horizon): Маршрут, полученный от одного iBGP-соседа, никогда не передается другому iBGP-соседу. Это защита от петель внутри системы.
  • Чтобы обойти ограничение Split Horizon в крупных сетях, где невозможно построить полносвязную топологию (Full Mesh), используют:

  • Route Reflectors (RR): «Отражатели» маршрутов, которым разрешено нарушать правило Split Horizon.
  • Confederations: Дробление одной большой AS на несколько маленьких частных AS.
  • Атрибуты BGP: Как принимаются решения

    В OSPF есть метрика (Cost), в EIGRP — сложная формула из пропускной способности и задержки. В BGP нет единой метрики. Вместо этого используется набор атрибутов (Path Attributes), которые проверяются в строгом иерархическом порядке. Процесс выбора лучшего пути (BGP Best Path Selection) — это «фильтр», через который проходят все доступные маршруты к одной сети.

    Рассмотрим ключевые атрибуты в порядке их приоритета:

    1. Weight (Вес)

    Это проприетарный атрибут Cisco. Он имеет локальное значение для конкретного маршрутизатора и не передается соседям.
  • Чем выше значение, тем приоритетнее путь.
  • Используется, когда у одного роутера есть два и более выхода из сети, и администратор хочет жестко закрепить один из них.
  • 2. Local Preference (Локальное предпочтение)

    Передается внутри всей AS (между iBGP-соседями).
  • Чем выше значение, тем лучше.
  • Это основной инструмент для управления исходящим трафиком всей компании. Если вы хотите, чтобы все сотрудники ходили в интернет через Провайдера А, вы выставляете Local Pref для его маршрутов выше, чем для Провайдера Б.
  • 3. AS_Path (Путь через автономные системы)

    Список всех ASN, через которые прошел маршрут.
  • Чем короче список, тем лучше.
  • Это основной механизм предотвращения петель: если маршрутизатор видит свой номер AS в полученном списке AS_Path, он отбрасывает такой маршрут.
  • Инженеры часто используют AS_Path Prepending — искусственное удлинение списка своим номером AS, чтобы сделать путь менее привлекательным для остального мира (управление входящим трафиком).
  • 4. Origin (Происхождение)

    Указывает, как маршрут попал в BGP:
  • i (IGP) — через команду network.
  • e (EGP) — устаревший вариант.
  • ? (Incomplete) — через перераспределение (redistribution) из других протоколов.
  • Предпочтение отдается i перед ?.

    5. Multi-Exit Discriminator (MED)

    Используется для подсказки соседней AS, какой вход в вашу сеть предпочтительнее.
  • В отличие от предыдущих атрибутов, здесь меньшее значение лучше.
  • Передается между AS, но не распространяется дальше соседней системы. Это инструмент управления входящим трафиком.
  • Практика настройки: Базовый сценарий Cisco IOS

    Представим корпоративную сеть (AS 65001), которая подключается к провайдеру (AS 100). У нас есть два маршрутизатора в нашей сети для отказоустойчивости.

    Базовая настройка на основном шлюзе:

    В этом примере команда network не «включает» протокол на интерфейсе (как в OSPF), а ищет точное совпадение префикса в локальной таблице маршрутизации (Routing Table). Если сети 203.0.113.0/24 нет в таблице (например, интерфейс выключен), BGP не будет анонсировать её соседу.

    Для управления приоритетами используются route-map. Например, повысим Local Preference для всех входящих маршрутов от этого провайдера:

    Глобальная таблица маршрутизации и Full View

    Когда организация подключается к интернету по BGP, перед инженером встает выбор: какие маршруты принимать от провайдера?

  • Default Route Only: Провайдер присылает только 0.0.0.0/0. Это экономит ресурсы маршрутизатора (память, CPU), но не позволяет выбирать оптимальный путь, если у вас несколько провайдеров.
  • Partial View: Провайдер присылает свои сети и сети своих клиентов, плюс дефолтный маршрут.
  • Full View: Прием всей глобальной таблицы маршрутизации. На середину 2024 года количество префиксов в глобальной таблице IPv4 превысило 950 000.
  • Для работы с Full View требуются высокопроизводительные маршрутизаторы (например, серии Cisco ASR или Juniper MX) с объемом оперативной памяти не менее 8–16 ГБ, так как хранение и обработка миллиона записей (с учетом нескольких копий от разных соседей) — ресурсоемкая задача.

    Проблемы безопасности и BGP Hijacking

    BGP проектировался в эпоху доверия. По умолчанию маршрутизатор верит любому анонсу, пришедшему от соседа. Это порождает уязвимость, известную как BGP Hijacking (перехват трафика).

    Если злоумышленник (или администратор по ошибке) анонсирует в BGP чужой префикс, причем сделает его «более специфичным» (например, /24 вместо легитимного /22), то согласно правилу Longest Prefix Match, весь мировой трафик к этому ресурсу потечет через сеть злоумышленника. Так в истории случались инциденты, когда трафик YouTube уходил в Пакистан, а запросы к криптобиржам — на подставные серверы в Восточной Европе.

    Для борьбы с этим внедряются механизмы:

  • Prefix-lists: Жесткое ограничение списка сетей, которые вы принимаете от соседа.
  • RPKI (Resource Public Key Infrastructure): Система криптографического подтверждения прав на владение IP-префиксами. Маршрутизатор сверяет полученный анонс с базой данных ROA (Route Origin Authorization), чтобы убедиться, что AS имеет право анонсировать эту сеть.
  • Взаимодействие BGP и IGP в корпоративной среде

    В правильно спроектированной сети роли четко разделены. IGP (OSPF) обеспечивает связность между Loopback-интерфейсами маршрутизаторов внутри компании. BGP использует эти Loopback-адреса для построения iBGP-сессий.

    Почему нельзя просто перераспределить (redistribute) все маршруты из BGP в OSPF?

  • Масштабируемость: OSPF не рассчитан на сотни тысяч маршрутов. Попытка загнать Full View в OSPF приведет к мгновенному падению всех маршрутизаторов из-за перегрузки CPU процессом SPF.
  • Стабильность: Глобальная таблица постоянно «дышит» (маршруты появляются и исчезают). IGP будет постоянно пересчитывать дерево кратчайших путей, вызывая нестабильность внутри сети.
  • Поэтому в корпоративном ядре используется дизайн BGP-free Core: пограничные маршрутизаторы (Edge) обмениваются клиентскими маршрутами по iBGP, а внутренние узлы сети (Core) просто пересылают пакеты, зная только, как дойти до следующего Edge-роутера (используя MPLS или рекурсивную маршрутизацию).

    Тонкая настройка: Состояния сессии

    При диагностике BGP важно понимать состояния соседства. В выводе команды show ip bgp summary вы можете увидеть:

  • Idle: Начальное состояние. Маршрутизатор ищет маршрут к соседу. Если он застрял в Idle — проверьте таблицу маршрутизации (есть ли пинг до соседа).
  • Connect/Active: Попытка установить TCP-соединение. Если статус прыгает между ними — скорее всего, проблема в настройках Firewall или несовпадении ASN.
  • OpenSent/OpenConfirm: Обмен параметрами (Keepalive, Hold Time, Capabilities).
  • Established: Соседство установлено, идет обмен префиксами. Это единственное рабочее состояние.
  • Интересный нюанс: если в поле State/PfxRcd стоит число (например, 150), это означает, что сессия в состоянии Established и вы получили 150 маршрутов. Если там написано слово (Active, Idle) — сессия не работает.

    Заключение

    BGP — это не просто протокол, это язык, на котором разговаривают сети. Его сложность обусловлена не математическими алгоритмами, а гибкостью настроек. В корпоративной среде BGP становится необходимым при переходе от простого доступа в интернет к архитектуре Multihoming (подключение к двум и более провайдерам). Понимание атрибутов, механизмов фильтрации и принципов iBGP/eBGP позволяет инженеру не просто «прокинуть интернет», а построить отказоустойчивую систему, способную адаптироваться к изменениям в глобальной сетевой инфраструктуре.