← Cloudflare BYOIP / byoip
Начало работы
Чтобы использовать собственные IP адреса с Cloudflare, уточните у своей команды по работе с аккаунтом, что ваш контракт покрывает эту функциональность. Вам нужно будет настроить параметры, специфичные для служб, которые вы хотите использовать, а также выполнить стандартные требования, предъявляемые ко всем клиентам BYOIP.
Когда настройки аккаунта готовы, ознакомьтесь с приведёнными ниже разделами, чтобы узнать, как настроить свои BYOIP-префиксы. Также обязательно изучите BYOIP Service-Specific Terms ↗.
Перед началом работы
-
Ваш префикс должен быть зарегистрирован в одном из региональных интернет-регистраторов (RIR):
-
Также убедитесь, что ваш Internet Routing Registry (IRR) записи актуальны и содержат:
routeилиroute6объекты, соответствующие точным префиксам, которые вы хотите подключитьoriginсоответствующий нужному ASN, который вы хотите подключить
-
Необходимо использовать Проверка инфраструктуры открытых ключей для ресурсов (RPKI) и убедитесь, что ваши ROA указаны верно. Для этого можно использовать RPKI Portal Cloudflare ↗ и второй источник, например Routinator ↗ чтобы дополнительно проверить свои префиксы.
-
Если вы не знакомы с принципами работы API Cloudflare, см. Основы. Убедитесь, что у вас есть необходимые разрешения и идентификатор вашего аккаунта.
1. Настройте свои префиксы
Добавление префикса
- Используйте Конечная точка Add Prefix чтобы создать префикс в аккаунте Cloudflare, которому должен принадлежать префикс BYOIP.
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "203.0.113.0/24",
"asn": 13335,
"delegate_loa_creation": true
}'
"result": {
"id": "72823e95d6c64d48a8111fec81179816",
"created_at": "2025-02-25T00:34:11.423722Z",
"modified_at": "2025-02-25T00:34:11.423722Z",
"cidr": "203.0.113.0/24",
"account_id": "654c5f71c324478cc9f68d60065d4620",
"description": "",
"approved": "P",
"on_demand_enabled": false,
"on_demand_locked": false,
"advertised": null,
"advertised_modified_at": null,
"loa_document_id": "b9ff4afe312246a8b2e7324d98f40b23",
"asn": 13335,
"ownership_validation_token": "<OWNERSHIP_VALIDATION_TOKEN>",
"delegate_loa_creation" : true,
"irr_validation_state": "pending",
"rpki_validation_state": "pending",
"ownership_validation_state": "pending",
}- Запишите
idприсвоенный добавленному вами префиксу. Он потребуется на следующих шагах.
Проверка владения префиксом
-
Проверьте владение префиксом одним из следующих способов:
- Скопируйте
ownership_validation_tokenвозвращённый вызовом API. - В записи IRR для подключаемого префикса добавьте следующую строку либо в
descriptionилиremarksполе. Замените<OWNERSHIP_VALIDATION_TOKEN>на фактический токен, скопированный на предыдущем шаге.
cf-validation: <OWNERSHIP_VALIDATION_TOKEN>- Учитывайте размер префикса, который вы переносите в Cloudflare. Поскольку стандартный
in-addr.arpaпредполагает делегирование на границах октетов или нибблов. Если вы подключаете префиксы, не выровненные по этим границам, вам придётся разбить префикс на подсети и создать соответствующие зоны обратного DNS для каждой из них.
Пример
Чтобы рассчитать, сколько подсетей меньшего размера вам нужно, используйте следующую формулу:
2^(next boundary - current netmask)Для
1.1.0.0/23, вам нужно будет настроить два (2^(24-23)) зоны обратного DNS, одну для1.1.0.0/24и другой для1.1.1.0/24.Для
2001:0db8::/34, вам нужно будет настроить четыре (2^(36-34)) зон обратного DNS, для2001:0db8::/36,2001:0db8:1:/36,2001:0db8:2::/36, а также2001:0db8:3::/36.- Настройте зону обратного DNS. Если вы используете DNS Cloudflare, см. Зоны обратного DNS. Если вы используете другого DNS-провайдера, следуйте его инструкциям.
- Создайте записи TXT с помощью
cf-validationв качестве своегоname. Они должны выглядеть примерно так, как в следующем примере:
cf-validation.<REVERSE_ZONE_ADDRESS> IN TXT <TOKEN>- Обновите серверы имен в своем региональном интернет-регистраторе (RIR). Точные шаги для обновления серверов имен зависят от используемого реестра.
- Скопируйте
-
После внесения необходимых изменений запустите проверки с помощью конечной точки Validate Prefix.
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения API-токена
Magic Transit WriteIP Prefixes: Write
Проверка префиксаcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/validate" \ --request POST \ --header "X-Auth-Email: $CLOUDFLARE_EMAIL" \ --header "X-Auth-Key: $CLOUDFLARE_API_KEY"
После успешного прохождения проверки владения токен можно удалить.
Когда все проверки пройдены (RPKI, IRR и владение), approved поле в вашем префиксе вернёт "V". Это означает, что вы можете переходить к созданию привязок служб для IP-адресов1.
При необходимости вы можете использовать Конечная точка «Сведения о префиксе» чтобы проверить, не возникли ли проблемы в ходе проверки. Если это так, внесите необходимые изменения и отправьте запрос на повторную проверку. См. Проверки валидации префикса для получения подробностей.
(Дополнительно) Делегируйте свои префиксы BYOIP
Вы можете разрешить другим аккаунтам использовать часть или весь ваш префикс BYOIP. См. Делегирование префиксов для получения подробностей.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:IP Prefixes: Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/delegations" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "<IP_PREFIX_TO_DELEGATE>",
"delegated_account_id": "<ACCOUNT_ID>"
}'2. Создайте привязки служб
В управлении IP-адресами привязки служб сопоставляют трафик, предназначенный для конкретного IP-адреса, со службой Cloudflare, через которую он должен маршрутизироваться.
Привязка службы по умолчанию
При подключении ваших IP-префиксов к Cloudflare должна существовать одна привязка службы, охватывающая весь префикс. Трафик, предназначенный для конкретного IP-адреса, по умолчанию будет направляться на эту службу. Вы также можете настроить дополнительные привязки служб как описано в следующем шаге.
- Сделайте
GETзапрос к Список служб конечную точку и запишитеidсвязанный со службой, которую вы хотите использовать.
- (Дополнительно) При необходимости используйте Список префиксов конечную точку, чтобы получить или подтвердить
idсвязанный с вашим префиксом. - Сделайте
POSTзапрос к Создание привязки службы конечную точку, указав весь подключаемый префикс BYOIP и службу, которая должна использоваться для привязки по умолчанию.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:IP Prefixes: Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "203.0.113.0/24",
"service_id": "<DEFAULT_SERVICE>"
}'Соответствующий префикс BGP будет создан автоматически. Подождите пять часов, прежде чем анонсировать префикс.
(Дополнительно) Дополнительные привязки
Если вы хотите выборочно направлять трафик в CDN или Spectrum для отдельных IP-адресов, вы можете создать дополнительные привязки служб.
- Определите, для каких IP-адресов потребуется дополнительная привязка. Cloudflare настоятельно рекомендует настраивать привязки служб через агрегированный блок CIDR, так как это эффективнее, чем добавлять отдельные привязки для несмежных блоков CIDR.
Пример
Префикс, защищенный Spectrum: 203.0.113.0/24
IP-адреса для перехода на CDN:
203.0.113.16
203.0.113.17
203.0.113.18
203.0.113.19
203.0.113.20
203.0.113.21
203.0.113.22
203.0.113.23
Добавьте одну отдельную привязку службы CDN для 203.0.113.16 с /29 маска подсети.
- Сделайте
POSTзапрос к Создание привязки службы конечную точку, указав IP адрес, который нужно привязать к CDN или Spectrum. Укажите соответствующая маска сети по необходимости.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:IP Prefixes: Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '{
"cidr": "203.0.113.16/29",
"service_id": "<SERVICE_ID>"
}'В теле ответа начальное состояние подготовки должно быть provisioning.
{
"errors": [],
"messages": [],
"success": true,
"result": {
"cidr": "203.0.113.16/29",
"id": "<SERVICE_BINDING_ID>",
"provisioning": {
"state": "provisioning"
},
"service_id": "<SERVICE_ID>",
"service_name": "<SERVICE_NAME>"
}
}После создания (или удаления) привязки сервиса потребуется от четырех до шести часов чтобы распространиться по глобальной сети Cloudflare.
3. Анонсируйте префикс BGP
После автоматического создания (согласно шаг 2), префиксы BGP изначально отозваны. После того как все ваши настройки будут выполнены, включая карты адресов2 если вы будете использовать службу CDN, переходите к анонсированию маршрута BGP для своего префикса.
- Используйте Обновление префикса BGP конечную точку, чтобы начать анонсирование.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Magic Transit WriteIP Prefixes: WriteIP Prefixes: BGP On Demand Write
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
}
}'