# コンテナネットワーク分離
## 定義
コンテナネットワーク分離(container network isolation)とは、同じホスト OS カーネルを共有する複数のコンテナ間で、ネットワーク通信を未許可の相手や改竄されたパケットから保護する隔離技術である。伝統的には Linux bridge、Open vSwitch、iptables、eBPF ベースの CNI プラグイン(Flannel、Calico、Cilium 等)によって IP/MAC アドレスベースのルーティングやアクセス制御が行われる。しかし、これらの手法はパケットヘッダの偽装やホスト OS のネットワークポリシー改竄に対して脆弱な場合がある。(Source: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]] §2.3)
## 横断的知見
- **ヘッダベース分離の限界とコンテキストベース検証**: 既存のネットワークパス分離は IP/MAC アドレスやラベルに依存するため、ARP スプーフィングや IP スプーフィングで回避可能。Subaco はハードウェア仮想化のコンテキストスイッチ情報(Intel VT-x の I/O ポート空間、BDF 等)を使って、パケットヘッダに依存しない送信元コンテナの検証を行う。これは「ヘッダを検証する」から「誰が送ったかを検証する」へのアプローチ転換である。(Source: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]] §4.1)
- **分離強化と性能のトレードオフは層で変わる**: Docker のデフォルト NAT ネットワーク(ispass 2015)は高パケットレートで遅延増加する一方、Subaco の実験では TCP スループットに大きな差はなく、UDP でのみ約 43% の低下が見られた。つまり、分離強度を上げてもワークロードによっては性能影響が小さい領域があり、分離対象と評価指標を選ぶことが重要。(Source: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]] §6.2.3, [[@2015__ISPASS__An Updated Performance Comparison of Virtual Machines and Linux Containers]])
## 未解決の問い
- コンテナネットワーク分離において、L2/L3/L4 の各層でどの程度の偽装攻撃を防ぐべきか。アプリケーション特性に応じた「必要最小限の分離」はどう定義するか。
- eBPF/XDP ベースのパケット検証と、ハードウェア仮想化ベースの検証(Subaco)は、どの脅威モデルと性能要件で使い分けるべきか。
- マルチテナント環境でホスト OS のネットワークリソース改竄を防ぐため、ハイパーバイザ層でのポリシー強制以外にどのような手法が有効か。
## 関連
- ソース: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]]
- 概念: [[Sandbox Tailoring]] / [[Para-passthrough Hypervisor]] / [[コンテナ仮想化]] / [[パケットフィルタリング]] / [[eBPF]]
- エンティティ: [[Yuki Nakata]] / [[Katsuya Matsubara]] / [[Ryosuke Matsumoto (SAKURA internet)]]
- 関連 MOC: [[Cloud Container Orchestration]]
## 出典
- [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]](§2 Network Isolation for PaaS/FaaS Containers, §4 Subaco, §6.1 Security Analysis)