INTEGRITY Документация

Управление трафиком

Таблица маршрутизации Magic Transit Virtual Network

Когда трафик поступает в сеть Cloudflare, ему нужно достичь нужного пункта назначения в вашей инфраструктуре: конкретного дата-центра, офиса или облачной среды. Управление трафиком определяет, как Cloudflare принимает эти решения по маршрутизации.

Magic Transit Virtual Network представляет собой оверлейную виртуальную сеть, приватную для вашего аккаунта, которая охватывает все дата-центры Cloudflare по всему миру. Эта оверлейная сеть обеспечивает:

Magic Transit Virtual Network поддерживает маршрутизацию трафика Magic Transit через anycast-туннели с использованием GRE и Internet Protocol Security (IPsec) или CNI с Dataplane v2. Вы можете добавлять записи в таблицу маршрутизации Magic Transit Virtual Network через настройку статических маршрутов или через маршруты, полученные благодаря BGP-пирингу (бета).

Разрешённые диапазоны IP-адресов

В таблице маршрутизации Magic Transit Virtual Network разрешены следующие диапазоны адресов IPv4:

Маршрутизация по умолчанию

Если трафик не соответствует ни одному маршруту, настроенному в виртуальной сети, Cloudflare применяет поведение по умолчанию в зависимости от типа адреса назначения:

Приоритизация маршрутов

Magic Transit направляет трафик по маршрутам туннелей на основе приоритетов записей маршрутов.

Задайте приоритет и веса для статических маршрутов

Значение приоритета для статических маршрутов настраивается непосредственно как часть объекта маршрута в Cloudflare панели управления или через API. Например:

Префикс NextHop Приоритет
10.10.10.100/24 TUNNEL_1_IAD 200
10.10.10.100/24 TUNNEL_2_IAD 200
10.10.10.100/24 TUNNEL_3_ATL 100
10.10.10.100/24 TUNNEL_4_ATL 100

В этом примере туннели с приоритетом 100 имеют приоритет перед туннелями с приоритетом 200 так как меньшие значения имеют более высокий приоритет.

При необходимости можно назначить веса, чтобы эффективнее распределять трафик между несколькими туннелями. Значения веса определяют долю трафика: чем выше вес, тем больше трафика получает туннель. Максимальное значение веса составляет 256.

В следующем примере TUNNEL_2_IAD скорее всего, получит вдвое больше трафика, чем TUNNEL_1_IAD.

Префикс NextHop Приоритет Вес
10.10.10.100/24 TUNNEL_1_IAD 100 64
10.10.10.100/24 TUNNEL_2_IAD 100 128
10.10.10.100/24 TUNNEL_3_ATL 100 192
10.10.10.100/24 TUNNEL_4_ATL 100 255

Помимо приоритета, привязка статических маршрутов к определённым географическим регионам также влияет на то, как направляется трафик. См. Ограничение маршрутов конкретными регионами для дополнительных сведений.

Задайте приоритет для маршрутов BGP

Когда BGP анонсирует маршрут, Cloudflare автоматически добавляет его в таблицу маршрутизации Magic Transit Virtual Network с приоритетом по умолчанию, равным 100 который применяется к все регионы. Однако если существует статический маршрут с тем же префиксом и приоритетом, статический маршрут всегда имеет приоритет над маршрутом BGP. Задайте другой приоритет для статических маршрутов (больше или меньше, чем 100) в зависимости от того, чему вы хотите отдать приоритет. Чем меньше значение, тем выше приоритет.

Кроме того, если существует несколько маршрутов BGP с одинаковой длиной префикса и приоритетом, ECMP распределяет трафик между ними, используя маршрутизация с равной стоимостью по нескольким путям (ECMP).

Изменить приоритеты маршрутов с помощью атрибутов BGP

Cloudflare поддерживает traffic engineering с помощью BGP community и AS prepending. С помощью этих методов маршрутизации можно задавать приоритеты маршрутов и выполнять traffic engineering сразу через несколько интерконнектов.

BGP-сообщества для настройки приоритета маршрутов

Приоритет маршрута BGP по умолчанию равен 100. Этот базовый приоритет можно скорректировать с помощью community. Например, если маршрут помечен community 13335:60010 его приоритет установлен на 10. Это делает его приоритет выше значения по умолчанию, равного 100 так как более низким числовым значениям приоритета отдаётся предпочтение.

Для настройки базового приоритета маршрута поддерживаются следующие значения community:

Указание нескольких community с базовым приоритетом в одном сообщении об обновлении префикса является ошибкой конфигурации. В этом случае Cloudflare отдаёт предпочтение наивысшему приоритету (наименьшему целочисленному значению).

