この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 4382|答える: 0

[出典] ネットワークカードも仮想化できますか? ネットワークカード仮想化技術Macvlanの詳細な説明

[リンクをコピー]
掲載地 2022/11/19 11:01:57 | | | |
01 マクヴラン入門

前回の記事では、いくつかのLinux仮想ネットワークデバイスについて触れました:tap/tun、veth-pair、bridge。これらは本質的にLinuxシステムが提供するネットワーク仮想化ソリューションであり、macvlanもその一つで、正確にはネットワークカード仮想化ソリューションです。 なぜならMacVlanの技術は物理的なNICは仮想的に複数の仮想NICに変換されますこれは、物理的なネットワークカードが複数のシャドウクローンを1つから複数のものまで行う技術に相当します。

02 MacVLAN の仕組み

MacVlanはLinuxカーネルでサポートされる新機能で、サポートされているバージョンにはv3.9-3.19および4.0+が含まれ、より安定したバージョンには4.0+が推奨されます。 一般的にカーネル加群の形で存在し、現在のシステムがこれを支持しているかどうかは以下の方法で判断できます。

最初のコマンドでエラーが出たり、2つ目のコマンドが返ってこない場合は、現在のシステムがMacVLANをサポートしておらず、カーネルのアップグレードが必要であることを意味します。

MacVLAN技術はVLANに少し似ていますが、実装の仕組みは全く異なります。 macVLANサブインターフェースは元のメインインターフェースから完全に独立しており、MACアドレスとIPアドレスで別々に設定できますが、VLANサブインターフェースとメインインターフェースは同じMACアドレスを共有します。 VLANはブロードキャストドメインを分割するために使われ、macvlanは同じブロードキャストドメインを共有します。

異なるサブインターフェースを通じて、MacVLANはトラフィック分離も実現できます。 MacVLANは、パケットの宛先のMACアドレスに基づいて、パケットをどの仮想NICに渡すべきかを決定し、仮想NICがパケットを上位層のプロトコルスタックに引き渡して処理します。


03 フォーモード

MacVLANサブインターフェース間の通信モードに応じて、MACVLANには4つのネットワークモードがあります。

  • プライベートモード
  • VEPA(バーチャルイーサネットポートアグリゲーター)モード
  • ブリッジモード
  • パススルーモード


デフォルトではVEPAモードが使用されます。

3.1 プライベート

このモードでは、同じプライマリインターフェース下にあるサブインターフェース同士が隔離され、通信ができません。 外部の物理スイッチから迂回しても、容赦なく廃棄されます。




3.2 ヴェパ

このモードでは、サブインターフェース間の通信は802.1Qbg/VPEA(物理的または仮想的)をサポートする外部スイッチに転送され、その外部スイッチを経由して転送され、その後戻る必要があります。

注:802.1Qbg/VPEA機能は、スイッチがヘアピン機能をサポートしなければならないことを意味します。つまり、データパケットはインターフェースから受信してから返送される必要があります。



3.3 ブリッジ

このモードではLinuxブリッジの機能をシミュレートしますが、ブリッジの良い点は各インターフェースのMACアドレスが既知で学習不要であることです。 したがって、このモードではサブインターフェース同士が直接通信できます。



3.4 パススルー

このモードでは、メインインターフェースへの接続は1つだけを許し、プロミスカウスモードに設定する必要があります。これは一般的にサブインターフェース間のブリッジやVLANサブインターフェースの作成に使用されます。



3.5 mactap

MacVLANに似たもう一つの技術はMacTapです。 macvlanとは異なり、mactapはパッケージを受け取りプロトコルスタックに渡しますが、tapXファイルを通じてユーザーとの直接通信を行います。



04 練習

Linux上で、macvlanを作成するコマンドは以下の通りです:

一般的に、macVLANだけを使うのは意味がなく、ネットワークを構築するにはVMとコンテナの組み合わせが必要です。 名前空間を使ってLinuxがMacvlanをどのように使っているかを見てみましょう。

実験的位相は以下の通りです。




私のシステムでは、インターフェース enp0s8 を例に、2つの macvlan サブインターフェース(ブリッジモード使用)を作成し、IP を設定して2つの名前空間にハングして接続性をテストしました。

注:enp0s8のIPアドレスは192.168.56.110/24であり、設定されたサブインターフェースのIPアドレスも同じCIDRセグメントからでなければなりません。

2つのサブインターフェースの後、次の方法でpingを送ります:


ピンは検出できますが、上記のモードを別のモードに変えると動作しないので、皆さんに試してみてほしいです(デフォルトはVepaモードです)。

さらに、DockerではMacVLANがより重要なクロスホストネットワークモデルであり、これは次回の記事で詳しく説明します。

05 概要

MACVLANは、ネットワークカードを複数のネットワークカードに仮想化できるネットワークカード仮想化技術です。

MacVLANの4つの通信モードのうち、最も一般的なのはブリッジです。

考えてみて下さい:

マクヴラン橋と橋の類似点と相違点
複数の仮想ネットワークカードが同じMACアドレスを共有しつつ、独立したIPアドレスを持つ類似の技術もあります。


元の住所:ハイパーリンクのログインが見えます。




先の:実用的な操作方法:System.Web.Optimizationの代わりにBundleTransformerを使う
次に:DockerはMacvlanを使ってコンテナ用の独立したIPアドレスを設定します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com