클라우드(AWS)/DVA-C02

[AWS] X-Forwarded-For (XFF) Headers란?? 진짜 아주 쉽게 정리

찌르비 2024. 11. 18. 19:54
반응형

◇  공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 

 

 

 

X-Forwarded-For (XFF) 헤더

X-Forwarded-For (XFF) Headers

X-Forwarded-For(XFF)는 "클라이언트의 IP 주소"를 전달하는 데 사용되는 HTTP 요청의 Header(헤더)이다.

주로 Load Balancer(로드 밸런서)나 Proxy Server(프록시 서버)가 클라이언트의 HTTP 요청을 처리할 때, 클라이언트의 실제 IP 주소를 뒤에 있는 서버로 전달하기 위해 사용된다.

(아래의 이미지를 보면 이해하기 쉽다)

 

X-Forwarded-For Header 흐름

  1. 사용자(Client)가 웹사이트에 접속한다. ( 200.0.0.10 주소로 부터 웹 서버에 HTTP 요청을 보낸다)
  2. HTTP 요청이 프록시 서버나 로드 밸런서를 통해 전달되어 해당 서버는 클라이언트의 실제 IP 주소를 X-Forwarded-For(XFF) 헤더에 추가한다.
  3. HTTP 요청이 뒤에 있는 찐 서버로 전달될 때, 서버는 XFF 헤더를 읽어 사용자의 IP 주소를 알 수 있다.

 

X-Forwarded-For Header 형식

X-Forwarded-For Header는 IP 주소 목록을 가집니다. 이 목록은 각 프록시나 로드 밸런서가 요청을 처리할 때마다 추가된다.

X-Forwarded-For: <client-ip>, <proxy-ip1>, <proxy-ip2>, .....

<client-ip>: 원래 클라이언트의 IP 주소
<proxy-ip1>: 첫 번째 프록시

예시)

X-Forwarded-For: 203.0.113.195, 198.51.100.101, 192.0.2.43

 

 

 

AWS 서비스의 X-Forwarded-For

AWS의 ELB나 CloudFront는 기본적으로 HTTP 요청 헤더에 X-Forwarded-For가 추가되어 있다.
이를 통해 백엔드 서버는 클라이언트의 원래 IP를 알 수 있다.

 


🤔 문제

한 회사가 AWS의 Elastic Load Balancer 뒤에 애플리케이션을 배포할 계획입니다. 이 애플리케이션은 HTTP/HTTPS 리스너를 사용하며 클라이언트 IP 주소에 액세스할 수 있어야 합니다.
이 요구 사항을 충족하는 로드 밸런싱 솔루션은 무엇입니까?

 

  1. Application Load Balancer(ALB)와 X-Forwarded-For 헤더를 사용합니다.
  2. Network Load Balancer(NLB)를 사용합니다. NLB와 대상 애플리케이션에서 프록시 프로토콜 지원을 활성화합니다.
  3. Application Load Balancer를 사용합니다. 인스턴스 ID로 대상을 등록합니다.
  4. Network Load Balancer와 X-Forwarded-For 헤더를 사용합니다.

정답

더보기

정답. 1번

728x90
반응형