네트워크

X-Forwarded-For (XFF) 헤더

GEELL 2025. 12. 2. 16:42
728x90
반응형
SMALL

1. X-Forwarded-For (XFF) 헤더란 무엇인가요?

  • 정의: 클라이언트의 실제 IP 주소를 식별하기 위한 HTTP 요청 헤더의 한 종류입니다.
  • 역할: 클라이언트 IP를 HTTP 헤더에 담아 중간 장비(L4/프록시 서버) 웹 서버로 전달하는 역할을 합니다.
  • 위치: 애플리케이션 계층(L7), 즉 HTTP 프로토콜 내에 담겨있는 데이터일 뿐입니다. (네트워크 계층의 IP 주소와는 다름)

2. XFF가 필요한 이유는 무엇인가요?

  • 문제 상황: 서비스 구조(클라이언트 - L4 - 서버)에서 L4 스위치가 FNAT(Full Network Address Translation)를 수행할 때, 클라이언트의 IP를 자신의 IP로 변경하여 서버에 요청을 보냅니다.
  • 결과: XFF가 없으면 서버는 요청이 L4의 IP에서 온 것으로만 인식하고, 실제 클라이언트의 IP는 알 수 없습니다.
  • 해결: XFF 헤더를 통해 중간 장비가 클라이언트의 실제 IP를 서버에 알려주어, 서버가 정확한 IP를 식별하게 합니다.

3. 서버는 XFF를 어떻게 활용하나요? (목적)

XFF를 사용하는 주된 목적은 애플리케이션 계층(L7)의 정확성을 확보하는 것입니다.

  • 로그 기록: 웹 서버 로그에 중간 장비 IP가 아닌, 실제 클라이언트 IP를 정확하게 기록하기 위함입니다.
  • 서비스 로직: IP 기반 접근 제어(차단/허용), 부정 행위 방지, 지역별 서비스 제공 등 클라이언트의 실제 IP가 필요한 모든 애플리케이션 기능을 정확하게 실행하기 위함입니다.

4. 서버는 어떤 IP로 응답하나요? (네트워크 경로)

  • 응답 IP: 서버는 XFF 헤더의 클라이언트 IP가 아닌, 요청이 들어온 패킷의 발신지 IP(L4 스위치 IP)로 응답을 보냅니다.
  • 이유: 응답 경로는 네트워크 계층(L3/L4)에서 처리되는 통신 원칙을 따르기 때문입니다. L7 데이터인 XFF 헤더는 응답 패킷의 목적지를 결정하는 데 사용되지 않습니다.
  • 경로: 응답 패킷은 서버 L4 클라이언트 순서로 전달됩니다.
728x90
반응형
LIST