1. Macvlan の紹介 Macvlan が登場する前は、イーサネット カードには複数の IP アドレスしか追加できず、MAC アドレスはグローバルな一意性によってイーサネット カードを識別するため、複数の MAC アドレスを追加することはできませんでした。 ethx:y を作成する方法を使用した場合でも、これらすべての「ネットワーク カード」の MAC アドレスは ethx と同じであることがわかります。本質的には、これらは依然としてネットワーク カードであり、多くのレイヤー 2 操作を実行する能力が制限されます。 Macvlan テクノロジーを使用すると、これが可能になります。 Macvlan を使用すると、ホストのネットワーク インターフェイス上に複数の仮想ネットワーク インターフェイスを設定できます。これらのネットワーク インターフェイスにはそれぞれ独立した MAC アドレスがあり、通信用に IP アドレスを設定することもできます。 Macvlan の下の仮想マシンまたはコンテナ ネットワークは、ホストと同じネットワーク セグメントにあり、同じブロードキャスト ドメインを共有します。 Macvlan は Bridge に似ていますが、Bridge の存在を省略しているため、設定やデバッグがより簡単であり、効率も比較的高いです。さらに、Macvlan 自体も VLAN を非常によくサポートできます。
同じ VLAN 間のデータ転送は、ルーティングを必要とせずに、レイヤー 2 相互アクセス、つまり MAC アドレスを通じて実現されます。デフォルトでは、異なる VLAN 内のユーザーは直接通信できません。通信を行う場合は、ルーティング用のレイヤー 3 デバイスが必要です。 Macvlan についても同様です。 Macvlan テクノロジーによって仮想化された仮想ネットワーク カードは、論理的には物理ネットワーク カードと同等です。物理ネットワーク カードはスイッチに相当し、対応する仮想ネットワーク カードと MAC アドレスを記録します。物理ネットワーク カードはデータ パケットを受信すると、宛先 MAC アドレスに基づいてパケットがどの仮想ネットワーク カードに属しているかを判断します。つまり、データ パケットが Macvlan サブインターフェイスから送信される (または Macvlan サブインターフェイスに送信される) 限り、物理ネットワーク カードはデータ パケットを受信するだけで、処理は行いません。これにより、ローカル Macvlan ネットワーク カード上の IP が物理ネットワーク カード上の IP と通信できないという問題が発生します。この問題の解決策については次のセクションで説明します。 まず、Macvlan テクノロジーのフローチャートを見てみましょう。 簡単に言えば、Macvlan 仮想ネットワーク カード デバイスは、物理ネットワーク カード デバイスに寄生します。パケットを送信する際には、独自のパケット送信関数を呼び出し、寄生物理デバイスを見つけ、その物理デバイスを介してパケットを送信します。パケットを受信すると、寄生物理デバイスの rx_handler コールバック関数を登録してデータ パケットが処理されます。 2. マックヴラン vs ブリッジ Macvlan について話すとき、ブリッジについて言及する必要があります。なぜなら、Macvlan は単純なブリッジと見なすことができるからです。しかし、両者の間にはまだ大きな違いがあります。 橋 ブリッジは実際には古いタイプのスイッチであり、それらの間に大きな違いはありません。ブリッジとスイッチの違いは、技術ではなく市場にあります。スイッチはブリッジと同じ方法でネットワークをセグメント化します。スイッチはマルチポートブリッジです。正確には、ポート密度の高いブリッジを LAN スイッチと呼びます。 Bridge には次の機能があります。
以下は、複数の VM がブリッジを使用して相互に通信する Linux ホスト上の状況です。 Linux ホストでは、コマンド ライン ツール brctl を使用してブリッジ構成を表示できます。このツールは、ソフトウェア パッケージ bridge-utils をインストールすることで入手できます。
ブリッジでレイヤー 2 ループが発生する可能性があります。必要に応じて、ループを防ぐために STP を有効にすることができます。 マックヴラン Macvlan には次の機能があります。
Macvlan を設定した後の様子を説明する写真がこちらです: 3. Macvlanの動作モード Macvlan は次の 4 つのモードをサポートしています。 VEPA (仮想イーサネット ポート アグリゲータ) VEPA モードでは、トラフィックの宛先が同じ親インターフェイスを共有する他の Macvlan インターフェイスであっても、Macvlan インターフェイスからのすべてのトラフィックは宛先に関係なく親インターフェイスに送信されます。レイヤー 2 ネットワーク シナリオでは、スパニング ツリー プロトコルにより、2 つの Macvlan インターフェイス間の通信がブロックされます。このとき、上位層ルータにルートを追加する必要があります (外部スイッチはヘアピン サポートで設定する必要があります。つまり、送信元アドレスと宛先アドレスの両方がローカル Macvlan インターフェイス アドレスであるトラフィックを対応するインターフェイスに送り返すことができる、802.1Qbg と互換性のあるスイッチが必要です)。このモードでは、親インターフェイスから受信したブロードキャスト パケットは、VEPA モードのすべてのサブインターフェイスにフラッディングされます。 現在、ほとんどのスイッチはヘアピン モードをサポートしていませんが、Linux ホストでヘアピン モード ブリッジを使用すると、VEPA モードの異なる Macvlan インターフェイスが通信できるようになります (前述のように、ブリッジは実際には古いスイッチです)。どのように設定するのですか?これは非常に簡単で、1 つのコマンドで解決できます。
または、iproute2 を使用して設定します。
カーネルを手動でコンパイルしてアップグレードした場合、ユーザー モード プログラムは新しいカーネルのすべての機能をサポートしない可能性があります。つまり、brctl のバージョンが古すぎて、ヘアピン コマンドをサポートできない可能性があります。これを修正するには sysfs を使用できます:
Linux ホストで Harpin モードを構成すると、送信元アドレスと宛先アドレスの両方がローカル Macvlan インターフェイス アドレスであるトラフィックは、br0 によって対応するインターフェイスに送り返されます (作成したブリッジが br0 であると仮定)。 仮想マシンまたはコンテナ間のアクセス トラフィックを物理スイッチ レベルで最適化する場合は、VEPA モードの方が適しています。 VEPA モードと Passthru モードでは、2 つの Macvlan インターフェイス間の通信はプライマリ インターフェイスを 2 回通過します。1 回目は送信時、2 回目は戻り時です。これにより、物理インターフェースの帯域幅に影響が及び、異なる Macvlan インターフェース間の通信速度も制限されます。複数の Macvlan インターフェースが頻繁に通信する場合、パフォーマンスへの影響はより顕著になります。 橋 このモードは Linux の Bridge に似ています。同じ親インターフェイスを持つ 2 つの Macvlan 仮想ネットワーク カードは直接通信できます。親ネットワーク カードを介して外部ネットワークにトラフィックを送信する必要はありません。ブロードキャスト フレームは、「ブリッジ」に接続されている他のすべてのサブインターフェイスと物理インターフェイスにフラッディングされます。これは、同じ親インターフェイスを共有する Macvlan ネットワーク カードが直接通信できるシナリオに適しています。 ここでのいわゆるブリッジとは、外部からの支援なしにこれらのネットワーク カード間でデータ フローを直接転送できることを意味します。これは、Linux ホストに組み込まれているブリッジに少し似ています。つまり、すべて brctl コマンドで実行されます。しかし、それは Linux ブリッジとはまったく異なります。 MAC アドレスを学習する必要がなく、STP も必要ないため、Linux ブリッジを使用する場合よりもパフォーマンスが大幅に向上します。 ブリッジ モードには欠点があります。親インターフェイスがダウンすると、すべての Macvlan サブインターフェイスもダウンし、サブインターフェイスは相互に通信できなくなります。 プライベート このモードは VEPA モードの拡張モードに相当し、同じ親インターフェイスを共有する Macvlan 仮想ネットワーク カード間の通信を完全にブロックします。ヘアピンが親インターフェイスから送信されたトラフィックをホストに戻すように設定されている場合でも、対応する通信トラフィックは破棄されます。具体的な実装方法は、ブロードキャスト/マルチキャスト データを破棄することです。つまり、イーサネット アドレス解決 ARP は実行できなくなります。 MAC アドレスを手動で検出しない限り、同じホスト マシン上の複数の Macvlan ネットワーク カード間で通信を行うことはできません。ブロードキャスト トラフィックを分離する理由は、イーサネットがブロードキャストに基づいているためです。ブロードキャストが分離されると、イーサネットはサポートされなくなります。 パススルー このモードでは、親インターフェイスと対応する MacVLAN インターフェイスが直接バインドされます。このモードでは、各親インターフェイスは 1 つの Macvlan 仮想ネットワーク カード インターフェイスにのみバインドでき、Macvlan 仮想ネットワーク カード インターフェイスは親インターフェイスの MAC アドレスを継承します。 このモードの利点は、仮想マシンとコンテナが MAC アドレスやその他のインターフェース パラメータを変更できることです。 4. Macvlanとブリッジの使用シナリオ 最後に、Macvlan と Bridge のそれぞれの使用シナリオについて説明します。 Macvlan の使用:
Bridge の使用:
5. MacVLAN の制限
IEEE 802.11 では、同じクライアント上に複数の MAC アドレスが存在することは許可されません。つまり、Macvlan サブインターフェイスは、ワイヤレス カードでも AP でも通信できません。この制限を打破するには複雑な方法を使うこともできますが、より簡単な方法として Ipvlan を使う方法もあります。ご興味がございましたら、ご自身で関連情報をご確認ください。 6. 結論 この記事では、主に Macvlan の実装原理を紹介し、Macvlan と Linux Bridge モードの違いや使用シナリオを比較し、さらに Macvlan の 4 つのモードの動作原理と関連する注意事項を詳細に分析します。次のセクションでは、実際の演習を通じて Macvlan の 4 つの動作モードをシミュレートします。 7. 参考文献 http://hicu.be/bridge-vs-macvlan https://blog.csdn.net/ztguang/article/details/51854037 https://lists.linuxfoundation.org/pipermail/bridge/2009-April/006842.html この記事はWeChatの公開アカウント「Cloud Native Lab」から転載したものです。この記事を転載する場合は、Cloud Native Lab の公開アカウントにお問い合わせください。 |
<<: 人工知能は止められない。 Advantech WISE-PaaS 3.0がイノベーションを推進
>>: 高いコストパフォーマンスとハイパフォーマンスを思いのままに!ファーウェイのクラウドサーバー「ベストセラー」が再び進化
パブリックアカウント広告の実施方法について、お客様からよく質問を受けます。どのような側面を広告に活用...
みなさんこんにちは。私はShi Touです。今日、偶然 Baidu でキーワード「SEO」を検索した...
公開アカウントであっても、親アカウントであっても、コンテンツが王様であるというルールは依然として適用...
友人のウェブサイトのキーワードランキングが変わっているのをよく見かけるので、その理由を探して、検索エ...
世界的に有名なスポーツ用品小売業者である Decathlon は、Microsoft Azure イ...
delimiter.com の特別価格サーバーは、数年間にわたって運用されています。これらのサーバー...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO デ...
2013 年に設立された ethernetservers は私のブログに何度か登場していますので、ぜ...
2月25日、WeMallグループは、同社のSAASビジネスデータが運用保守部門の中核従業員によって「...
マイクロソフトは4月4日、Ampere Computingとの提携により、Azure仮想マシンがAR...
この試みを経て、基本的に以下の結論を導き出すことができます。ランキング操作の有無に関わらず、ASO ...
処理とデータの保存はクラウド エッジ システムで行われます。しかし、ネットワークの制限はエッジとクラ...
私たちが普段目にするウェブサイトのバナーは、その形状によって固定された構成モードが決まります。一般的...
インターネット産業の変革は加速しており、伝統産業を転覆させるペースはさらに加速しており、インターネッ...
分散トランザクションとは何ですか?銀行間送金業務は、典型的な分散型トランザクションのシナリオです。 ...