ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NLB의 Proxy Protocol
    DevOps 2025. 3. 27. 22:41
    728x90

    NLB(Network Load Balancer)에서 Proxy Protocol은 클라이언트의 원래 IP 주소와 포트 정보를 백엔드 서버에 전달하기 위한 기능입니다. 기본적으로 NLB는 트래픽을 전달하면서 클라이언트의 IP 정보를 숨기기 때문에, 백엔드 서버에서는 요청이 어디서 왔는지 알 수 없어요. 이때 Proxy Protocol을 사용하면, 클라이언트의 원래 IP 주소를 포함한 메타 정보를 NLB가 백엔드에 넘겨줄 수 있습니다.

     

     

    왜 필요한가요?

    • 보안 로깅: 누가 접속했는지 백엔드 서버에서 로깅하려면 원래 IP가 필요함.
    • IP 기반 액세스 제어: 방화벽이나 애플리케이션에서 클라이언트 IP로 접근 제어하려면 반드시 원래 IP가 필요함.
    • 세션 추적/분석: 분석 도구나 세션 관리에서 클라이언트 IP가 필요할 수 있음.

     

     

    작동 방식

    Proxy Protocol은 TCP 연결의 처음에 원래 클라이언트의 정보를 담은 헤더를 추가해요.

    예시 (Proxy Protocol v1):

    PROXY TCP4 203.0.113.1 192.0.2.1 56324 443\r\n

     

    • 203.0.113.1 → 클라이언트 IP
    • 192.0.2.1 → 백엔드 서버 IP
    • 56324 → 클라이언트 포트
    • 443 → 서버 포트

     

    사용 시 주의할 점

    • 백엔드 서버가 Proxy Protocol을 지원해야 해요. (예: Nginx, Envoy, HAProxy 등은 설정으로 지원)
    • TLS termination이 NLB 뒤에서 이루어지는 경우에는 잘 작동하지 않을 수 있음.
    • 설정 후 테스트는 꼭 필요해요. 헤더를 처리하지 못하면 서버에서 에러가 날 수 있어요.

     

    728x90

    'DevOps' 카테고리의 다른 글

    SLO  (0) 2025.05.20
    Platform Engineering 이란  (0) 2025.04.03
    robots.txt 개념  (0) 2025.03.26
    Elasticsearch의 클러스터, 노드, 샤드, 리플리카의 개념  (0) 2025.03.25
    Elasticsearch와 OpenSearch의 차이점  (0) 2025.03.25
Designed by Tistory.