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

Анонсирование префиксов

Подключение префиксов

Вы можете использовать в Magic Transit собственные публичные IP-адреса, подключив их к Cloudflare. Это также называется bring your own IP (BYOIP). Этот процесс включает два отдельных типа префиксов:

  1. IP-префиксы: Для каждого блока IP-адресов, который вы переносите в Cloudflare, требуется запись IP-префикса. IP-префикс включает разрешение (Letter of Agency (LOA)) который позволяет Cloudflare анонсировать сеть или её подсети. Вы также можете задать необязательный Номер автономной системы (ASN) ↗ для включения в анонсируемый нами AS path.
  2. BGP-префиксы: Они определяют, какие префиксы Cloudflare анонсирует из своей глобальной сети. По умолчанию каждому IP-префиксу соответствует один BGP-префикс. Вы можете настроить дополнительные, более специфичные BGP-префиксы (подсети IP-префикса), вплоть до максимальной длины префикса /24.

IP-префиксы

Cloudflare подсчитывает количество префиксов Magic Transit исходя из числа определенных вами BGP-префиксов. Каждый префикс тарифицируется отдельно, даже если они перекрываются. Например, как /16 и любой /24 внутри него учитываются по отдельности. Подключение более крупного агрегированного префикса автоматически не включает его меньшие подсети для целей анонсирования или биллинга.

Ограничений по тарификации на размер принимаемых префиксов нет. Однако принимаются только префиксы размером до /24 принимаются для подключения, поскольку более длинные префиксы (например, /25, /26) не маршрутизируются глобально.

Укажите все IP-префиксы, которые вы планируете подключить, а также ASN, с которых будете их анонсировать. При указании префиксов соблюдайте следующие правила:

ASN Cloudflare и ваш собственный ASN

В рамках подключения префикса IP-адресов необходимо определить, какой ASN Cloudflare будет использовать для анонсирования ваших префиксов. Если вы указываете собственный ASN, Cloudflare добавляет основной ASN Cloudflare (AS13335) в начало BGP AS_PATH. Например, если ваш ASN AS64496, любой, кто устанавливает прямой пиринг с Cloudflare, видит путь как 13335 64496.

Если у вас нет ASN или вы не хотите переносить свой ASN в Cloudflare, вы можете использовать Cloudflare Customer ASN (AS13335).

BGP-префиксы

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

Например, если вы подключаете /20 IP-префикс в Magic Transit, его можно анонсировать только как /20 потому что есть только стандартный /20 BGP-префикс. Более мелкие подпрефиксы (например, /24s) в пределах /20 нельзя анонсировать по отдельности, если они не настроены как отдельные BGP-префиксы.

Способы управления анонсированием BGP-префиксов

Cloudflare предлагает несколько механизмов для управления анонсированием и отзывом on-demand-префиксов. Каждый метод подходит для своего сценария развертывания:

Управление префиксами BGP

Добавление BGP-префикса

Создайте Запрос POST чтобы добавить префикс BGP. Например:

Создание префикса BGP
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bgp/prefixes" \
	--request POST \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
	--json '{
		"cidr": "192.0.2.0/24"
	}'
  1. Перейдите в Маршруты страницу.
Перейдите в Маршруты ↗
  1. Из раздела IP-префиксы вкладке выберите префикс, который хотите изменить > Изменить.
  2. Из раздела Статус раскрывающемся меню выберите Анонсировано или Отозван.
  3. (Необязательно) Измените описание своего префикса.
  4. Выберите Редактировать IP-префикс и сохраните ваши изменения.

Любым настроенным BGP-префиксом можно управлять через API с помощью Запрос PATCH. Например:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Magic Transit Write
  • IP Prefixes: Write
  • IP Prefixes: BGP On Demand Write
Обновление префикса BGP
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bgp/prefixes/$BGP_PREFIX_ID" \
	--request PATCH \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
	--json '{
		"on_demand": {
				"advertised": true
		}
	}'

Удалить IP-префикс

