← Cloudflare Spectrum / spectrum / reference
Почему имена хостов с включённым Spectrum могут отображаться в Layer 7 Analytics
Даже если Spectrum включён для обработки трафика уровня 4 (например, соединений TCP/UDP), вы всё равно можете видеть этот трафик на панели аналитики уровня 7 (L7). Это связано с тем, как уровень 7 Cloudflare CDN и Spectrum по-разному обрабатывают идентификацию клиента.
Как Spectrum определяет пользователя (уровень 4)
В Spectrum идентификация имени хоста клиента основана на IP-адресе Cloudflare, который клиент использует для подключения к границе сети. Обычно этот процесс выглядит так:
- Spectrum создает в зоне клиента DNS-имя хоста, указывающее на пограничный IP-адрес Spectrum, и связывает этот IP-адрес и порт с конфигурацией клиента.
- Клиент выполняет DNS-запрос для имени хоста Spectrum, получает периферийный IP-адрес Spectrum и подключается к этому IP-адресу и порту.
- Spectrum использует этот пограничный IP-адрес и порт, чтобы сопоставить соединение с конфигурацией клиента и идентифицировать его.
Этот процесс относится к уровню L4 и связывает имя хоста с конфигурацией клиента в части IP-адресов и портов.
Как CDN определяет пользователя (уровень 7)
- Клиент настраивает в своей зоне DNS-имя хоста, которое направляет трафик на его исходный сервер.
- Клиент выполняет DNS-запрос для имени хоста CDN, и DNS-сервер возвращает периферийный IP-адрес CDN. В отличие от Spectrum, этот IP-адрес используется в основном для управления трафиком, а не для идентификации клиента, поскольку один и тот же периферийный IP-адрес CDN могут использовать сразу несколько клиентов.
Для CDN определение клиента в значительной степени опирается на разрешение хостов во время TLS handshake (SNI) и в HTTP-запросе (Host заголовка). Обратите внимание, что CDN спроектирован так, чтобы принимать любой хост, соответствующий зоне клиента (например, *.example.com), даже если нет точного совпадения DNS уровня 7. Это означает, что даже имена хостов Spectrum или Load Balancer будут приниматься как допустимые в рамках *.example.com.
Пересечение областей: трафик уровня L7, проксируемый через Spectrum
Поскольку CDN принимает любое имя хоста в пределах вашей зоны (например, spectrum.example.com), HTTP трафик, который сначала должен проходить через прокси Spectrum, или даже HTTP трафик, предназначенный для приложения Spectrum только уровня 4, иногда может обрабатываться напрямую системой CDN уровня 7. Процесс выглядит так:
- Клиент подключается к периферийному IP-адресу CDN уровня L7, используя имя хоста приложения Spectrum (например,
spectrum.example.com) как во время TLS handshake, так и во время HTTP запроса. По сути, это означает, что клиент пытается обратиться кspectrum.example.comна неверном IP-адресе. - CDN принимает это имя хоста как часть зоны клиента на этапах TLS и HTTP, поскольку рассчитан на распознавание любого имени хоста в домене
*.example.com. В результате запрос проходит через CDN от имени зоны. - Однако при попытке CDN подключиться к исходному серверу выполняется внутренний DNS-запрос для HTTP-хоста, который разрешается в IP-адрес Spectrum (из
spectrum.example.comк граничному IP адресу Spectrum). В результате CDN устанавливает соединение с источником, которым выступает Spectrum, загружает его конфигурацию и перенаправляет запрос источнику Spectrum.
Это означает, что трафик для этого имени хоста обрабатывается стандартными продуктами CDN уровня L7, включая Analytics и журналы.
Блокировка нежелательного трафика уровня L7
Если вы хотите, чтобы трафик для имен хостов Spectrum, работающих только на уровне 4, не проксировался через уровень 7 к вашему источнику (включая нежелательные сканирования или запросы), рекомендуем настроить правило WAF (Web Application Firewall) уровня 7. Это правило может блокировать трафик, направленный на определенные имена хостов или порты, чтобы к вашей службе Spectrum поступал только легитимный трафик.
Например, вы можете создать правило WAF, блокирующее запросы к spectrum.example.com если только они не исходят от IP адреса Spectrum или BYOIP клиента Spectrum. Такой трафик по-прежнему регистрируется в Layer 7 Analytics, включая WAF Security Events, но это предотвращает его попадание не по адресу и повторное прохождение через CDN.