AS path prepending для настройки приоритета маршрутов

За каждое дополнительное упоминание вашего ASN в полученном AS-пути Cloudflare добавляет 10 к базовому приоритету маршрута. При увеличении номера приоритета маршрут становится менее предпочтительным.

Например, если ваш ASN 65000 то BGP UPDATE к Cloudflare будет:

# No change to base priority.
AS_PATH: 65000 65200

# Add 10 to base priority for 1 prepend of 65000
AS_PATH: 65000 65000 65200

# Add 20 to base priority for 2 prepend of 65000
AS_PATH: 65000 65000 65000 65200

Как сообщества и prepends работают вместе

Cloudflare корректирует приоритет маршрута при использовании AS prepending с сообществами (communities). Например, если маршрут помечен 13335:60150, базовый приоритет устанавливается равным 150. Если вы дважды применяете prepend к своему ASN, Cloudflare добавляет 10 для каждого prepend, увеличивая приоритет маршрута до 180.

Режим Unified Routing (beta)

Режим Unified Routing представляет собой более новую плоскость данных Cloudflare One, которая использует единую инфраструктуру маршрутизации для всех поддерживаемых типов подключений. В режиме Unified Routing трафик направляется через Cloudflare One Client, Cloudflare Tunnel, IPsec, GRE и Cloudflare Network Interconnect (CNI) в рамках единой системы, что упрощает настройку подключений Cloudflare One.

В дашборде Magic Transit режим маршрутизации отображается там же, где вы управляете маршрутами:

Зачем использовать Unified Routing

Unified Routing представляет собой будущее выделенной overlay-сети, которая обеспечивает работу Magic Transit и сетевого подключения Cloudflare One.

Для клиентов Magic Transit главная причина обратить внимание на Unified Routing заключается в оценке BGP для туннелей IPsec/GRE, что зависит от Unified Routing.

Ограничения бета-версии

Следующие ограничения применяются к аккаунтам, использующим режим Unified Routing. Этот список будет сокращаться по мере того, как Cloudflare добавляет поддержку новых функций.

Текущие ограничения бета-версии Подробности
Производительность Обычно около 150 Мбит/с на каждый onramp
Базовые захваты пакетов Записи не включают трафик Automatic Return Routing или BGP через туннели
Полные захваты пакетов Пока не поддерживается
Функции Cloudflare Advanced Network Firewall: ASN Lists, Threat Intel Lists, Rate Limiting, Managed Rulesets Пока не поддерживается
Правила фильтрации Gateway Не поддерживается для трафика, у которого и onramp, и offramp работают через IPsec/GRE/CNI
Load Balancer Сценарий «из публичной сети в частную» поддерживается для назначений IPsec/GRE/CNI. Сценарий «из частной сети в частную» пока не поддерживает Cloudflare Source IPs
Поддержка IPv6 IPv6 поддерживается для IPsec и GRE. Базовая поддержка сетевого брандмауэра для IPv6 ограничена фильтрацией по IP-адресам источника и назначения

Регистрация в бета версии Unified Routing

Unified Routing сейчас доступен в режиме closed beta. Чтобы зарегистрироваться:

Ограничение маршрутов конкретными регионами

Если к сегменту сети ведёт несколько путей подключения и вы хотите по-разному расставлять приоритеты маршрутов в зависимости от того, где трафик попадает в сеть Cloudflare, вы можете ограничить маршруты определёнными регионами центров обработки данных Cloudflare. Это полезно, если вы используете собственную anycast-сеть и хотите, чтобы трафик конечных пользователей поступал в ту точку вашей сети, которая ближе всего к пользователю.

Если вы ограничиваете область действия маршрута определённым регионом дата-центров Cloudflare, он отображается в таблице маршрутизации Magic Transit Virtual Network только в этом регионе, наряду со всеми глобальными маршрутами без региональной привязки. Логика приоритизации маршрутов и ECMP применяется как к маршрутам с региональной привязкой, так и к глобальным.

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

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

Префикс NextHop Приоритет Код региона
10.10.10.100/24 TUNNEL_1_IAD 100 AFR
10.10.10.100/24 TUNNEL_2_IAD 100 EEUR
10.10.10.100/24 TUNNEL_3_ATL 100 ENAM
10.10.10.100/24 TUNNEL_4_ATL 100 ME
10.10.10.100/24 TUNNEL_5_ATL 100 WNAM
10.10.10.100/24 TUNNEL_4_ATL 100 ENAM

