Istio Hands-on Study [1기]

[9주차] Ambient Mode : HBONE

구구달스 2025. 6. 3. 18:53

🔒 HBONE: Istio의 안전한 터널링 기술 이해하기

  • Istio에서 사용하는 HBONE(HTTP-Based Overlay Network Environment)컴포넌트 간 안전한 통신을 위한 터널링 프로토콜입니다. 네트워크 트래픽을 암호화된 하나의 터널로 묶어서 안전하게 보내는 방법입니다. 

🛠️ HBONE이란?

  • HBONE은 Istio에서 사용하는 특별한 프로토콜로, 여러 애플리케이션 연결을 하나의 암호화된 터널로 묶어 전송합니다.
  • 이 터널은 mTLS로 보호되며, 여러 TCP 스트림을 효율적으로 관리합니다. 쉽게 말해, HBONE은 데이터를 안전하게 보내기 위한 '비밀 통로' 같은 역할을 합니다.
  • HBONE은 세 가지 표준 기술을 결합해 만들어졌습니다:
    • HTTP/2: 여러 연결을 하나의 터널로 묶는 기술.
    • HTTP CONNECT: 터널 연결을 설정하는 방법.
    • mTLS: 터널을 암호화하고 안전하게 만드는 보안 기술.

HBONE은
HTTP/2, HTTP CONNECT, mTLS를 사용해 안전한 터널링을 제공합니다.


🔐 보안과 tenancy

  • HBONE은 mTLS를 사용해 보안을 강화합니다. mTLS는 터널의 출발지와 도착지가 고유한 identity를 가져야 하며, 이를 기반으로 암호화를 설정합니다. 즉, 같은 출발지와 도착지로 가는 모든 연결은 하나의 암호화된 HTTP/2 터널을 공유합니다. 이렇게 하면 여러 연결을 효율적으로 관리하면서도 보안은 유지됩니다.

HBONE은
mTLS를 통해 각 터널에 고유한 identity를 부여하고 보안을 유지합니다.


🖥️ 구현 세부사항

  • Istio에서는 HBONE을 이해하는 ztunnel 같은 프록시가 TCP 포트 15008에서 동작합니다.
  • HBONE은 HTTP/2, HTTP CONNECT, mTLS를 조합해 데이터를 전송하며, 아래 다이어그램처럼 패킷이 구성됩니다:

https://istio.io/latest/docs/ambient/architecture/hbone/hbone-packet.svg

 

  • HBONE의 중요한 특징은 애플리케이션 트래픽을 변경하지 않고 투명하게 전달한다는 점입니다. 예를 들어, Istio 전용 헤더를 추가할 필요 없이 메타데이터를 목적지 프록시에 전달할 수 있습니다.

HBONE은
포트 15008에서 동작하며,
트래픽을 변경하지 않고 투명하게 전달합니다.


🔮 HBONE의 미래 활용

  • 현재 HBONE은 주로 TCP 트래픽을 처리하지만, 앞으로 ambient mode와 표준이 발전하면서 UDP 같은 다른 프로토콜에도 적용될 가능성이 있습니다. 이는 더 다양한 네트워크 환경에서 HBONE을 활용할 수 있게 할 것입니다.

📌 핵심 요약

  • HBONE은 Istio에서 사용하는 안전한 터널링 프로토콜로, HTTP/2, HTTP CONNECT, mTLS를 결합합니다.
  • mTLS를 통해 각 터널에 고유한 identity를 부여하며 보안을 유지합니다.
  • ztunnel은 포트 15008에서 HBONE을 처리하며, 트래픽을 변경하지 않고 투명하게 전달합니다.
  • 앞으로 UDP 같은 프로토콜에도 HBONE이 활용될 가능성이 있습니다.