← Cloudflare Spectrum / spectrum / how-to
Включение Proxy protocol
Поскольку Cloudflare перехватывает пакеты перед их пересылкой на ваш сервер, при определении IP-адреса клиента вы увидите IP-адрес Cloudflare, а не настоящий адрес клиента.
Некоторым из ваших сервисов может потребоваться знать настоящий IP-адрес клиента. В таких случаях можно использовать протокол проксирования, чтобы Cloudflare передавал IP-адрес клиента вашему сервису. Способ передачи данных прокси зависит от того, используется ли TCP или UDP. Для TCP Spectrum поддерживает добавление Proxy Protocol v1 ↗, это удобочитаемая версия, поддерживаемая Amazon ELB и NGINX ↗. Для приложений UDP компания Cloudflare разработала собственный протокол прокси под названием Simple Proxy Protocol. Учтите, что Proxy Protocol не поддерживается для исходящего трафика Spectrum в Cloudflare WAN (ранее Magic WAN).
Включение Proxy Protocol v1 для TCP
-
На панели управления Cloudflare перейдите к разделу Spectrum страницу.
Перейдите в Spectrum ↗ -
Найдите приложение, которое будет использовать протокол PROXY, и выберите Настройте.
-
В раскрывающемся списке выберите PROXY Protocol v1.
Когда TCP-приложения настроены на использование PROXY Protocol v1, Cloudflare будет добавлять к каждому входящему TCP соединению текстовый заголовок PROXY Protocol.
Заголовок Proxy Protocol v1
PROXY Protocol добавляет к каждому соединению заголовок с указанием IP-адреса и порта клиента. Текстовый заголовок PROXY Protocol имеет следующий формат:
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"Пример строки PROXY Protocol для адреса IPv4 выглядит так:
PROXY TCP4 192.0.2.0 192.0.2.255 42300 443\r\nПример строки PROXY Protocol для адреса IPv6 выглядит так:
PROXY TCP6 2001:db8:: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 42300 443\r\nВключение Proxy Protocol v2 для TCP/UDP
-
На панели управления Cloudflare перейдите к разделу Spectrum страницу.
Перейдите в Spectrum ↗ -
Найдите приложение, которое будет использовать протокол PROXY, и выберите Настройте.
-
В раскрывающемся списке выберите PROXY Protocol v2.
Когда TCP-приложения настроены на использование PROXY Protocol v2, Cloudflare будет добавлять к каждому входящему TCP соединению двоичный заголовок PROXY Protocol.
Когда UDP-приложения настроены на использование PROXY Protocol v2, Cloudflare будет добавлять к первой UDP дейтаграмме потока двоичный заголовок PROXY Protocol.
Заголовок Proxy Protocol v2
PROXY Protocol добавляет к каждому соединению заголовок с указанием IP-адреса и порта клиента.
Двоичный заголовок PROXY Protocol для входящего адреса IPv4 имеет следующий формат:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| Proxy Protocol v2 Signature |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|Command| AF | Proto.| Address Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Двоичный заголовок PROXY Protocol для входящего адреса IPv6 имеет следующий формат:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| Proxy Protocol v2 Signature |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|Command| AF | Proto.| Address Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ IPv6 Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ IPv6 Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Включение Simple Proxy Protocol для UDP
При использовании Spectrum для UDP информацию об исходном IP-адресе и порте клиента можно получить с помощью Simple Proxy Protocol, лёгкого протокола, разработанного специально для UDP.
Чтобы включить эту функцию, выберите Настройте в приложении Spectrum и переключите настройку Simple Proxy Protocol в положение Включено.
Simple Proxy Protocol требует, чтобы источник также добавлял к пакетам, предназначенным для клиента, такой же заголовок с исходной информацией об источнике клиента. Это нужно для проверки того, что входящие пакеты действительно предназначены для клиента.
Подробнее о заголовках Simple Proxy Protocol см. в Заголовки Simple Proxy Protocol.