Если для одного и того же префикса существует несколько маршрутов с одинаковым приоритетом и эти маршруты закреплены за разными географическими регионами (например, WNAM и ENAM), трафик, поступающий в сеть в конкретном регионе (например, в WNAM), выходит через маршрут, закреплённый за этим же регионом.

Коды регионов и связанные регионы

У Cloudflare девять географических регионов:

Код региона Регион
AFR Африка
APAC Азиатско-Тихоокеанский регион
EEUR Восточная Европа
ENAM Восточная Северная Америка
ME Ближний Восток
OC Океания
SAM Южная Америка
WEUR Западная Европа
WNAM Западная Северная Америка

Настройте область действия для своего трафика в Код региона раздел при добавлении или изменении статического маршрута. См. Создать статический маршрут и Измените статический маршрут, где это описано подробнее.

Сопоставление префиксов Magic Transit

Сопоставление префиксов маршрутов, которые меньше /24

Чтобы Cloudflare могла направлять ваш трафик из нашей глобальной сети в ваши дата-центры через anycast-туннели, укажите свои префиксы и туннели, с которыми они должны быть связаны. Используйте таблицу ниже в качестве образца.

Префикс NextHop
103.21.244.0/29 TUNNEL_1_IAD
103.21.244.8/29 TUNNEL_2_ATL

Минимальный анонсируемый префикс составляет /24, однако, поскольку Cloudflare использует anycast-туннели как внешнюю обертку для вашего трафика, Cloudflare может маршрутизировать префиксы в пределах этого /24 на разные конечные точки туннеля. Например, вы можете отправлять x.x.x.0/29 в дата-центр 1 и x.x.x.8/29 в дата-центр 2. Это полезно, если вы работаете в среде с ограниченными IP-ресурсами.

Сопоставление префиксов маршрутов, которые крупнее подключённых префиксов

Если подключено несколько /24 подсетей, входящих в более крупный непрерывный блок, можно настроить сводный статический маршрут для соответствующей суперсети (например, /23 или /22) вместо того чтобы добавлять каждый /24 по отдельности. Это устраняет необходимость настраивать каждый /24 маршрут, поскольку весь трафик будет направляться через одни и те же GRE-туннели.

Например, если у вас есть два туннеля:

Их можно объединить в единое 192.0.2.0/23.

См. Добавить туннели чтобы узнать больше о настройке туннелей GRE.

Equal-cost multi-path routing

Equal-cost multi-path routing использует хеши, рассчитанные на основе пакет ↗ данные для определения выбранного маршрута. Хеш всегда использует IP-адреса источника и назначения. Для пакетов TCP и UDP хеш также включает порты источника и назначения. Алгоритм ECMP делит хеш каждого пакета на количество равнозначных следующих переходов. Модуль (остаток от деления) определяет маршрут, по которому пойдет пакет.

Использование ECMP имеет ряд последствий:

Благодаря этому ECMP обеспечивает балансировку нагрузки между туннелями с одинаковым префиксом и приоритетом.

Примеры

Эта диаграмма показывает, как ECMP равномерно распределяет трафик между двумя маршрутами с одинаковым префиксом и приоритетом.

Обычный поток трафика

flowchart LR
accTitle: Tunnels diagram
accDescr: This example has three tunnel routes, with traffic equally distributed across two paths.

subgraph Cloudflare
direction LR
B[Cloudflare <br> data center]
C[Cloudflare <br> data center]
D[Cloudflare <br> data center]
end

Z("Load balancing for some <br> priority tunnels uses ECMP <br> (hashing on src IP, dst IP, <br> scr port, dst port)") --- Cloudflare
A((User)) --> Cloudflare --- E[Anycast IP]
E[Anycast IP] --> F[/"GRE Tunnel 1 / <br> priority 1 / <br> ~50% of flows"/] --> I{{Customer <br> data center/ <br> network 1}}
E[Anycast IP] --> G[/"GRE Tunnel 2 / <br> priority 1 / <br> ~50% of flows"/] --> J{{Customer <br> data center/ <br> network 2}}
E[Anycast IP] --> H[/GRE Tunnel 3 / <br> priority 2 / <br> 0% of flows/] --o K{{Customer <br> data center/ <br> network 3}}

Поток трафика при переключении: сценарий 1

Отказ маршрутизатора клиента

Если проверки состояния Magic Transit определяют, что Tunnel 2 неработоспособен, Magic Transit динамически понижает приоритет этого маршрута, и единственным маршрутом с наивысшим приоритетом остаётся Tunnel 1. В результате Magic Transit перенаправляет трафик с Tunnel 2, и весь трафик идёт через Tunnel 1.

