HBONE
HBONE(或基於 HTTP 的覆蓋網路環境)是 Istio 元件之間使用的安全通道協定。HBONE 是 Istio 特有的術語。它是一種機制,可以透過單一的 mTLS 加密網路連線(一個加密通道),透明地多工處理與許多不同應用程式連線相關的 TCP 資料流。
在目前 Istio 中的實作,HBONE 協定由三個開放標準組成
HTTP CONNECT 用於建立通道連線,mTLS 用於保護和加密該連線,而 HTTP/2 用於在單一安全且加密的通道上多工處理應用程式連線串流,並傳遞額外的串流層級中繼資料。
安全性與租戶
根據 mTLS 規範的強制要求,每個底層通道連線都必須具有唯一的來源和唯一的目的地身分,並且這些身分必須用於建立該連線的加密。
這表示透過 HBONE 協定連線到相同目的地身分的應用程式連線,將會在相同的共享、加密且安全的底層 HTTP/2 連線上進行多工處理。實際上,每個唯一的來源和目的地都必須獲得自己專用的安全通道連線,即使該底層專用連線正在處理多個應用程式層級連線。
實作細節
根據 Istio 的慣例,ztunnel 和其他理解 HBONE 協定的代理會在 TCP 埠 15008 上公開接聽器。
由於 HBONE 僅是 HTTP/2、HTTP CONNECT 和 mTLS 的組合,因此在啟用 HBONE 的代理之間流動的 HBONE 通道封包看起來像下圖所示
HBONE 通道的一個重要特性是,原始應用程式請求可以在不以任何方式更改底層應用程式流量串流的情況下透明地進行代理。這表示連線的中繼資料可以傳遞到目的地代理,而無需更改應用程式請求,例如,無需將 Istio 特有的標頭附加到應用程式流量。
隨著環境模式和標準的發展,未來將研究 HBONE 和 HTTP 通道(例如 UDP)的其他用例。