仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

KVM でブリッジ ネットワークをセットアップする方法 - チュートリアル

よし、これで、あなたは KVM にかなり精通したことになります。基本的な紹介と中間のセットアップと使用、ネットワークとストレージの構成、VirtualBox と一緒に KVM をセットアップするなど、いくつかのチュートリアルがありました。次の論理的なステップは、ポートを転送する必要がある場合に備えて、仮想マシンに使用可能な外部 IP アドレスを与えることができるように、ブリッジ ネットワークについて学習することです。

今日お見せする内容は、他のほとんどのチュートリアルで見たものとは少し異なります。つまり、他のチュートリアルで見た可能性のある力ずくのアプローチを回避しようとします。仮想マシンを外部の世界に公開する 2 つの方法を紹介します。方法の 1 つはハックですが、まったく天才的です。あなたは前にそれを見たことがない!そして、制限と起こりうる問題について少し話します。

注:CC BY-SA 3.0 の下でライセンス供与されたウィキペディアから取得した画像。インデックス ティーザー、同じ用語。

基本的な準備

現実の確認から始めましょう。ブリッジ ネットワークはやや見にくく、Linux コマンド ラインをある程度理解している必要があります。ただし、ブリッジングが必要な場合もあります。仮想マシン内である種のサーバーを実行したい場合、外部 IP アドレスを与えて、他のホストが直接通信できるようにすることができます。

例:ルーターは 10.0.0.X の範囲のアドレスを許可します。物理ホストは 10.0.0.4 を使用していますが、仮想マシンは 192.168.2.133 で実行されています。システムが送受信されるパケットを解釈する方法を変更しないと、10.0.0 ネットワーク上のクライアントは 192.168.2 ネットワーク上のクライアントと通信できなくなります。

ブリッジングを使用すると、この問題を回避できます。これにより、仮想マシンがルーターに接続し、外部 IP アドレスを取得できるようになります。このコンテキストでは、外部とは、必ずしも非プライベート アドレスではなく、物理ホストが使用しているものを意味します。

デフォルトでは、KVM は独自のブリッジ 192.168.122.1 を作成します。このデバイスは、仮想マシンの仮想ルーターとして機能し、この範囲の IP アドレスを仮想マシンに付与します。ただし、マシンが外部アドレスをリースする必要があります。このチュートリアルでは、これは 192.168.2 の範囲です。

2 つの代替ソリューション

これを行う方法は 2 つあります。

1 つ目は、ブリッジを作成することです。 2 つのデバイスがブリッジされます。物理デバイス eth1 と vnet0 という仮想デバイス。ブリッジが適切に機能することを確認したら、ディスク上のネットワーク構成ファイルに変更をコミットします。仮想マシンはルーターから IP アドレスをリースします。これは、VirtualBox で行ったことと似ています。これが、ここで取り上げる方法です。

2 番目の方法は、動作が保証されているわけではありませんが、動作する可能性があります。ネットワーク アダプタがすぐに使用できるブリッジングをサポートしている場合は、それを直接使用できる場合があります。必要な唯一の変更は、KVM の仮想ブリッジにアドレスの小さなサブネットを割り当てることです。これは、ネットワーク上の物理ホストによって使用されるアドレスと重複しません。

制限事項

うまくいかないことがたくさんあります。お使いのルーターがブリッジングをサポートしていない可能性があります。ネットワーク インターフェイスがブリッジングをサポートしていない可能性があります。使用可能な IP アドレス リースのプールが制限されている可能性があります。ファイアウォールが干渉している可能性があります。最後に、特に Ubuntu の場合、Network Manager がブリッジされたインターフェースを管理している場合、問題や競合が発生する可能性があります。

詳細については、次のドキュメントを参照してください:

Linux Foundation でのブリッジのセットアップ

KVM ネットワーク - Ubuntu コミュニティのドキュメント

よし、これで私たちの前に何が待っているかがわかった。橋渡しは決して簡単なことではありません。考慮しなければならないことがいくつかあります。まず、ネットワーク アダプタはブリッジングをサポートしていますか?たとえば、一部のラップトップでは、ワイヤレス アダプタはこの動作モードを実際にはサポートしていません。次に、ネットワーク設定をいじることに慣れていますか?第三に、あなたは何を達成しようとしていますか?おそらく、NAT で十分でしょうか?

ネットワークの基本概念

私のテスト ボックスは Ubuntu ですが、このチュートリアルはディストリビューションに依存しないものにしたいと考えています。 Ubuntu KVM コミュニティのドキュメントに従うことは良いことですが、Debian ベースのシステムでしか機能しません。そのため、RedHat システムと SUSE システムの両方に適用できるネットワークの概念を紹介します。