Префикс можно удалить только со статусом Не утверждено статус. Чтобы удалить префиксы с другим статусом, обратитесь к администратору или менеджеру по работе с клиентами.

  1. Перейдите в Маршруты страницу.
Перейдите в Маршруты ↗
  1. Из раздела IP-префиксы вкладке найдите префикс, который хотите изменить, и выберите Удалить.
  2. Подтвердите выбор в модальном окне, выбрав Удалить.

Использование API для настройки AS prepend на BGP-префиксе

Используйте Addressing API для управления количеством добавлений Cloudflare своего номера автономной системы (ASN) к префиксу. Вы можете добавить AS13335 не более трёх раз в AS_PATH обновлений BGP для ваших префиксов.

Ниже приведён пример трёхкратного добавления AS13335 в начало AS-пути для BGP-префикса:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление префикса BGP
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bgp/prefixes/$BGP_PREFIX_ID" \
	--request PATCH \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
	--json '{
		"asn_prepend_count": 3
	}'

AS prepending помогает плавно переносить трафик между сетевыми провайдерами. Добавляя prepend к анонсу Cloudflare, вы делаете маршрут через Cloudflare менее предпочтительным для некоторых интернет-провайдеров. Это позволяет одновременно анонсировать тот же префикс от альтернативного провайдера с более коротким и предпочтительным AS_PATH. Одновременное анонсирование от обоих провайдеров обеспечивает более плавную миграцию трафика и минимизирует потерю пакетов при смене провайдера.

"asn_prepend_count" параметр принимает значения от 0 к 3. Более высокое значение делает маршрут менее предпочтительным. Вы также можете изменить этот параметр через BGP. См. Использование BGP-сообществ для настройки AS prepend на anycast-префиксе.

При использовании AS prepending для переноса трафика с Magic Transit обычно происходит следующая последовательность событий:

Безопасно отзовите префикс BYOIP

Устранение зависших маршрутов BGP

Когда вы готовитесь прекратить приём трафика для Использование собственного IP (BYOIP) префикс с периферийной сети Cloudflare, прямой отзыв маршрута BGP несёт риск появления зависшего маршрута BGP. Такое состояние возникает, когда маршрут зависает в Зона без маршрута по умолчанию (DFZ) ↗. Магистральные маршрутизаторы, которые не получили анонс отзыва маршрута, продолжают направлять трафик на уже неактивный next-hop, это явление известно как blackhole. Подробнее об этом можно прочитать в нашем блоге BGP-зомби и избыточный path hunting ↗.

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

Многоэтапный процесс отзыва BYOIP

При выводе трафика используйте одинаковую длину префикса на Cloudflare и у вашего интернет-провайдера (ISP): совпадающая длина префикса обеспечивает наиболее предсказуемое и эффективное поведение.

Следующие шаги описывают рекомендуемый многоэтапный процесс дренирования, который обеспечивает плавное переключение трафика и предотвращает blackholing.

  1. Инициировать анонсирование из вашей исходной сети: Начните анонсировать префикс той же длины (например, 192.0.2.0/24) от вашей локальной инфраструктуры к вышестоящим интернет-провайдерам (ISP). Это действие добавляет в глобальную таблицу маршрутизации конкурирующий маршрут той же длины. Механизм выбора лучшего пути BGP отдаст предпочтение вашему исходному маршруту на основании других метрик (например, более короткого AS path или local preference), в результате чего трафик начнёт постепенно уходить от периферийной сети Cloudflare. Обратите внимание, что часть вашего трафика может маршрутизироваться не так, как ожидается, поскольку это зависит от того, какие маршруты предпочитает ваш интернет-провайдер (например, маршрут Cloudflare может считаться менее предпочтительным, если он отозван не полностью).

  2. Дождитесь глобальной конвергенции BGP: Подождите некоторое время (обычно от пяти до десяти минут), пока новый нативный анонс полностью не распространится по глобальной таблице маршрутизации и маршруты не сойдутся. Этот период ожидания гарантирует, что большая часть трафика перейдёт на вашу локальную сеть до перехода к следующему шагу.

  3. Сигнализируйте об отзыве BGP-маршрута из периферийной сети Cloudflare: После того как вы убедитесь, что трафик успешно перенаправлен, используйте один из методов управления BGP, чтобы прекратить анонсирование префикса с edge-сети Cloudflare.

  4. Процесс дренирования завершён.

