프록시 프로토콜 사용
IBM Cloud Internet Services 패킷을 서버로 전달하기 전에 가로채서 클라이언트 IP를 조회하면 CIS 실제 클라이언트 IP가 아닌 님의 IP입니다. 그러나 실행하는 일부 서비스에서는 실제 클라이언트 IP를 알아야 할 수도 있습니다. 이러한 경우에는 프록시 프로토콜을 사용할 수 있습니다. CIS 클라이언트 IP를 서비스에 전달합니다.
프록시 정보 전송은 TCP 또는 UDP 사용 여부에 따라 달라집니다. TCP의 경우 Range는 프록시 프로토콜 추가를 지원합니다. v1, 이는 Amazon ELB 및 NGINX에서 지원하는 사람이 읽을 수 있는 버전입니다. UDP 애플리케이션의 경우, CIS Simple Proxy Protocol이라는 사용자 정의 프록시 프로토콜을 개발했습니다.
이 기능을 사용하려면 Enterprise 요금제가 필요합니다. 업그레이드하려면 계정팀에 문의하세요. 자세한 내용은 CIS 요금제 비교를 참조하세요.
TCP용 프록시 프로토콜 v1 활성화하기
- CIS 콘솔에서 보안 섹션으로 이동합니다.
- 범위 탭을 선택합니다.
- PROXY 프로토콜을 사용할 애플리케이션을 찾아 클릭하세요. 구성.
- 메뉴에서 다음을 선택하세요. 프록시 프로토콜 v1.
TCP 애플리케이션이 프록시 프로토콜을 사용하도록 구성된 경우 v1, CIS 각 인바운드 TCP 연결 앞에 프록시 프로토콜 일반 텍스트 헤더를 추가합니다.
프록시 프로토콜 v1 머리글
프록시 프로토콜은 모든 연결에 클라이언트 IP 주소와 포트를 보고하는 헤더를 추가합니다. 프록시 프로토콜 일반 텍스트 헤더의 형식은 다음과 같습니다:
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
다음은 프록시 프로토콜 라인의 예입니다. IPv4 주소:
PROXY TCP4 192.0.2.0 192.0.2.255 42300 443\r\n
다음은 프록시 프로토콜 라인의 예입니다. IPv6 주소:
PROXY TCP6 2001:db8:: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 42300 443\r\n
프록시 프로토콜 활성화 v2 TCP/UDP용
- CIS 콘솔에서 보안 섹션으로 이동합니다.
- 범위 탭을 선택합니다.
- 프록시 프로토콜을 사용할 응용 프로그램을 찾아 클릭합니다. 구성.
- 메뉴에서 다음을 선택하세요. 프록시 프로토콜 v2.
TCP 애플리케이션이 프록시 프로토콜을 사용하도록 구성된 경우 v2, CIS 각 인바운드 TCP 연결 앞에 프록시 프로토콜 바이너리 헤더를 추가합니다.
UDP 애플리케이션이 PROXY 프로토콜을 사용하도록 구성된 경우 v2, CIS 프록시 프로토콜 바이너리 헤더를 사용하여 스트림의 첫 번째 UDP 데이터그램 앞에 추가합니다.
프록시 프로토콜 v2 머리글
프록시 프로토콜은 모든 연결에 클라이언트 IP 주소와 포트를 보고하는 헤더를 추가합니다.
프록시 프로토콜 바이너리 헤더 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
프록시 프로토콜 바이너리 헤더 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
UDP에 대한 단순 프록시 프로토콜 활성화
UDP를 사용하는 경우 UDP용으로 특별히 개발된 경량 프로토콜인 Simple Proxy Protocol을 사용하여 클라이언트 소스 IP 및 포트 정보를 얻을 수 있습니다.
활성화하려면 구성 Range 애플리케이션에서 설정을 전환합니다. 단순 프록시 프로토콜 에게 On.
단순 프록시 프로토콜은 원본 클라이언트 소스 정보를 포함하여 동일한 헤더가 있는 클라이언트용 패킷 앞에도 원본이 추가되어야 함을 나타냅니다. 이는 들어오는 패킷이 실제로 클라이언트를 위한 것인지 확인하기 위해 수행됩니다.