私はsysadmチームでLinuxブリッジング、特にVLANインターフェイスを追加するためにブリッジを作成する必要性について議論しました。
実際には、VLANを作成するために、Linuxブリッジがレイヤ2パケットルーティングを許可するという理論を得ました。
ip link add link eth0 name eth0.100 type vlan id 100
うまくいきます。 VLANを作成してbr0
からブリッジにVLANを追加する必要はありません。
たとえば、パケットが複数の物理インターフェイスを持つホストに到着すると、Linuxカーネルは各物理インターフェイスが別の物理スイッチに接続されていても、パケットをどこにルーティングするかを完全に決定できます。
それでは、なぜまだlinuxbridgeが必要なのですか?
また、仮想化の観点から、ホストとゲスト間の通信を可能にするためにハイパーバイザーにLinuxブリッジが必要な理由は何ですか?
答え1
ベアメタル(仮想化されていない)ホストでは、通常、VLANインターフェイスを追加するためにブリッジを作成する必要はありません。
ただし、ハイパーバイザーでは、すべてのネットワークセグメントが基本的に2つの部分に分かれています。
- 外部世界とハイパーバイザー間の物理ネットワークセグメント
- ホストと仮想マシン間の仮想ネットワークセグメント
互いに通信できるのは2つではなく3つです。ハイパーバイザー、VM、そして外の世界。
ハイパーバイザーのルーティングを使用して、仮想マシンと外部世界間の接続を提供できますが、これは不便です。 DHCPを使用するには、ホスト上の仮想マシンに少なくともDHCPヘルパーが必要です。一部のクラスタリング技術では、すべてのノードが同じIPネットワークセグメントに存在する必要があるため、ルーティングを使用すると、これらのクラスタのP2V変換が混乱する可能性があります。ハイパーバイザーが非常に大きなサーバーでない限り、実行中の実際のVMの数はかなり少ない可能性が高いため、すでに制限されているIPv4アドレススペースを非効率的に小さなサブネットに分割するか、ポイントツーポイント接続を使用する必要があります。 。
ブリッジングを使用すると、ハイパーバイザーとその仮想マシンのネットワーク接続が完全に独立している複数のベアメタルを持つスイッチのアップリンクを最も実用的に使用する方法で、ホストとその仮想マシンを外部の世界に表示できます。接続されたホストを区別する方法はありません。
複数のVLANをサポートする1つの大きなブリッジの代わりに、各VLANに対して別々のブリッジを作成することにした決定は、本質的に設計/プレゼンテーションの選択です。ハイパーバイザーネットワークの実際の構成は「論理」に密接に従いますが、何が何であるかについてのネットワーク図をより簡単に視覚化できます。ハイパーバイザー内のネットワークに対して別々の「仮想論理」および「仮想物理」図を維持する必要なしに発生します。
VMwareはブリッジをvSwitchまたは仮想スイッチと呼ぶことにしました。ネットワークスイッチはデフォルトでマルチポートブリッジなので、必要に応じてLinuxハイパーバイザーのブリッジを「仮想スイッチ」と呼ぶことができます。
答え2
もちろん、VLANを使用するためにブリッジは必要ありません。
ただし、必要に応じて次のことができます。
- 異なるネットワークを「マージ」して単一のエンティティとして処理します(例:ethインターフェイスとwlan)。 LAN側のホームWiFiルーターの場合と同じです。つまり、ルーティングを使用せずに、L2で異なるセグメントを接続します。
- スイッチを構築します(実際には、各スイッチはそのポート間のすべてのVLANを接続します)。これは仮想化の例です。サーバーが仮想ではなく物理的な場合は、物理スイッチを使用してネットワークに接続できます。
- フェールオーバー用の構成の簡素化 - 基本インターフェイス自体の構成を変更するよりも、物理的(または論理的です) - たとえば、物理インターフェイスで作成されたVLANでサポートされている「仮想」ブリッジインターフェイスを作成する方が良いかもしれません。たとえば、br-wanにはIP設定があり、以下のデバイス(wlan0、eth1、eth2.45)を簡単に切り替えることができます。ブリッジには固定MACアドレスがある可能性があるため、アクセス方法を変更するだけです。
- パケットトレースに表示されない隠し(L2)ファイアウォールまたはQoSシャッパー(またはスニファー)を作成します。
冗長性またはより高い帯域幅を提供するためにリンク集約(たとえばLACP)に使用される接続/チームである「ブリッジ」の特殊なタイプに注意してください。