
목차
개요
Ambient Mesh를 볼 때 가장 헷갈리는 지점은 이것입니다.
- sidecar가 없는데 트래픽을 어떻게 메시에 태우는가
- mTLS는 어디서 적용되는가
- L4와 L7은 어디서 갈라지는가
핵심은 istio-cni, ztunnel, HBONE 세 가지를 같이 보는 것입니다.
전체 흐름
Ambient 환경에서 기본 데이터 경로는 아래처럼 이해하면 됩니다.
source pod |
L7 기능이 필요한 경우에는 중간에 waypoint가 추가됩니다.
source pod |
즉, 기본은 ztunnel 기반 L4 secure overlay이고, 필요할 때만 waypoint가 들어옵니다.
1. istio-cni가 트래픽 redirection을 준비한다
Ambient Mesh는 sidecar injection 대신 istio-cni와 ztunnel의 협업으로 동작합니다.
istio-cni는 다음 역할을 맡습니다.
- pod 생성/삭제 이벤트 감지
- namespace 또는 pod에 ambient label이 붙는 변화 감지
- 대상 pod의 network namespace 안에 redirection rule 설정
즉, 애플리케이션 컨테이너 안에 프록시를 넣는 것이 아니라, pod의 네트워크 경로를 ztunnel로 우회시키는 방식입니다.
이 구조 덕분에 ambient는 대체로 다음 특성을 가집니다.
- sidecar container가 없음
- 애플리케이션 재배포 필요성이 낮음
- Kubernetes CNI와 비교적 투명하게 결합 가능
2. ztunnel이 노드 단위 L4 프록시 역할을 한다
ztunnel은 각 노드에 배치되는 경량 프록시입니다.
주요 역할은 다음과 같습니다.
- workload 간 트래픽의 mTLS 암호화
- workload identity 기반 상호 인증
- L4 AuthorizationPolicy 집행
- L4 telemetry 수집
중요한 점은 ztunnel이 L4까지만 처리한다는 것입니다.
HTTP header, method, path 같은 L7 정보 기반 제어는 ztunnel이 아니라 waypoint가 담당합니다.
3. Pod 내부에서 사용하는 주요 포트
Istio 공식 문서 기준으로 ambient redirection에서 자주 보게 되는 포트는 아래 3개입니다.
15001: egress 처리15006: 일반 plaintext ingress 처리15008: HBONE ingress 처리
흐름은 아래처럼 볼 수 있습니다.
App Pod outbound TCP |
애플리케이션은 평문 TCP/HTTP처럼 통신하는 것처럼 보이지만, 실제 노드 간 구간에서는 ztunnel이 mTLS와 터널링을 처리합니다.
4. HBONE이란 무엇인가
HBONE은 HTTP-Based Overlay Network Environment의 약자이며, Istio ambient에서 사용하는 보안 터널링 방식입니다.
현재 구현은 다음 세 가지를 조합합니다.
HTTP/2HTTP CONNECTmTLS
역할을 나누면 다음과 같습니다.
HTTP CONNECT: 터널 생성mTLS: 터널 암호화와 상호 인증HTTP/2: 여러 애플리케이션 연결을 하나의 보안 연결 위에서 다중화
즉, 여러 애플리케이션 연결을 하나의 암호화된 터널 위로 실어 보내는 방식입니다.
5. 왜 HBONE이 중요한가
HBONE은 원본 애플리케이션 트래픽을 굳이 수정하지 않으면서도, 프록시 간에 필요한 메타데이터와 identity를 전달할 수 있게 해줍니다.
- 애플리케이션 요청 본문이나 프로토콜을 바꾸지 않음
- Istio 전용 헤더를 앱 트래픽에 강제로 추가하지 않아도 됨
- source / destination identity 기준으로 안전한 터널 구성 가능
즉, Ambient Mesh가 비침투적인 운영 방식을 유지하면서 zero-trust 보안을 구현할 수 있는 핵심이 HBONE입니다.
6. waypoint가 들어오면 어디가 달라지나
waypoint가 없을 때:
ztunnel -> ztunnel- L4 정책, mTLS, 기본 telemetry 중심
waypoint가 있을 때:
ztunnel -> waypoint -> ztunnel- HTTP 라우팅, L7 AuthorizationPolicy, tracing, access log 같은 기능 사용 가능
정리하면:
ztunnel: 기본 L4 secure overlaywaypoint: 선택적 L7 processing
7. 운영자가 봐야 하는 체크 포인트
운영 이슈가 생기면 아래를 먼저 보는 편이 좋습니다.
- namespace 또는 pod에
istio.io/dataplane-mode=ambient라벨이 제대로 붙었는지 ztunnel로그에서inpod관련 메시지가 보이는지- pod network namespace 내부에
15001,15006,15008소켓이 열렸는지 - iptables 또는 redirection rule이 정상적으로 설정됐는지
- L7 기능이 필요한데 waypoint 없이 기대하고 있지는 않은지
실무에서 자주 헷갈리는 포인트도 있습니다.
- L7 정책은 ztunnel이 아니라 waypoint가 처리함
- redirection이 깨지면 정책 우회 또는 통신 실패가 생길 수 있음
- ambient는
ztunnel 단독이 아니라istio-cni + ztunnel모델로 봐야 함
한 줄 정리
Ambient Mesh의 기본 경로는 istio-cni가 트래픽을 ztunnel로 우회시키고, ztunnel이 HBONE/mTLS로 안전하게 전달하는 구조입니다.