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

Использование BYOIP с Magic Transit и CDN

Magic Transit клиенты, использующие BYOIP, также получают преимущества производительности, надёжности и безопасности, которые Cloudflare предлагает для приложений на основе HTTP. Service bindings позволяют клиентам BYOIP выборочно направлять трафик на уровне отдельных IP адресов в конвейер CDN (который включает Кеш, Web Application Firewall (WAF), и другое).

В этом руководстве описано, как настроить Magic Transit совместно с CDN с помощью API Cloudflare. Также можно задать привязки служб, чтобы выборочно направлять трафик в конвейер Spectrum. См. область действия для полного списка возможных конфигураций и других доступных руководств.

Обратите внимание, что трафик, направляемый через конвейер CDN, защищён на уровнях 3 и 4 благодаря встроенным механизмам защиты от DDoS-атак, которые изначально заложены в этот конвейер.

Перед началом работы

1. Получите информацию об аккаунте

  1. Войдите в свой аккаунт Cloudflare и получите свой ID аккаунта и ключ или токен аутентификации. Если вы используете API-токен, разрешения должны включать Account - IP Prefixes - Edit.
  2. Сделайте GET запрос к Список служб конечную точку и запишите id связанный со службой CDN.
  3. Используйте Список префиксов конечную точку и запишите id связанный с префиксом (cidr) который вы будете настраивать.

На этом этапе, продолжая пример, у вас должно получиться соответствие, похожее на следующее:

Переменные Описание
{service_id} Идентификатор службы CDN в Cloudflare.

Пример: 969xxxxxxxx000xxx0000000x00001bf
{prefix_id} Идентификатор префикса Magic Transit (203.0.113.0/24) который вы хотите настроить.

Пример: 6b25xxxxxxx000xxx0000000x0000cfc
  1. Чтобы убедиться, что у вас есть привязка службы Magic Transit и что она охватывает весь ваш префикс, выполните GET запрос к Список привязок сервисов конечную точку. Замените {prefix_id} в пути URI на фактический идентификатор префикса, полученный на предыдущем шаге.

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

Хотя бы одно из следующих права доступа токена требуется:
  • IP Prefixes: Write
  • IP Prefixes: Read
Список привязок сервисов
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/addressing/prefixes/$PREFIX_ID/bindings" \
	--request GET \
	--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
	--header "X-Auth-Key: $CLOUDFLARE_API_KEY"

2. Создайте привязки служб

  1. Сделайте POST запрос к Создание привязки службы конечную точку, указав IP адрес, который нужно привязать к CDN. Укажите соответствующая маска сети по необходимости.

Продолжая пример, 203.0.113.100/32 обозначает IP адрес, входящий в префикс Magic Transit 203.0.113.0/24.

Замените {prefix_id} в URI на идентификатор вашего префикса, полученный на предыдущих шагах. В теле запроса cidr значение должно соответствовать IP-адресу или подсети, которые вы настраиваете для использования с CDN.

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

Хотя бы одно из следующих права доступа токена требуется:
  • IP Prefixes: Write
Create Service Binding
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.100/32",
		"service_id": "<SERVICE_ID>"
	}'

В теле ответа начальное состояние подготовки должно быть provisioning.

{
  "errors": [],
  "messages": [],
  "success": true,
  "result": {
    "cidr": "203.0.113.100/32",
    "id": "<SERVICE_BINDING_ID>",
    "provisioning": {
      "state": "provisioning"
      },
    "service_id": "<SERVICE_ID>",
    "service_name": "<SERVICE_NAME>"
  }
}

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

3. Создайте карты адресов

После того как вы настроите для своих IP-адресов службу CDN, вы сможете использовать карты адресов чтобы указать, какие IP-адреса Cloudflare должен использовать в ответах DNS, когда запись проксируется.

Вы можете выбрать одну из двух областей действия:

  1. На панели управления Cloudflare перейдите к разделу Address Maps страницу.

    Перейдите в Карты адресов ↗
  2. Выберите Создание карты адресов.

  3. Выберите область действия карты адресов.

  4. Добавьте зоны и IP адреса, которые нужно сопоставить.

  5. Присвойте имя своей address map.

  6. Проверьте информацию и выберите Save and Deploy.

Используйте Create Address Map конечная точка.

Убедитесь, что указаны правильные Key/Token и разрешения.

4. Создайте DNS-записи

Чтобы создать DNS-запись в панели управления:

  1. На панели управления Cloudflare перейдите к разделу DNS-записи страницу.

    Перейдите в Записи ↗
  2. Выберите Add record.

  3. Выберите адрес (A/AAAA) тип записи.

  4. Заполните обязательные поля, указав Статус прокси к проксируется.

  5. Выберите Save.

Чтобы создавать записи с помощью API, используйте Запрос POST. Описания полей см., выбрав тип записи в спецификации тела запроса.

Хотя статус проксирования DNS-записи и карта адресов определяют, как авторитативный DNS Cloudflare отвечает на запросы к вашим хостам, IP-адреса, указанные в A/AAAA записи определяют как Cloudflare обращается к настроенному источнику.

Пример

Тип Название IP-адрес Статус прокси TTL
A www 203.0.113.150 Proxied Auto

На этом этапе, если карта адресов для зоны example.com указывает, что Cloudflare должен использовать 203.0.113.100 для проксируемых записей и указанная выше запись существует в той же зоне, ожидайте следующего:

  1. Cloudflare отвечает на DNS запросы, используя 203.0.113.100.

  2. Cloudflare проксирует запросы через CDN, а затем направляет их через GRE или CNI на исходный сервер 203.0.113.150 (который входит в защищённый префикс Magic Transit).

  3. В зависимости от того, реализован ли Magic Transit с модель direct server return либо egress Magic Transit, исходный сервер отвечает Cloudflare одним из следующих способов:

    • Напрямую через интернет в модели Magic Transit с прямым возвратом трафика от сервера (direct server return)
    • Обратно через туннель или туннели Magic GRE в модели исходящего трафика Magic Transit
  4. Когда ответ HTTP покидает сеть Cloudflare и возвращается клиенту, исходным IP адресом ответа становится 203.0.113.100 (IP адрес, на который изначально поступил HTTP запрос).

Пример

Предположим, что 203.0.113.100 также был исходным IP-адресом, DNS-запись выглядела бы следующим образом:

Тип Название IP-адрес Статус прокси TTL
A www 203.0.113.100 Proxied Auto

5. (Дополнительно) Добавьте функциональность 7 уровня

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