flowchart LR
accTitle: Tunnels diagram
accDescr: This example has Tunnel 2 unhealthy, and all traffic prioritized to Tunnel 1.

subgraph Cloudflare
direction LR
B[Cloudflare <br> data center]
C[Cloudflare <br> data center]
D[Cloudflare <br> data center]
end

Z(Tunnel health is <br> determined by <br> health checks that <br> run from all Cloudflare <br> data centers) --- Cloudflare
A((User)) --> Cloudflare --- E[Anycast IP]
E[Anycast IP] --> F[/"Tunnel 1 / <br> priority 1 / <br> ~100% of flows"/]:::green --> I{{Customer <br> data center/ <br> network 1}}
E[Anycast IP] --> G[/Tunnel 2 / <br> priority 3 / <br> unhealthy / 0% of flows/]:::red --x J{{Customer <br> data center/ <br> network 2}}
E[Anycast IP] --> H[/Tunnel 3 / <br> priority 2 / <br> 0% of flows/] --o K{{Customer <br> data center/ <br> network 3}}
classDef red fill:#EE4B2B,color: black
classDef green fill:#00FF00,color: black

Поток трафика при переключении: сценарий 2

Сбой промежуточного интернет-провайдера (ISP)

Если Magic Transit определяет, что Tunnel 1 тоже неработоспособен, приоритет этого маршрута также понижается, и наивысший приоритет остаётся у Tunnel 3. В этом случае весь трафик направляется через Tunnel 3.

flowchart LR
accTitle: Tunnels diagram
accDescr: This example has Tunnel 1 and 2 unhealthy, and all traffic prioritized to Tunnel 3.

subgraph Cloudflare
direction LR
B[Cloudflare <br> data center]
C[Cloudflare <br> data center]
D[Cloudflare <br> data center]
end

Z(Lower-priority tunnels <br> are used when <br> higher-priority tunnels <br> are unhealthy) --- Cloudflare
A((User)) --> Cloudflare --- E[Anycast IP]
E[Anycast IP]  -- Intermediary <br> network issue -->  F[/Tunnel 1 / <br> priority 3 / <br> unhealthy / 0% of flows/]:::red --x I{{Customer <br> data center/ <br> network 1}}
E[Anycast IP]  -- Intermediary <br> network issue -->  G[/Tunnel 2 / <br> priority 3 / <br> unhealthy / 0% of flows/]:::red --x J{{Customer <br> data center/ <br> network 2}}
E[Anycast IP] -->  H[/Tunnel 3 / <br> priority 2 / <br> 100% of flows/]:::green --> K{{Customer <br> data center/ <br> network 3}}
classDef red fill:#EE4B2B,color: black
classDef green fill:#00FF00,color: black

Когда Magic Transit определяет, что Tunnel 1 и Tunnel 2 снова работоспособны, он повышает приоритет этих маршрутов, и трафик возвращается в обычный режим.

ECMP и использование пропускной способности

Поскольку ECMP работает по вероятностному принципу, алгоритм направляет через каждый туннель примерно одинаковое количество потоков. Однако при выборе туннеля для следующего пакета он не учитывает объём трафика, уже отправленного через этот туннель.

Например, рассмотрим сценарий с множеством TCP-соединений с очень низкой пропускной способностью и одним TCP-соединением с очень высокой пропускной способностью. Пакеты соединения с высокой пропускной способностью имеют одинаковый хеш и поэтому используют один и тот же туннель. В результате этот туннель задействует больше пропускной способности, чем остальные.

Информация о BGP

Использование пиринга BGP с таблицей маршрутизации Virtual Network в Cloudflare One или Magic Transit позволяет:

С помощью этой функции вы можете:

Статус выпуска

В следующей таблице показана текущая доступность BGP для разных способов подключения и рекомендуемые сценарии использования.

Возможность Этап выпуска Рекомендуемое использование Предварительные требования
BGP через CNI Closed Beta Недоступно для новых клиентов: обратитесь в свою команду по работе с клиентами Cloudflare Network Interconnect (CNI) v2
BGP через Anycast IPsec/GRE Открытая бета Непроизводственные рабочие нагрузки Unified Routing (beta): для регистрации обратитесь в команду, обслуживающую ваш аккаунт

Архитектура BGP

Глобальная маршрутизация и периферийная anycast-сеть