Управление BGP для таблицы маршрутизации Magic Transit Virtual Network

Автоматически анонсировать и отзывать anycast-маршруты Magic BGP

Если используется CNI с Dataplane v2, GRE- или IPsec-туннели, можно:

Чтобы включить автоматическое глобальное анонсирование и отзыв, включите эту функцию для BGP-префикса с помощью Addressing API. Например:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление префикса BGP
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bgp/prefixes/$BGP_PREFIX_ID" \
	--request PATCH \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
	--json '{
		"auto_advertise_withdraw": true
	}'

После того как вы настроите это для BGP-префикса, Cloudflare применяет следующую логику:

BGP-префикс Addressing API и BGP-маршрут таблицы маршрутизации Magic Transit Virtual Network должны совпадать точно (одинаковые IP-префикс и длина префикса CIDR). Если существует действующий маршрут до подсети или надсети, Cloudflare отзывает BGP-префикс, если нет ни одного точно совпадающего BGP-маршрута Magic Transit Virtual Network.

Использование BGP-сообществ для настройки AS prepend на anycast-префиксе

В качестве альтернативы настройке AS prepends для anycast-префикса через API, вы можете использовать BGP community, чтобы контролировать количество AS prepend, которые Cloudflare анонсирует со своего edge для вашего префикса. Значения community:

Если необходимо переключиться на альтернативного поставщика услуг, можно несколько раз добавить ASN Cloudflare в начало пути (prepend). Обычно это делается для того, чтобы сделать маршрут менее предпочтительным и обеспечить плавный переход к новому поставщику. Чем больше количество prepend, тем менее предпочтительным будет соединение Cloudflare при отсутствии других правил приоритизации.

См. предостережение об AS prepend для получения важной информации о поведении пиров при использовании этой функции.

Управление BGP с помощью Cloudflare Route Reflectors

Для сценариев развёртывания по требованию вы можете по желанию использовать BGP, чтобы управлять статусом анонсирования своего префикса в глобальной сети Cloudflare (анонсирован он или отозван). Управление через BGP работает так: вы устанавливаете BGP-сессии с глобально распределёнными Route Reflectors Cloudflare, которые запускают распространение анонса вашего префикса по всей глобальной сети Cloudflare. Пиринг с Route Reflectors Cloudflare возможен через интернет или CNI. Пиринг через CNI доступен через вашу команду по работе с клиентами.

Вы можете анонсировать префиксы из сети Cloudflare одним из поддерживаемых методов по требованию, например через BGP control, либо динамически через интерфейс, API или Сетевой поток. При подключении ваших префиксов по запросу укажите, нужен ли вам анонс, управляемый через BGP, или динамический анонс (через дашборд, API или Network Flow).

Наша сетевая архитектура использует несколько резервных Route Reflectors. Отказ любого отдельного reflector не влияет на общую отказоустойчивость сети или пересылку трафика. Для максимальной отказоустойчивости мы рекомендуем настроить пиринг со всеми тремя резервными Route Reflectors Cloudflare.

Чтобы начать использовать BGP control, обратитесь в свою команду по работе с аккаунтом и предоставьте следующую информацию:

После получения ваших данных Cloudflare обновит фильтры брандмауэра, чтобы установить BGP-сессию, и предоставит вам конечные точки BGP для управления префиксами.

Примеры конфигураций маршрутизатора

В следующих примерах показаны конфигурации пиринга для Cisco IOS ↗ и Juniper Junos OS ↗ для развёртываний по требованию с использованием управления BGP. Используемые IP-адреса принадлежат route reflector Cloudflare, их следует оставить без изменений.

Cisco IOS

