프록시(클라이언트를 대신하여 백엔드 오리진에 연결하는 서버)를 포함하는 네트워크에서는 클라이언트 IP 주소와 같은 원래 TCP 연결 매개변수가 프록시에서 손실될 가능성이 높습니다. 보안 및 액세스 제어 정책을 적용하려고 할 때 추가 문제가 발생합니다(예: 원본 서버에서 IP 허용/차단 목록에 대한 클라이언트 IP 주소 추가 또는 클라이언트 IP 주소를 기반으로 분석 수행).
클라이언트 IP 주소를 보존하는 방법은 무엇입니까?
씨디네트웍스' 고속 데이터 전송(HDT) 이러한 문제를 해결하기 위해 프록시에 구축된 터널을 통한 데이터 전송을 가속화합니다. HDT는 원본 서버에 클라이언트 정보를 보내는 여러 가지 방법을 제공합니다.
XFF(X-Forwarded-For) HTTP 헤더
XFF(X-Forwarded-For) HTTP 헤더 필드는 HTTP 프록시를 통해 웹 서버에 연결하는 클라이언트의 원래 IP 주소를 식별하기 위한 일반적인 방법입니다. 결과적으로 HDT는 기본적으로 클라이언트 요청에 XFF 헤더를 삽입하여 HTTP 트래픽에 대한 원래 클라이언트 IP 주소를 포함합니다.
XFF 필드의 일반적인 형식은 다음과 유사합니다.
X-Forwarded-For: 클라이언트, 프록시1, 프록시2
요소는 쉼표로 구분되며 쉼표 주위에 선택적 공백이 있습니다. 맨 왼쪽 IP 주소는 원래 클라이언트 IP 주소이고 그 뒤에 요청을 전달한 각 연속 프록시의 IP 주소가 옵니다(IP 주소는 요청을 수신한 프록시에서 추가됨).
예:[3]
X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178
X-Forwarded-For: 203.0.113.195
X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348
프록시 프로토콜
HTTP와 달리 다른 프로토콜은 동일한 수정 사항을 채택하지 않을 수 있습니다. 이러한 경우 TCP(전송 제어 프로토콜) 계층에서 작동하는 프록시 프로토콜은 적용 범위를 TCP/IP를 통한 모든 프로토콜(예: SMTP, IMAP, FTP 및 전용 데이터베이스 프로토콜)로 확장하여 이러한 격차를 메웁니다.
PROXY 프로토콜은 TCP 연결 시작 부분에 클라이언트의 IP 주소가 포함된 헤더를 추가합니다. 프록시는 연결이 설정된 후 짧은 헤더를 보내고 수신자는 수락되면 이를 구문 분석합니다.
PROXY 프로토콜 버전 1은 디버깅을 용이하게 하기 위해 사람이 읽을 수 있는 IP 주소를 유지하는 데 중점을 두었습니다. 버전 2는 특히 ASCII 형식으로 전송하고 구문 분석하는 데 비용이 많이 드는 IPv6 주소를 처리할 때 보다 효율적으로 생성하고 구문 분석할 수 있는 헤더의 이진 인코딩에 대한 지원을 추가합니다.
HDT는 PROXY 프로토콜 헤더의 두 버전을 모두 보낼 수 있습니다. 단, 송신측과 수신측 모두 해당 프로토콜을 지원해야 하므로 원본 서버에서 이를 수락할 수 있어야 합니다.
TCP 옵션 필드
TCP 계층에서 클라이언트 IP 주소를 보존하는 또 다른 방법은 TCP 헤더 옵션 필드를 사용하는 것입니다. TCP에는 다음으로 식별되는 선택적 헤더 필드에 대한 조항이 있습니다. 옵션 종류 필드. HDT는 TCP 옵션 78 필드에 클라이언트 세부 정보를 추가하고 백엔드 서버로 보낼 수 있습니다. 클라이언트 정보를 검색하려면 구문 분석 시 옵션 필드를 수용하도록 백엔드 서버를 구성해야 합니다. F5 장치를 통해 TCP 트래픽에 대한 TCP 옵션에 액세스하는 방법에 대한 자세한 내용은 문서를 참조하십시오. iRules에서 TCP 옵션 액세스.
HDT 플랫폼에서 어떻게 활성화합니까?
HDT가 기본적으로 지원하는 HTTP/HTTPs 트래픽용 XFF 외에 HDT 지원팀에 문의 클라이언트 IP 주소를 보존할 수 있습니다. HDT 지원팀의 전문가가 귀하의 문제를 조사하고 귀하에게 가장 적합한 솔루션으로 구성을 완료합니다. 맞춤형 구성을 적용하면 단 몇 분 만에 모든 작업을 완료할 수 있습니다. 그렇게 간단합니다!