Proxy Protocol 설정 및 사용하는 이유

2025. 12. 22. 17:45·네트워크
728x90
반응형

Proxy Protocol이란?

Proxy Protocol은 TCP(또는 UDP) 기반 연결에서 중간 프록시 장비가 프록시 이전의 실제 클라이언트 IP 및 PORT정보를 최종 목적지 서버로 전달하기 위해 사용되는 프로토콜입니다.

 

Proxy Protocol은 TCP Header가 아닌 TCP Payload의 시작 부분에 클라이언트 정보가 포함되도록 정의된 프로토콜입니다.

## Protocol은 구문, 의미, 타이밍이 맞아야 함.

## 따라서 보내는 쪽에서도 Proxy Protocol이 세팅이 돼 있어야 하며, 받는 쪽에서도 Proxy Protocol 관련 설정이 돼 있어야 함.

 

최종적으로 정리하자면

Proxy Protocol은 TCP 헤더를 변경하지 않으며, TCP 연결 이후 TCP payload의 첫 데이터에 별도의 헤더를 삽입합니다.
해당 헤더는 커널이 아닌 애플리케이션에서 해석해야 하며, 프록시 장비뿐 아니라 서버 측에서도 Proxy Protocol을 지원해야 합니다.

 

Proxy Protocol은 TCP 연결이 설정된 이후, HTTP 요청(GET / HTTP/1.1)보다 앞선 TCP payload의 시작 지점에 포함됩니다.
v1은 payload의 첫 바이트부터 ‘PROXY ’ 문자열로 시작하며, v2는 payload의 첫 12바이트에 고정된 시그니처를 포함합니다.


Proxy Protocol 사용하는 이유

Proxy Protocol은 프록시나 로드밸런서를 거치는 환경에서도, 최종 서버가 실제 클라이언트의 IP 주소와 포트 정보를 정확히 인식할 수 있도록 하기 위해 사용됩니다. 

## L7단에서는 X-forwarded-for 사용


Proxy Protocol V1과 V2차이

Proxy Protocol에는 V1과 V2가 있으며 각 각의 장단점이 있습니다. 

 


Version 1

 

장점

  • 텍스트 기반(ASCII) 으로 사람이 바로 읽을 수 있음
  • 구현이 단순하여 호환성이 매우 높음

단점

  • 확장 정보(TLV 등)를 담을 수 없음

Version 2

 

장점

  • TLV 구조를 통해 추가 정보(SSL, SNI 등) 전달 가능
  • 바이너리 기반으로 파싱 성능이 우수함

단점

  • 사람이 직접 읽기 어려워 디버깅이 까다로움

 

Proxy Protocol 프록시 장비 설정(F5 기준)

iRule만 사용, 공식사이트에서 확인 가능하며 V1, V2 두 개 모두 확인 가능


Proxy Protocol 서버 설정(Nginx 기준)

https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/

## Nginx의 경우 V1, V2를 알아서 호환하기에 위 설정만 진행해도 V1, V2 모두 사용할 수 있습니다.

 

 

 

728x90
반응형

'네트워크' 카테고리의 다른 글

[스위치 동작 방식] Frame Forward 방식(스위치 동작 방식)  (1) 2025.05.28
상태 코드 - 304 Not Modified  (0) 2025.05.27
HTTP 버전 프로토콜에 따른 기능 차이  (0) 2023.10.25
"이 사이트 보안 인증서에 대한 해지 정보를 사용할 수 없습니다" 해결방법  (0) 2023.03.03
HTTP Version  (0) 2022.08.29
'네트워크' 카테고리의 다른 글
  • [스위치 동작 방식] Frame Forward 방식(스위치 동작 방식)
  • 상태 코드 - 304 Not Modified
  • HTTP 버전 프로토콜에 따른 기능 차이
  • "이 사이트 보안 인증서에 대한 해지 정보를 사용할 수 없습니다" 해결방법
Royal!
Royal!
Bachelor of Arts. Bachelor of Science in Engineering. Master of Science in Engineering (In Progress). Job Title: Infrastructure & Security & Cloud Engineer. Etc: Mentor at Fourth Industrial Revolution Center.
  • Royal!
    Security
    Royal!
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 운영체제
      • 네트워크
      • 클라우드
      • 서버
        • Container
      • 보안
      • 프로그래밍
        • Python_혼자 끄적끄적
        • Python_AI(영상처리)
        • 빅데이터
        • C_정보올림피아드 Language_Coder
        • C_QnA
      • 자격증
        • 정보보안기사
        • 정보처리기사
        • ADsP
        • CPPG
        • 보안법률
        • NCA~NCP
        • AWS Certified Solutions Arc..
      • 기타
        • 면접일지
        • 기타 활동
        • 인턴활동
        • 논문 요약
        • Hackerschool FTZ
        • 리버싱 걸음마
      • 기타 교육
        • KISA 정보보호제품실습군
        • 빅데이터_분석실무
        • 시큐어코딩진단전문교육(호남정보보호센터)
        • SW테스트 전문가 과정(ISTQB CTFL자격)
        • 정보보호 컨설팅 전문가 양성과정
        • K-Shield Jr_악성코드분석
        • K-Shield Jr_침해사고분석
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SSRF 완화방법
    F5 WAF
    2025블록체인누리단
    nce덤프
    블록체인
    행정기반서비스
    openstack F5연동
    LBaaS설치
    SSRF란
    openstack설치
    proxy protocol
    LBaaS
    openstack lbaas
    openstack LBaaS설치
    AuroraPay
    nce dump
    ai
    F5 SSRF
    F5
    SSRF 막는 방법
    proxy protocol 설정
    WAF SSRF
    리드포인트시스템
    SSRF 방어방법
    지그립토
    네이버클라우드 ftp 설정
    F5 AWAF
    F5 LBaaS
    왓콘
    수호아이오
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Royal!
Proxy Protocol 설정 및 사용하는 이유
상단으로

티스토리툴바