❯ Протоколы туннелирования
Протокол туннелирования (tunneling protocol) — это набор правил и технологий, обеспечивающих инкапсуляцию данных, их безопасную или совместимую транспортировку и последующую распаковку на приемной стороне. Важно, что такие протоколы позволяют передавать данные через сети, которые иначе не смогли бы обработать исходный трафик.
❯ Как работают большинство протоколов туннелирования?
Протоколы туннелирования позволяют передавать данные одного сетевого протокола внутри другого. Это достигается путем инкапсуляции пакетов оригинального протокола в другой протокол для транспортировки данных через несопоставимую или небезопасную сеть (например, через Интернет). Рассмотрим, как работают протоколы туннелирования, их типы и примеры.
❯ Основной принцип работы туннелирования
Туннелирование использует инкапсуляцию — процесс упаковки пакетов одного протокола в заголовок другого протокола. Основные этапы:
-
Инкапсуляция. Исходный пакет (например, IPv4 или IPv6) упаковывается в новый заголовок, соответствующий транспортному протоколу;
-
Передача. Упакованный пакет пересылается через сеть, которая не поддерживает исходный протокол;
-
Декапсуляция. На конечном узле пакет распаковывается, и данные передаются оригинальному протоколу.
Пример:
-
IPv6-пакет может быть инкапсулирован в IPv4 для передачи через сеть, где IPv6 еще не поддерживается.
❯ Основные виды туннелирования
Туннелирование бывает двух типов:
1. Прозрачное туннелирование (Encapsulation without change):
-
Пакеты передаются без изменений в содержимом;
-
Пример: туннелирование IPv6 поверх IPv4 с помощью протокола 6to4.
2. Изменяющее туннелирование (Encapsulation with transformation):
-
Может включать преобразование или шифрование пакетов;
-
Пример: VPN, где пакеты шифруются для обеспечения безопасности.
❯ Основные туннелирующие протоколы
❯ GRE
GRE (Generic Routing Encapsulation) — это протокол инкапсуляции, который широко применяется как самостоятельно, так и совместно с IPsec для создания туннелей.
GRE туннель представляет собой соединение "точка-точка" и может рассматриваться как одна из разновидностей VPN-туннеля без шифрования. Основное преимущество GRE заключается в возможности передавать широковещательный трафик, что позволяет использовать через такой туннель протоколы маршрутизации.
В отличие от GRE, IPsec обеспечивает защиту сетевого трафика на уровне IP, но в чистом виде не поддерживает передачу широковещательного трафика или маршрутизационные протоколы. Поэтому GRE часто используется совместно с IPsec: GRE обеспечивает совместимость маршрутизационных протоколов, а IPsec добавляет шифрование и безопасность.
Причины для организации GRE-туннеля могут быть разными:
-
Необходимость пробросить свою сеть через чужое IP-пространство;
-
Использование маршрутизационных протоколов, таких как OSPF, RIPv2 и EIGRP, совместно с IPsec для обеспечения как безопасности, так и маршрутизации.
❯ IPsec
IPsec (Internet Protocol Security) — это набор протоколов, обеспечивающих безопасную передачу данных по IP-сетям за счет шифрования, аутентификации и защиты целостности. IPsec используется для построения VPN (Virtual Private Networks) и обеспечивает защиту на уровне сетевого протокола IP. Его применение позволяет предотвратить перехват, подделку или изменение данных во время передачи.
Основные функции IPsec:
-
Аутентификация. Гарантирует, что данные отправлены авторизованным источником;
-
Шифрование. Обеспечивает конфиденциальность данных;
-
Целостность данных. Предотвращает изменение данных в процессе передачи;
-
Защита от повторных атак. Обнаруживает и предотвращает повторную отправку пакетов злоумышленниками.
Компоненты IPsec
1. Протоколы аутентификации и шифрования:
-
AH (Authentication Header). Обеспечивает аутентификацию отправителя и защиту целостности, но не шифрует данные;
-
ESP (Encapsulating Security Payload). Обеспечивает и аутентификацию, и шифрование. ESP — более популярный выбор, так как помимо аутентификации обеспечивает и конфиденциальность.
2. Режимы работы IPsec
Транспортный режим:
-
Защищается только полезная нагрузка (данные) пакета;
-
Заголовок IP остается открытым, что позволяет маршрутизировать пакет;
-
Используется, например, для защиты данных между узлами (хостами) или хостом и сервером.
Туннельный режим:
-
Весь IP-пакет (включая заголовок) инкапсулируется в новый IP-пакет с новым заголовком;
-
Используется при построении VPN между сетями или между узлом и шлюзом.
Этапы установления IPsec-соединения
-
Аутентификация и обмен ключами:
-
Используется IKE для согласования параметров шифрования и аутентификации;
-
Устанавливаются Security Associations (SA).
-
Шифрование и передача данных:
-
Данные инкапсулируются с помощью ESP или AH;
-
Пакеты передаются между узлами по IP-сети.
3. Завершение сеанса:
-
По окончании передачи данных SA разрываются и ключи уничтожаются.
Сценарии применения IPsec
-
VPN-соединение между офисами:
-
Два маршрутизатора создают туннель IPsec в туннельном режиме;
-
Трафик между филиалами шифруется и передается через Интернет.
-
Удаленный доступ (Remote Access VPN):
-
Пользователь подключается к корпоративной сети через IPsec VPN;
-
Все данные передаются через защищенный туннель.
-
Защита маршрутизируемого трафика:
-
IPsec защищает трафик между маршрутизаторами, чтобы предотвратить подмену маршрутов или атаки на целостность данных.
Преимущества и недостатки IPsec
Преимущества:
-
Высокая безопасность благодаря шифрованию и аутентификации;
-
Гибкость. Может работать как в транспортном, так и в туннельном режиме;
-
Совместимость. Работает на уровне IP, поэтому поддерживает любой протокол верхнего уровня (TCP, UDP и др.).
Недостатки:
-
Сложная настройка. Требуется настройка SA и параметров шифрования;
-
Задержки. Шифрование и аутентификация могут увеличивать задержку;
-
Не всегда совместим с NAT. Проблемы возникают при прохождении через устройства, выполняющие преобразование сетевых адресов.
❯ L2TP
L2TP (Layer 2 Tunneling Protocol) — это протокол туннелирования, который обеспечивает создание виртуальных частных сетей (VPN) путем инкапсуляции трафика на канальном уровне. Он позволяет передавать данные через публичные сети, такие как Интернет, и может работать совместно с другими протоколами, такими как IPsec, для обеспечения безопасности передаваемых данных.
❯ Как работает L2TP?
L2TP использует инкапсуляцию для передачи данных, передавая пакеты канального уровня через IP-сети. Основные этапы работы L2TP:
-
Инкапсуляция. Оригинальные кадры (например, Ethernet) помещаются в L2TP-заголовок;
-
Передача. Инкапсулированные кадры пересылаются через сеть;
-
Декапсуляция. На приемной стороне кадры распаковываются и передаются на соответствующий протокол.
Пример: Ethernet-кадры могут быть инкапсулированы в L2TP для передачи через Интернет, обеспечивая возможность использования других протоколов на канальном уровне.
Преимущества L2TP:
-
Поддержка различных протоколов на канальном уровне;
-
Простота развертывания и интеграции с другими технологиями, такими как IPsec.
Недостатки L2TP:
-
Не обеспечивает шифрования данных самостоятельно, требуется совместное использование с IPsec для обеспечения безопасности;
-
Более высокая сложность в настройке по сравнению с другими протоколами туннелирования.
❯ L2VPN
L2VPN (Layer 2 Virtual Private Network) — это технология, позволяющая создать виртуальные частные сети на канальном уровне, обеспечивая прозрачность передачи данных между локальными сетями через общую инфраструктуру. L2VPN используется для соединения удаленных сетей, что позволяет им взаимодействовать так, как будто они находятся в одной локальной сети.
Как работает L2VPN?
L2VPN инкапсулирует канальные кадры в IP-пакеты для передачи через общие сети. Основные этапы работы L2VPN:
-
Инкапсуляция. Канальные кадры помещаются в заголовок L2VPN;
-
Передача. Инкапсулированные кадры передаются через сеть провайдера;
-
Декапсуляция. На конечном узле кадры распаковываются и передаются получателю.
Пример: Ethernet-кадры могут быть инкапсулированы и переданы через L2VPN, обеспечивая возможность взаимодействия различных локальных сетей через общую сеть.
Преимущества L2VPN:
-
Простота использования и развертывания;
-
Возможность объединения сетей различных типов на канальном уровне.
Недостатки L2VPN:
-
Необходимость в управлении на уровне канала;
-
Зависимость от качества и надежности провайдерских сетей.
❯ L3VPN
L3VPN (Layer 3 Virtual Private Network) представляет собой решение для создания виртуальных частных сетей на уровне сетевого протокола. Он используется для соединения различных сетей через общую инфраструктуру, обеспечивая защиту и изоляцию трафика между ними.
Как работает L3VPN?
L3VPN использует инкапсуляцию IP-пакетов для передачи данных через общие сети. Основные этапы работы L3VPN:
-
Инкапсуляция. IP-пакеты инкапсулируются в заголовок L3VPN;
-
Передача. Инкапсулированные пакеты передаются через сеть провайдера;
-
Декапсуляция. На конечном узле пакеты распаковываются и передаются получателю.
Пример: две удаленные офисные сети могут быть связаны через L3VPN, обеспечивая защищенный доступ к ресурсам друг друга через публичную сеть.
Преимущества L3VPN:
-
Высокий уровень безопасности и изоляции трафика;
-
Поддержка маршрутизации, что позволяет использовать различные протоколы на уровне 3.
Недостатки L3VPN:
-
Необходимость в поддержке со стороны провайдеров;
-
Сложности в настройке и управлении.
❯ MPLS
MPLS (Multiprotocol Label Switching) — это механизм в высокопроизводительных телекоммуникационных сетях, позволяющий передавать данные от одного узла к другому с помощью меток.
Технология MPLS основана на добавлении специального заголовка к каждому пакету данных. Заголовок может содержать одну или несколько меток, а несколько меток образуют стек меток. Хотя MPLS не привязан к какому-либо конкретному типу сети, в современных условиях он используется преимущественно поверх IP-сетей. При этом MPLS может передавать данные множества различных протоколов.
❯ Как работает MPLS
Когда IP-пакет попадает в MPLS-сеть, первый маршрутизатор (иногда называемый LER — Label Edge Router) присваивает пакету метку. Пакет передаётся по сети, и каждый следующий маршрутизатор (LSR — Label Switching Router) заменяет старую метку на новую, соответствующую маршруту. Когда пакет покидает MPLS-сеть, метка удаляется, и передаётся исходный IP-пакет.
Основные особенности MPLS:
-
MPLS может работать с различными протоколами, обеспечивая универсальность и гибкость;
-
Входящие пакеты быстро маршрутизируются на основе меток, что позволяет сократить задержки и повысить производительность сети;
-
Хотя MPLS формально не зависит от IP, в современных сетях он в основном функционирует поверх IP-инфраструктуры.
Таким образом, MPLS обеспечивает не только оптимальную маршрутизацию, но и поддерживает множество сценариев передачи данных, включая качество обслуживания (QoS), виртуальные частные сети (VPN) и многопротокольные среды.
❯ Основные элементы и узлы в MPLS
-
PE (Provider Edge) — граничный маршрутизатор провайдера.
-
PE-устройства находятся на границе сети оператора и взаимодействуют с клиентскими сетями.
-
Отвечают за присвоение и удаление меток MPLS.
-
Примеры: PE1 и PE2 — два граничных маршрутизатора в разных точках оператора.
-
P (Provider) — внутренний маршрутизатор ядра сети провайдера.
-
Эти маршрутизаторы находятся внутри ядра сети и выполняют переключение меток (label switching).
-
Они не взаимодействуют напрямую с клиентскими сетями и не выполняют обработку IP-пакетов.
-
LSR (Label Switch Router) — маршрутизатор, выполняющий коммутирование на основе меток.
-
PE и P — оба являются типами LSR.
-
LSR присваивает, заменяет или удаляет метки на основе таблиц меток и передаёт пакеты дальше.
Ключевые понятия MPLS
-
LSP (Label Switched Path) — коммутируемый путь на основе меток.
-
Это предопределённый маршрут через сеть MPLS, по которому передаются пакеты.
-
Путь начинается на PE1, проходит через один или несколько P-маршрутизаторов, и завершается на PE2.
-
В процессе передачи маршрутизаторы заменяют метки, чтобы определить следующий узел маршрута.
-
FEC (Forwarding Equivalence Class) — класс эквивалентной передачи (не путать с функцией FEC на оптических модулях).
-
Определяет группу пакетов, которые обрабатываются одинаково (например, передаются по одному и тому же LSP).
-
Примеры: все пакеты, адресованные одной сети, или трафик одного класса QoS.
3. LIB (Label Information Base) — база меток.
-
Содержит информацию о том, какие метки используются для входящих и исходящих пакетов.
-
В каждой записи указана входящая метка и соответствующая исходящая метка и интерфейс.
-
LFIB (Label Forwarding Information Base) — база информации для передачи пакетов на основе меток.
-
Используется для передачи пакетов в реальном времени.
-
На основе LFIB маршрутизатор определяет, какую метку назначить следующему узлу и на какой интерфейс отправить пакет.
❯ Пример работы MPLS-сети
-
PE1 получает IP-пакет от клиента и на основании FEC назначает метку.
-
Пакет передаётся по сети через несколько P-маршрутизаторов, каждый из которых заменяет метку в соответствии с LIB и пересылает пакет дальше.
-
На каждом узле используется LFIB для быстрого коммутирования пакета на основе текущей метки.
-
Когда пакет доходит до PE2, метка удаляется (операция penultimate hop popping может снять метку на предпоследнем узле), и пакет передаётся в целевую сеть без метки.
Режимы распространения меток
-
Downstream Unsolicited (несанкционированное распределение меток)
-
Узел (LSR) сам назначает метку для префикса и передаёт её соседям без запроса.
-
Этот метод используется в LDP и ускоряет построение LSP, поскольку метки распространяются заранее.
-
Downstream on Demand (распределение меток по запросу)
-
Узел (LSR) запрашивает метку у следующего узла только тогда, когда ему нужно передать пакет для определённого префикса.
-
Используется в случаях, когда нужно оптимизировать использование меток и ресурсов, например, в RSVP-TE.
Методы управления метками
3. Ordered Control (упорядоченное управление)
-
Метка назначается только на узле PE (граничном маршрутизаторе) или на маршрутизаторе, который уже получил метку от следующего узла.
-
Этот метод предотвращает создание незавершённых маршрутов и гарантирует корректное построение LSP.
4. Independent Control (независимое управление)
-
Каждый узел (LSR) самостоятельно назначает метку, не дожидаясь метки от следующего маршрутизатора.
-
Ускоряет процесс создания LSP, но может привести к временному несовпадению меток на маршрутизаторах.
Режимы хранения меток
-
Liberal Label Retention Mode (либеральный режим хранения меток)
-
Узел сохраняет все полученные метки от соседей, даже если они не используются в текущий момент.
-
Обеспечивает гибкость в случае изменения маршрута, так как метки уже известны и не требуется их повторное получение.
-
Подходит для сетей с частыми изменениями маршрутов.
-
Conservative Label Retention Mode (консервативный режим хранения меток)
-
Узел сохраняет только метки, используемые для активных маршрутов.
-
Экономит память, но если маршрут меняется, требуется запрашивать метки заново, что может вызвать задержки.
Эти механизмы помогают настроить MPLS в зависимости от потребностей сети, обеспечивая баланс между скоростью, гибкостью и эффективностью использования ресурсов.
❯ Теперь хотелось бы разобрать самые распространенные протоколы динамической маршрутизации – OSPF и BGP.
❯ OSPF
OSPF (Open Shortest Path First) — это протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.
Принцип работы OSPF
1. Установление соседских отношений:
-
Маршрутизаторы обмениваются небольшими HELLO-пакетами;
-
После обмена пакетами они устанавливают соседские отношения и добавляют друг друга в таблицы соседей.
2. Формирование LSA:
-
Маршрутизаторы собирают информацию о состоянии своих каналов, включая:
-
ID маршрутизатора и его соседа;
-
сеть и префикс между ними;
-
тип сети;
-
стоимость канала (метрику).
-
-
Эти данные объединяются в пакет LSA (Link State Advertisement).
3. Распространение LSA и построение карты сети:
-
Маршрутизатор рассылает LSA своим соседям, которые передают их дальше по сети;
-
Все полученные LSA добавляются в базу данных LSDB (Link State Database);
-
На основе LSDB строится полная карта сети, включающая все маршрутизаторы и их связи.
4. Поиск кратчайших маршрутов:
-
Каждый маршрутизатор использует карту сети для расчёта кратчайших маршрутов с помощью алгоритма Дейкстры;
-
Результаты добавляются в таблицу маршрутизации.
Типы пакетов OSPF
1. Hello
-
Отправляется регулярно для обнаружения соседей и установления соседских отношений.
2. Database Description (DBD)
-
Используется для проверки синхронизации LSDB между соседями.
3. Link State Request (LSR)
-
Запрашивает LSA у соседнего маршрутизатора.
-
Применяется при включении маршрутизатора или для актуализации данных, если изменилась топология сети.
4. Link State Update (LSU)
-
Содержит актуальные данные о состоянии каналов.
5. Link State Acknowledgment (LSAck)
-
Подтверждает получение LSA, DBD или других пакетов.
-
OSPF не использует TCP, поэтому механизм подтверждений гарантирует надёжность обмена данными.
Таким образом, OSPF обеспечивает точное и эффективное построение маршрутов, поддерживает актуальную информацию о сети и минимизирует задержки при изменении топологии.
Ключевые параметры и состояния канала OSPF
1. События канала: Link Down / Link Up
Link Down — канал между маршрутизаторами стал недоступен.
-
Пример: физическое отключение интерфейса или сбой оборудования.
-
Маршрутизаторы отправляют LSA с обновлением, что канал недоступен, и запускают перерасчёт маршрутов.
Link Up — канал вновь стал доступен.
-
Пример: интерфейс восстановлен или подключён новый канал.
-
Маршрутизаторы рассылают LSA, уведомляя соседей, и выполняют перерасчёт маршрутов.
Эти события помогают поддерживать актуальную информацию о топологии и обеспечивают быструю реакцию на изменения в сети.
2. Пропускная способность канала
Пропускная способность (Bandwidth) влияет на стоимость маршрута (OSPF Cost).
По умолчанию стоимость рассчитывается как:
Пример:
Для канала 100 Мбит/с:
Для канала 10 Мбит/с:
Чем выше пропускная способность, тем меньше стоимость маршрута. OSPF предпочитает маршруты с наименьшей стоимостью.
Администратор может вручную настраивать стоимость интерфейсов для более гибкого управления маршрутизацией.
Тип интерфейса |
Пропускная способность |
OSPF Cost |
Ethernet |
10 Мбит/с |
10 |
Fast Ethernet |
100 Мбит/с |
1 |
Gigabit Ethernet |
1 Гбит/с |
1 (по умолчанию) |
10 Gigabit Ethernet |
10 Гбит/с |
1 (при стандартной формуле) |
Frame Relay (T1) |
1,544 Мбит/с |
64 |
DSL |
2 Мбит/с |
50 |
E1 |
2,048 Мбит/с |
48 |
ATM |
155 Мбит/с |
1 |
ISDN BRI |
128 Кбит/с |
781 |
Dial-up (модем) |
56 Кбит/с |
1785 |
Референсная пропускная способность на Cisco
Если в сети используются 10/25/40/100 Гбит/с интерфейсы, рекомендуется установить референсную пропускную способность на 100000 Мбит/с (100 Гбит/с) для адекватного различения стоимости каналов.
При референсной пропускной способности 100 Гбит/с
Пропускная способность |
OSPF Cost |
25 Гбит/с |
4 |
40 Гбит/с |
3 |
100 Гбит/с |
1 |
3. Идентификатор маршрутизатора (Router ID)
-
Router ID (RID) — это уникальный 32-битный идентификатор маршрутизатора (обычно в формате IPv4-адреса, например, 192.168.1.1).
Как выбирается Router ID:
1. Ручная настройка:
-
Администратор задаёт ID командой (например, на Cisco: router-id 1.1.1.1).
2. Автоматический выбор:
-
Если ID не задан, выбирается наибольший IP-адрес среди loopback-интерфейсов;
-
При отсутствии loopback используется наибольший IP-адрес активного интерфейса.
Назначение:
-
Router ID используется для идентификации маршрутизатора в OSPF и обмена LSA;
-
Не меняется, пока не перезапущен OSPF-процесс.
Основные состояния OSPF
1. Down:
-
Начальное состояние, маршрутизатор не получил Hello-пакет или связь завершилась.
2. Init:
-
Маршрутизатор получил Hello-пакет, но ещё не подтвердил своё присутствие.
3. Two-Way:
-
Маршрутизаторы признали Hello-пакеты друг друга;
-
При общем канале (например, Ethernet) выбираются DR и BDR.
4. ExStart:
-
Начинается обмен маршрутной информацией;
-
Один маршрутизатор становится Master, другой — Slave.
5. Exchange:
-
Обмен DBD-пакетами, содержащими описания маршрутов.
6. Loading:
-
Если информации не хватает, запрашиваются данные через LSR-пакеты, а соседи отвечают LSU-пакетами.
7. Full:
-
Полная синхронизация. Маршрутизаторы имеют одинаковые LSDB.
В OSPF есть еще одно состояние Attempt (попытка) оно используется на некоторых типах сетей, таких как NBMA (Non-Broadcast Multi-Access), например, в сети Frame Relay или ATM, где маршрутизаторы не могут автоматически обнаруживать соседей через широковещательные (broadcast) HELLO-пакеты.
Что такое состояние Attempt?
-
Attempt — это промежуточное состояние, в котором маршрутизатор пытается установить соседские отношения, отправляя HELLO-пакеты вручную настроенным соседям.
-
В отличие от broadcast-сетей, где обнаружение соседей происходит автоматически, в NBMA-сетях маршрутизаторы должны знать IP-адреса соседей заранее и отправлять HELLO-пакеты целенаправленно.
Когда используется состояние Attempt?
-
Применяется на интерфейсах с типом NBMA, если соседние маршрутизаторы указаны вручную с помощью команды neighbor.
-
Это состояние сигнализирует, что маршрутизатор пытается начать обмен с указанным соседом, отправляя ему HELLO-пакеты с периодичностью, заданной таймером Hello Interval.
Процесс перехода из Attempt в другие состояния
-
Attempt → Init:
-
Если маршрутизатор отправил HELLO-пакет, но не получил ответ.
-
В этом случае сосед ещё не распознал его, но маршрутная сессия продолжается.
-
-
Attempt → Two-Way:
-
Если оба маршрутизатора получили и распознали HELLO-пакеты друг друга.
-
-
Failure:
-
Если в течение определённого времени (таймер Dead Interval) HELLO-пакеты не получили ответа, соседство не устанавливается.
-
DR (Designated Router) и BDR (Backup Designated Router) — это специальные роли маршрутизаторов в сетях OSPF, использующих общий канал, например, Ethernet. Эти роли помогают уменьшить количество обменов маршрутной информацией, снижая нагрузку на сеть.
❯ Зачем нужны DR и BDR?
Если каждый маршрутизатор в сети с общим каналом (multi-access network) будет обмениваться маршрутной информацией с каждым другим маршрутизатором, это приведёт к экспоненциальному росту объёма трафика. Чтобы этого избежать, OSPF выбирает одного назначенного маршрутизатора (DR) и одного резервного (BDR), которые координируют обмен информацией.
❯ Как работают DR и BDR?
-
DR: основной маршрутизатор, который принимает LSA от других маршрутизаторов и пересылает их остальным участникам сети. Он уменьшает количество прямых соединений и делает работу сети более эффективной.
-
BDR: резервный маршрутизатор, который принимает на себя роль DR в случае его отказа.
Остальные маршрутизаторы в этой сети называются DROther. Они не обмениваются маршрутной информацией напрямую друг с другом, а только с DR и BDR.
Алгоритм выбора DR и BDR
1. Приоритет интерфейса
-
Каждый интерфейс маршрутизатора в OSPF имеет приоритет.
-
Значение приоритета можно настроить вручную в диапазоне от 0 до 255 (по умолчанию — 1).
-
Маршрутизатор с наивысшим приоритетом становится DR, а следующий по приоритету — BDR.
Примечание: Если приоритет маршрутизатора = 0, он не участвует в выборе DR/BDR, но продолжает быть соседом и участвует в OSPF для обмена маршрутами.
2. Router ID (RID)
-
Если несколько маршрутизаторов имеют одинаковый приоритет, выбирается маршрутизатор с наибольшим Router ID.
-
Router ID — это уникальный 32-битный идентификатор, который обычно выглядит как IPv4-адрес. Он выбирается следующим образом:
-
Ручная настройка: администратор может вручную задать RID (например, командой router-id 1.1.1.1).
-
Автоматический выбор: Если RID не задан вручную:
-
OSPF выбирает наибольший IP-адрес среди доступных loopback-интерфейсов;
-
Если loopback-интерфейсы не настроены, используется наибольший IP-адрес среди активных физических интерфейсов.
-
-
❯ Когда выбирается новый DR и BDR?
-
Если DR выходит из строя, его роль автоматически принимает BDR, а затем выбирается новый BDR.
-
Если BDR выходит из строя, OSPF сразу выбирает нового BDR среди маршрутизаторов с наибольшим приоритетом и RID.
Использование DR и BDR упрощает обмен маршрутами в OSPF-сетях с общим каналом, снижая нагрузку и ускоряя синхронизацию между маршрутизаторами. Важное замечание DR и BD выбираются в рамках одной подсети.
❯ BGP
BGP (Border Gateway Protocol) — протокол динамической маршрутизации, который управляет обменом маршрутной информацией между автономными системами (AS). В отличие от протоколов внутренних шлюзов (IGP), BGP относится к классу протоколов внешнего шлюза (Exterior Gateway Protocol, EGP) и является основным протоколом маршрутизации в Интернете. Он используется для определения оптимальных маршрутов между автономными системами, учитывая административные и политические ограничения.
Основные принципы работы BGP
1. Автономные системы (AS):
-
Интернет представляет собой множество автономных систем, каждая из которых управляется независимо.
-
Каждая AS имеет свой уникальный идентификатор — номер автономной системы (ASN).
2. Сессии и пиринг:
-
BGP использует TCP-соединения на порту 179 для установления и поддержания сессий.
-
Соседние маршрутизаторы BGP, установившие пиринг, обмениваются маршрутной информацией.
3. Типы пирингов:
-
eBGP (External BGP): обмен маршрутами между разными автономными системами.
-
iBGP (Internal BGP): обмен маршрутами между маршрутизаторами внутри одной автономной системы.
Типы сообщений BGP
BGP использует четыре основных типа сообщений:
Тип сообщения |
Описание |
OPEN |
Устанавливает сессию BGP и согласовывает параметры соединения, такие как версия BGP, ASN маршрутизатора, время удержания (Hold Time) и идентификатор BGP (Router ID). |
UPDATE |
Передает информацию о новых маршрутах, обновляет существующие или отзывает ранее объявленные маршруты. Включает NLRI (Network Layer Reachability Information) с префиксами и атрибутами BGP. |
NOTIFICATION |
Уведомляет о возникновении ошибок (например, тайм-аут или изменение конфигурации). Отправка этого сообщения приводит к завершению сессии BGP. |
KEEPALIVE |
Поддерживает активность сессии BGP. Эти сообщения обмениваются регулярно, чтобы подтвердить работоспособность соседей. |
Обмен маршрутами в BGP
1. Установление пиринга:
-
Маршрутизаторы обмениваются OPEN-сообщениями, чтобы договориться о параметрах сеанса;
-
Если параметры согласованы, начинается передача маршрутов.
2. Передача маршрутов:
-
BGP передает только наилучшие маршруты между соседними маршрутизаторами, что снижает объем передаваемой информации;
-
Сообщение UPDATE включает атрибуты маршрутов, такие как префикс сети, путь через автономные системы (AS-Path), метка следующего перехода (Next-Hop) и политика анонса.
3. Поддержание соединения:
-
Если в процессе работы обнаружена ошибка, отправляется NOTIFICATION, и сессия разрывается;
-
Регулярный обмен KEEPALIVE гарантирует, что соединение остается активным.
Ключевые параметры BGP
1. ASN (Autonomous System Number):
-
Уникальный идентификатор автономной системы. Используется для идентификации AS в маршрутах.
2. Router ID:
-
32-битный идентификатор маршрутизатора, обычно представленный в формате IPv4-адреса. Если ID не указан вручную, маршрутизатор выбирает наибольший IP-адрес из loopback- или физических интерфейсов.
3. AS-Path:
-
Указывает последовательность автономных систем, через которые проходит маршрут. Позволяет предотвращать петли, избегая повторного анонса маршрутов в исходную AS.
4. Next-Hop:
-
Указывает IP-адрес следующего маршрутизатора для передачи пакетов.
5. MED (Multi-Exit Discriminator):
-
Используется для выбора предпочтительного пути при наличии нескольких выходов из AS.
Пример работы BGP
1. Установление сессии между AS:
-
Два маршрутизатора из разных автономных систем устанавливают eBGP-сессию;
-
Обмениваются маршрутами через OPEN и UPDATE сообщения.
2. Выбор оптимального маршрута:
-
При наличии нескольких путей маршрут с меньшим AS-Path будет выбран;
-
Если пути равны, используется Next-Hop и другие атрибуты для выбора маршрута.
Основные состояния BGP-сессии
Состояние |
Описание |
Idle |
Начальное состояние. Ожидает, когда сосед будет доступен. |
Connect |
Пытается установить TCP-соединение с соседом. |
Active |
Пытается восстановить соединение при неудаче предыдущей попытки. |
OpenSent |
Отправлено сообщение OPEN и ожидается ответ от соседа. |
OpenConfirm |
Сообщение OPEN принято, ожидается Keepalive. |
Established |
Соединение установлено, и начинается обмен маршрутами. |
Для определения стоимости маршрута OSPF использует метрики. Есть ли метрики в BGP?
Да, в BGP используются атрибуты маршрутов, которые играют роль метрик для выбора наилучшего пути. Эти атрибуты позволяют маршрутизаторам BGP определять предпочтительные маршруты среди нескольких вариантов. В отличие от протоколов IGP (таких как OSPF или EIGRP), где используются числовые метрики (например, стоимость), в BGP выбор маршрута происходит на основе последовательности атрибутов.
Основные атрибуты маршрутов BGP
Атрибут |
Описание |
Роль в выборе маршрута |
Weight (вес) |
Локальный атрибут, специфичный для маршрутизатора. Чем выше значение, тем предпочтительнее маршрут. |
Используется только на локальном маршрутизаторе. Высшее значение имеет приоритет. |
Local Preference |
Указывает приоритет маршрутов внутри одной AS. Чем выше значение, тем предпочтительнее маршрут. |
Применяется в iBGP. Позволяет контролировать выходной трафик из AS. |
AS-Path |
Список автономных систем, через которые прошел маршрут. |
Чем короче путь (меньше AS в списке), тем предпочтительнее маршрут. |
Next-Hop |
IP-адрес следующего маршрутизатора, через который следует передавать пакет. |
Указывает, через какой маршрутизатор отправить трафик. |
MED (Multi-Exit Discriminator) |
Указывает предпочтительный путь для входного трафика при наличии нескольких точек входа в AS. Меньшее значение имеет приоритет. |
Используется для выбора входного маршрута между соседними AS. |
Origin |
Указывает источник маршрута (например, IGP, EGP или "incomplete"). |
IGP < EGP < Incomplete. Маршруты с атрибутом IGP имеют высший приоритет. |
Community |
Маршруты могут помечаться тегами (коммьюнити) для групповой обработки. |
Не влияет на выбор маршрута напрямую, но позволяет применять политики. |
Aggregator |
Указывает, какой маршрутизатор агрегировал (объединил) маршруты. |
Влияет на обработку агрегированных маршрутов. |
Порядок выбора маршрута в BGP (алгоритм best path selection)
-
Weight: выбирается маршрут с наибольшим значением Weight.
-
Local Preference: при равных значениях Weight, предпочтение отдается маршруту с большей Local Preference.
-
AS-Path: при одинаковой Local Preference выбирается маршрут с коротким AS-Path.
-
Origin: если AS-Path одинаковый, приоритет отдается маршруту с меньшим значением Origin (IGP > EGP > incomplete).
-
MED: при равных Origin выбирается маршрут с наименьшим значением MED.
-
eBGP vs iBGP: если все атрибуты равны, выбирается маршрут, полученный через eBGP (внешний сосед), а не iBGP.
-
Next-Hop Reachability: проверяется доступность IP-адреса Next-Hop.
-
Tie-breaking (дополнительные критерии): например, выбирается маршрут с наименьшим Router ID или наименьшим IP-адресом соседа.
Пример
Предположим, маршрутизатор BGP получает следующие маршруты:
-
Маршрут 1. AS-Path = 2, Local Preference = 100, MED = 50;
-
Маршрут 2. AS-Path = 3, Local Preference = 150, MED = 20.
Результат выбора:
-
Маршрут 2 будет выбран, так как у него большая Local Preference (150), несмотря на более длинный AS-Path и больший MED;
-
Если Local Preference была бы одинаковой, то решающим фактором стал бы короткий AS-Path (маршрут 1).
BGP играет ключевую роль в маршрутизации Интернета, обеспечивая обмен маршрутами между автономными системами. Благодаря гибкости и поддержке политик маршрутизации, BGP позволяет администратору контролировать, какие маршруты объявлять и принимать от других систем.
❯ Заключение
Туннелирование играет ключевую роль в современных сетях, обеспечивая совместимость протоколов, защиту данных и создание виртуальных сетей. Протоколы, такие как GRE, IPsec, L2TP и MPLS, служат для разных задач — от простого инкапсулирования до обеспечения безопасности и оптимизации маршрутизации. Туннелирование активно используется в VPN, межсетевых соединениях и при переходе на новые протоколы, такие как IPv6.
Для эффективной маршрутизации данных внутри и между сетями также применяются динамические маршрутизирующие протоколы, такие как OSPF и BGP. OSPF отвечает за поиск кратчайших путей внутри автономных систем, используя алгоритм Дейкстры и обеспечивая быстрое реагирование на изменения топологии. BGP управляет маршрутизацией между автономными системами, определяя оптимальные пути для передачи данных в глобальной сети Интернет на основе атрибутов маршрутов и политик. Вместе эти протоколы и туннелирование создают гибкую и надежную инфраструктуру для передачи данных, обеспечивая как локальную, так и глобальную связность с учетом требований безопасности и производительности.
В следующей статья я планирую разобрать протокол HTTP и HTTPS.
Автор: ProstoKirReal