Ubuntu などの Debian ベースのシステムでは、永続的なネットワーク構成は /etc/network/interfaces の下に保持されます。 RedHat ベースのシステムと SUSE の友人や家族では、ネットワーク構成は /etc/sysconfig/network の下の個々のファイルに保存され、通常は ifcfg-ethX または ifcfg-eth-MAC-address というプレフィックスが付けられます。 ifconfig コマンドを使用して、システムで表示されるように、一般的な eth を対応するインターフェース名に置き換えてください。

コマンド ラインで brctl ユーティリティを使用してブリッジを作成することもできます。構成ファイルへの変更をコミットする必要はありませんが、ネットワーク サービスを再起動するたびに設定が失われます。これは、システム ファイルを編集する前に、最初にテストするための推奨される方法です。いじる前に、構成をバックアップすることを忘れないでください。ネットワーク設定の詳細については、Linux コマンドの記事をご覧ください。

ブリッジを作成

これで、プレイする準備が整いました。 brctl、ifconfig、および dhclient コマンドを使用して開始することをお勧めします。これらがどのように使用されるかについてあまり詳しく説明しない場合は、申し訳ありません。一般的な需要があれば、追加のチュートリアルがあるでしょう.一般に、シーケンスは次のとおりです (sudo または root として) - br0、物理および/または仮想デバイス eth0/1、およびスイッチまたはルーターからの DHCP リースを想定しましょう:

ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
dhclient br0

仮想マシンを作成して起動するまで、仮想アダプタを使用できない場合があることに注意してください。したがって、まだ仮想アダプターを追加する必要はありません。詳細オプションでブリッジ ネットワークを選択すると、KVM が自動的にこれを行います。

ブリッジ インターフェースが DHCP サーバーから外部アドレスをリースしている場合は、正しい方向に進んでいます。ホーム ユーザーの場合、DHCP サーバーはルーターになります。インターネットに直接接続している場合、ISP がユーザーごとに複数の IP アドレスを許可していない可能性があるため、これは不可能な場合があります。

ブリッジ インターフェイスが起動したら、ネットワーク機能が変更されていないことを確認します。 /etc/resolv.conf を編集し、場合によってはルーティング テーブルを修正する必要がある場合があります。

これが機能する場合は、変更をネットワーク構成ファイルにコミットすることをお勧めします。私の例は一般的なものであり、コミュニティのドキュメントに示されているものと非常によく似ていることに注意してください。たとえば、ブリッジでスパニング ツリー プロトコル (STP) を有効にして、複数のホップまたは循環ルートを適切に処理する必要がある場合があります。

具体的には、この場合、/etc/network/interface を編集してそこに br0 を追加します。 STP が必要な場合は、bridge_stp オフを bridge_stp オンに変更してください。 btctl show コマンドを発行して、ブリッジの動作を確認できます。

KVM でブリッジ ネットワークをセットアップする方法 - チュートリアル

そして、いくつかの STP の楽しみ - いたずらに聞こえますね。

KVM でブリッジ ネットワークをセットアップする方法 - チュートリアル

仮想マシンの作成

これを行う方法は以前に学んだので、新しいことではありません。最後の段階で、[詳細オプション] の下で、ネットワーク アドレスの割り当てを変更し、仮想アダプターに他と競合しない一意の MAC アドレスがあることを確認します。

KVM でブリッジ ネットワークをセットアップする方法 - チュートリアル

KVM でブリッジ ネットワークをセットアップする方法 - チュートリアル

運が良ければ、特別なブリッジを設定する必要さえないかもしれません。お使いのネット​​ワーク アダプタがすぐに使用できるので、問題ありません。しかし、あなたはおそらく幸運ではないでしょうから、ほんの一握りのハードなキーボード作業を期待してください.

すべてが機能することを確認するには:

KVM でブリッジ ネットワークをセットアップする方法 - チュートリアル

ping を実行できれば、ハッキングできます。これは、VirtualBox で行ったこととほぼ同じです。これで、サービスを公開したり、データを共有したり、必要なものを何でも共有したりできます。楽しみ。

別のセットアップ (うまくいかないかもしれませんが、素晴らしいです)

あなたはそれほど幸運ではないかもしれません。 Network Manager は協力を拒否する可能性があり、セットアップには他にも多くの問題がある可能性があります。このために、別の仮想ネットワーク アダプタを作成し、すぐに使用できるブリッジングをサポートしていると思われる物理デバイスにルーティングすることができます。競合する IP アドレスに注意してください。