Magic Transit Virtual Network принимает решение о маршрутизации пакета за один проход, в дата-центре Cloudflare, который первым обрабатывает этот пакет (узел входа). Благодаря этому путь пакета определяется в точке входа и остаётся неизменным даже при прохождении через несколько узлов магистральной сети Cloudflare, что обеспечивает максимальную эффективность.

Ваша сессия BGP через IPsec, GRE или CNI устанавливается с дата-центром Cloudflare, ближайшим к вашему устройству BGP-пира. Маршруты, полученные таким образом, должны распространяться на всю глобальную сеть Cloudflare, чтобы определять маршрутизацию трафика по всей сети.

Централизованное распространение маршрутов

Magic Transit Virtual Network использует централизованную control plane для распространения маршрутов, что аналогично работе BGP Route Reflector. Такая архитектура отделяет физическую BGP-сессию от глобального распространения маршрутов:

Режим отказоустойчивости Edge (Non-Stop Forwarding)

Data plane Cloudflare спроектирован с расчетом на высокую доступность. Если edge-локация теряет связь с централизованным relay, система переходит в Edge Resiliency Mode, имитируя поведение Non-Stop Forwarding (NSF):

Восстановление системы и повторная синхронизация

Как только соединение между периферией Cloudflare и централизованным ретранслятором восстанавливается, система автоматически выходит из режима Edge Resiliency и выполняет пересинхронизацию с отслеживанием состояния:

  1. Синхронизация RIB-to-relay: Периферия Cloudflare передаёт на relay все текущие удерживаемые обновления BGP (текущее состояние RIB).
  2. Глобальное обновление: Relay согласует эти обновления и распространяет любые изменения на остальную часть глобальной сети Cloudflare.
  3. FIB unfreeze: Локальные таблицы пересылки на периферии Cloudflare размораживаются и обновляются последними проверенными инструкциями маршрутизации.

Пиринг BGP с таблицей маршрутизации Magic Transit Virtual Network

BGP-пиринг Magic Transit выполняется с таблицей маршрутизации Magic Transit Virtual Network (а не с глобальной интернет-сетью Cloudflare). BGP-пиры, настроенные согласно этому руководству, будут получать анонсы всех префиксов из таблицы маршрутизации Magic Transit Virtual Network, а также любых дополнительных префиксов, настроенных в on-ramp Список анонсируемых префиксов.

Если вместо этого вы хотите настроить публичный пиринг с Cloudflare ASN 13335 в одном из дата-центров Cloudflare, см. Настройка PNI и пиринга. На данный момент невозможно использовать BGP-пиринг Magic Transit Virtual Network и PNI на одном физическом порту interconnect.

Распространение и сходимость маршрутов BGP

Cloudflare перераспределяет маршруты, полученные от вашего устройства, в таблицу маршрутизации Magic Transit Virtual Network.

Все маршруты из таблицы маршрутизации Magic Transit Virtual Network анонсируются BGP-пирам. Каждый BGP-пир получает маршрут для каждого префикса вместе с полным AS_PATH, с выбранной стороной Cloudflare ASN ↗ добавляется в начало, чтобы peer мог точно выполнить предотвращение петель ↗.

Сессии пиринга BGP могут анонсировать соседу доступные префиксы и отзывать ранее анонсированные префиксы. Это распространение занимает не более нескольких минут.

Таймеры и настройки BGP

Cloudflare использует следующие таймеры, которые нельзя настроить:

Параметр Описание
Таймер ожидания 240 секунд для CNI и 90 секунд для туннелей GRE и IPsec
(Чтобы установить сеанс, Cloudflare сравнивает свой таймер ожидания с таймером ожидания узла BGP и использует меньшее из двух значений для установления сеанса BGP.)
Таймер Keepalive Одна треть таймера ожидания.
Graceful Restart 120 секунд (в настоящее время поддерживается только для CNI)

Возможности и ограничения BGP

BGP multipath поддерживается. Если BGP получает один и тот же префикс через два разных интерконнекта, Cloudflare распределяет трафик, предназначенный для этого префикса, по каждому интерконнекту в соответствии со стандартным поведением ECMP.

BGP Graceful Restart поддерживается в пассивном режиме (helper/aware). Cloudflare сохраняет состояние пересылки для перезапускающегося соседа.

В настоящее время поддержка BGP имеет следующие ограничения:

Для клиентов Magic Transit протокол BGP с таблицей маршрутизации Magic Transit Virtual Network работает отдельно от анонсирования anycast-префиксов на периферийной сети Cloudflare. Отзыв anycast нужно контролировать существующими методами, описанными в Анонсирование префиксов.

Проверки работоспособности туннеля

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