투명 프록시 모드

투명 프록시 모드 (Transparent Proxy)

투명 프록시 모드는 애플리케이션 구성을 수정하지 않고도 서비스 메시를 통해 통신할 수 있게 해 주는 기능이에요. 이 문서에서 투명 프록시 모드가 어떻게 트래픽을 사이드카로 보내고 서비스 의도를 활용해 라우팅하는지, 그리고 어떤 네트워킹 구성을 지원하는지 살펴볼게요.

출처: 문서

본문

이 문서는 애플리케이션이 구성을 수정하지 않고도 서비스 메시를 통해 통신할 수 있게 해 주는 투명 프록시 모드에 대한 개요를 제공합니다. 투명 프록시는 또한 메시를 우회하는 직접 인바운드 연결을 차단하여 애플리케이션 보안을 강화합니다.

소개 (Introduction)

서비스 메시 프록시가 투명 모드일 때 Consul 서비스 메시는 IPtables를 사용해 모든 인바운드·아웃바운드 트래픽을 사이드카로 보냅니다. Consul은 또한 서비스 의도에 구성된 정보를 사용해 라우트를 추론하므로, 업스트림을 명시적으로 구성할 필요가 없어집니다.

투명 프록시 활성화 (Transparent proxy enabled)

다음 다이어그램은 프록시가 투명 모드일 때 Consul이 트래픽을 라우팅하는 방법을 보여줍니다:

투명 프록시 비활성화 (Transparent proxy disabled)

투명 프록시 모드를 비활성화하면 명시적 업스트림을 수동으로 구성하고, 애플리케이션이 localhost:<port>에서 서비스를 쿼리하도록 구성하며, 서비스가 메시를 우회하지 못하도록 애플리케이션이 루프백 인터페이스에서만 수신하도록 구성해야 합니다.

다음 다이어그램은 투명 프록시 모드를 비활성화했을 때 Consul이 트래픽을 라우팅하는 방법을 보여줍니다:

투명 프록시는 Kubernetes 환경에서 사용할 수 있습니다. Kubernetes와의 통합의 일부로 Consul은 Kubernetes 서비스를 등록하고 사이드카 프록시를 주입하며 트래픽 리다이렉션을 활성화합니다.

지원되는 네트워킹 아키텍처 (Supported networking architectures)

투명 프록시 모드는 여러 네트워킹 아키텍처와 워크플로를 지원합니다. Consul DNS를 쿼리해 단일 서비스, 가상 서비스, 피어링된 클러스터의 장애 조치(failover) 서비스 인스턴스에 대한 업스트림을 발견할 수 있습니다.

투명 프록시 모드를 활성화했을 때 업스트림 발견을 위해 Consul은 다음과 같은 데이터센터 내 연결 유형을 지원합니다:

  • WAN 페더레이션 데이터센터 간 KubeDNS 조회
  • WAN 페더레이션 데이터센터 간 Consul DNS 조회
  • 피어링된 클러스터와 어드민 파티션의 KubeDNS 조회
  • 피어링된 클러스터와 어드민 파티션의 Consul DNS 조회

투명 프록시 모드는 또한 멀티포트(multiport) 서비스를 지원합니다. 자세한 내용은 Consul 멀티포트 문서를 참조하세요.

투명 프록시 모드의 상호 TLS (Mutual TLS for transparent proxy mode)

Consul Helm 차트를 사용해 Kubernetes에 Consul을 설치하면 투명 프록시 모드가 기본으로 활성화됩니다. 결과적으로 메시의 모든 서비스는 사이드카 프록시를 통해 통신해야 하며, 사이드카 프록시는 서비스 의도와 서비스 메시의 mTLS 암호화를 적용합니다. 새 서비스를 서비스 메시에 온보딩할 때 네트워크에 mTLS와 비-mTLS 트래픽이 섞여 있어 서비스 간 통신이 끊어질 수 있습니다.

온보딩 과정에서 허용적(permissive) mTLS 모드를 일시적으로 활성화하면 아직 완전히 온보딩되지 않은 서비스의 트래픽을 기존 메시 서비스가 받아들일 수 있습니다. 허용적 mTLS는 사이드카 프록시가 mTLS와 비-mTLS 트래픽 모두에 접근할 수 있게 해 줍니다. 추가 정보는 투명 프록시 모드에서 메시 서비스 온보딩을 참조하세요.

더 알아보기 (Learn more)