ブリッジ不要のVMゲストネットワーキング
各VMに個別の仮想ネットワークインターフェース(tap)を割り当て、ブリッジを介さずに直接ホストのネットワークスタックと通信させる方式を解説。従来のブリッジ方式と比べ、セキュリティ分離とパフォーマンスが向上し、シンプルな構成が可能になる。カーネル内のルーティングとiptables/nftablesを用いて、VMごとに独立したネットワーク設定を実現する実装例も紹介。
背景メモ
- この記事が扱うのは、ホスト型仮想マシン(KVMなど)において、各VMに独立したネットワーク接続を持たせる方法。従来のLinuxブリッジを使わずに実現する点がテーマ。
- **Linuxブリッジ**は、VM同士やホストとVMを仮想的なスイッチでつなぐ標準的な仕組み。しかし、ブリッジを使うとホストのネットワークスタックとVMのトラフィックが密結合し、パフォーマンス問題や構成の複雑さ、セキュリティ上の懸念(例:VMが同じL2ドメインに露出すること)が生じる。
- 代替手法として、**macvtap**(パススルー方式でVMに直接物理NICのMACアドレスを割り当てる)や**OVS(Open vSwitch)**、**vethペア+ルーティング**(仮想ケーブルでVMとホストをつなぎ、ルーティングで分離)などがある。
- 記事は特に「vethペア+ルーティング」構成の実装手順を詳細に解説。各VMにホスト側がルーティング可能な独立したIPを与え、ブリッジ不要でNATやファイアウォールによる細かい制御を可能にする。
- Spacescaleは独創的なLinuxネットワーク設定事例を発信する技術ブログ。この記事の読者は、libvirtやDockerなどで標準的なブリッジネットワークに不満を持つインフラ技術者を想定。