最後に、これがうまくいく場合は、非常に汚いハックを試すことができます。ネットワークと同じ /24 スペースを共有する仮想ネットワークを作成します。たとえば、ルーターが 192.168.2.0 ネットワーク上にある場合、192.168.2.160 で始まる仮想ネットワークを作成し、小さな範囲 (おそらく全体で 16 個のアドレス) のみを割り当てます。ルーターがこれらのアドレスをネットワーク上の他のクライアントに提供しないようにしてください。

以下に例を示します。ネットワーク 192.168.2.160/28 を作成しました。ルーターがその範囲のアドレスをリースするとは思っていませんが、DHCP 割り当てを制限することはできます。次に、仮想ネットワークを物理デバイス (この場合はワイヤレス アダプター eth1) にルーティングします。

次に、仮想マシンを作成し、上記と同様に eth1 にルーティングします。オンラインになったら、素敵な協力に注目してください。ホストのアドレスは .102、仮想 NIC virbr1 のアドレスは .161、仮想マシンのアドレスは .168 です。

そして、これは同じネットワーク上の物理的な Windows 7 ボックスからの ping で、.103 アドレスを使用して、Ubuntu Lucid ボックスの .161 アドレスを使用して仮想アダプターに ping を実行しています。両方ともワイヤレスで、両方とも同じルーターを介して接続されており、これがいかにキュートでスマートであるかを示しています。セットアップは本当にです。いつでもうまくいくとは限りませんが、うまくいくときは天才です。

既存の仮想マシン

すでに存在する仮想マシンの場合、/etc/libvirt/ の下のディレクティブを変更して設定を編集することもできます。各仮想マシンには個別の .xml 構成ファイルがあります。変更を有効にするには、仮想マシンの電源を入れ直す必要があります。例:

<インターフェースタイプ='ブリッジ'>


結論

KVM ブリッジ ネットワークのセットアップは、実際には直感的ではありません。 2、3 年前の VirtualBox と同じくらいフレンドリーです。しかし、実際の制限はネットワーク トポロジーの理解と機能性ですが、管理は可能です。時間が経てば必ず良くなります。

運が良ければ、ネットワーク アダプタはすぐにブリッジングをサポートします。そうでない場合は、ブリッジ アダプターを作成し、物理および仮想ネットワーク デバイスを割り当てる必要があります。次に、DNS、DHCP、またはルーティングに関する潜在的な問題を解決します。最後に、汚いハックとして、ネットワーク範囲を悪用してサブネット内にサブネットを作成し、IP アドレスが重複しないことを確認してから、仮想アダプターを物理デバイスにルーティングすることをお勧めします。

このチュートリアルはかなり基本的なものですが、狡猾なひねりが加えられていますが、明らかにされていない問題が数多く残っている可能性があります。 KVM での困難なネットワーク設定を克服するための質問、提案、またはヒントが必要な場合は、私にメールを送ってください。これらの新しい問題に対処する方法の続編を作成するかもしれません。

乾杯。


  1. KVM でストレージを管理する方法 - チュートリアル

    数日前、カーネルベースの仮想マシン (KVM) テクノロジを紹介しました。これは、VirtualBox および VMware 製品の代わりに、またはそれらと一緒に使用することを検討できる無料のオープンソースの仮想化ソリューションです。いずれにせよ、基本的な管理に手を出しましたが、ストレージとネットワークは別のチュートリアルのために残しました. 今日は、KVM でのストレージの管理に関するより詳細なガイドを提供したいと思います。これは、仮想ディスクの追加、縮小、拡張など、VirtualBox で行ったことと多少似ています。 NFS ストレージや NTFS でフォ​​ーマットされた USB 接

  2. VirtualBox でディスクのクローンを作成する方法 - チュートリアル

    ビジネスまたは娯楽で仮想化を使用している場合、VirtualBox に出くわしたことがあるかもしれません。VirtualBox は非常に強力で汎用性の高い無料のソリューションであり、デスクトップ ユーザーがオペレーティング システムを導入する際に非常に柔軟に対応できます。 また、マニアックな趣味で仮想化を楽しんでいるだけの愛好家や、仮想化のおかげで新しいオペレーティング システムの使い方を学んでいる熱心なソフトウェア愛好家以上の場合は、次のシナリオに遭遇することになります。多数の仮想マシンを展開します。 個々のインストールをいじる時間はありません。実際、マシンを 1 つずつ手動で構成す