ip route {{ <YOUR-MAGIC-TRANSIT-PREFIX> }} Null0
ip prefix-list magic-transit-prefix seq 5 permit {{ <YOUR-MAGIC-TRANSIT-PREFIX> }}

route-map cloudflare-magic-transit-out permit 1
match ip address prefix-list magic-transit-prefix
!
route-map cloudflare-magic-transit-out deny 99

route-map reject-all deny 99

router bgp {{ <YOUR-ASN> }}
neighbor 141.101.67.22 remote-as 13335
neighbor 141.101.67.22 ebgp-multihop 64
neighbor 141.101.67.22 timers 60 900
neighbor 162.158.160.22 remote-as 13335
neighbor 162.158.160.22 ebgp-multihop 64
neighbor 162.158.160.22 timers 60 900
neighbor 173.245.63.66  remote-as 13335
neighbor 173.245.63.66  ebgp-multihop 64
neighbor 173.245.63.66  timers 60 900
!
address-family ipv4 unicast
redistribute static
neighbor 141.101.67.22 route-map cloudflare-magic-transit-out out
neighbor 141.101.67.22 route-map reject-all in
neighbor 162.158.160.22 route-map cloudflare-magic-transit-out out
neighbor 162.158.160.22 route-map reject-all in
neighbor 173.245.63.66  route-map cloudflare-magic-transit-out out
neighbor 173.245.63.66  route-map reject-all in
exit-address-family

Juniper MX (Junos OS set commands)

set protocols bgp group CF_ROUTE_REFLECTORS neighbor 162.158.160.22 description "CF RR#1 SIN"
set protocols bgp group CF_ROUTE_REFLECTORS neighbor 173.245.63.66 description "CF RR#2 IAD"
set protocols bgp group CF_ROUTE_REFLECTORS neighbor 141.101.67.22 description "CF RR#3 CDG"
set protocols bgp group CF_ROUTE_REFLECTORS peer-as 13335
set protocols bgp group CF_ROUTE_REFLECTORS import REJECT-ALL
set protocols bgp group CF_ROUTE_REFLECTORS export BGP-CONTROL-OUT

set policy-options policy-statement REJECT-ALL then reject
set policy-options policy-statement BGP-CONTROL-OUT term <TERM-NAME> from route-filter 104.245.62.0/24 exact
set policy-options policy-statement BGP-CONTROL-OUT term <TERM-NAME> from protocol static
set policy-options policy-statement BGP-CONTROL-OUT term <TERM-NAME> from route-type internal
set policy-options policy-statement BGP-CONTROL-OUT term <TERM-NAME> then accept
set policy-options policy-statement BGP-CONTROL-OUT then reject

Juniper MX (Junos OS XML format)

@rtr01> show configuration routing-instances STAGE protocols bgp group CF_ROUTE_REFLECTORS
type external;
multihop {
    ttl 64;
}
local-address {{customer router IP}}
import NONE;
export NONE;
peer-as 13335;
local-as {{customer AS}} loops 2;
neighbor 162.158.160.22 {
    description "CF RR#1 SIN";
}
neighbor 173.245.63.66 {
    description "CF RR#2 IAD";
}
neighbor 141.101.67.22 {
    description "CF RR#3 CDG";
}

Пиринг BGP

Если для передачи трафика в Magic Transit используется CNI с Dataplane v2, GRE- или IPsec-туннели, см. Информация о BGP чтобы узнать, как использовать BGP для маршрутизации трафика между Cloudflare и вашей сетью. Обратите внимание, что это отличается от использования BGP как способа управления статусом анонсирования вашего префикса.

Региональные настройки

Magic Transit поддерживает как статическую маршрутизацию, так и BGP для направления трафика из сети Cloudflare к настроенным off-ramp (туннели GRE, туннели IPsec или CNI). В настоящее время Cloudflare не поддерживает анонсирование маршрутов в целях traffic engineering. Чтобы снизить задержку на последнем участке пути, рекомендуется ограничивать маршруты по регионам.

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

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

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

См. Ограничение маршрутов конкретными регионами, где это описано подробнее.