SPICEチャネルを介したポートトンネリングを使用したQEMU分離仮想マシンのクライアントインターネット

仮想マシンをインターネットに接続する通常のアプローチは、他のデバイスをネットワークに接続することに似ており、仮想またはprobrosの実際のネットワークインターフェイスを接続すること、およびネットワーク接続、サービス、ルーティングルール、フィルタリングト​​ラフィックなどを設定および確認することで構成されます。







仮想マシンがサーバーまたは仮想デスクトップで特定のユーザーに割り当てられている場合、このアプローチは完全に正当化されますが、仮想マシンがパブリック仮想デスクトップであり、誰でも無料で接続できる場合はどうでしょうか?







仮想マシンのインターネットがホスト側からではなく、クライアント側から起動することを確認する必要があります。







仮想マシンをクライアントのインターネットチャネルに接続すると、次のことが可能になります。









クライアントからインターネットを取得する最も簡単な方法は、USBネットワークアダプターまたはモデムを転送することです。 しかし、この方法ではネットワークの品質が非常に要求されます。 仮想マシンが海外にある場合、遅延やハングが発生する可能性があります。







USBデバイスを転送する代わりに、SSHのポートトンネリングに似た、SPICEチャネルを介したクライアントと仮想マシン間のポートトンネリングが可能です。







QEMU仮想マシンには、クライアントから仮想マシンにデータを送信するためのチャネル、いわゆるSPICEチャネルがあります。 このチャネルは、入力デバイスのデータ、クリップボードのコンテンツなどを転送します。







理論的には、ローカルクライアントポート(IPアドレス127.0.0.1)を仮想マシンに転送し、ローカルとして配置できます。







ポートトンネリングを介してクライアントのインターネットチャネルに接続するためのアルゴリズムの例:









実装







ポートトンネリングを実現するためにやるべきことは、SPICEクライアントとSPICEゲストアドオンのソースコードを調整し、パッチを作成して開発者に送信することだけです。 SPICEのソースコードが開いているため、これはすべて可能です。







さらに、SPICE開発者との交渉中に、そのような機能がSPICEのFlexVDIフォークに実装されていることが判明しました。 フォークのソースコードは、リポジトリ[ https://github.com/flexvdi ]で部分的に公開されており、トンネリングの原因となるフラグメントがあると彼らは言います。







会話の記録は、 Spice-develメーリングチャネルで利用できますトピックは、 機能の提案:spice-channelを介したVMとクライアント間のポートトンネリングです。







応用分野







このテクノロジーは、デモおよびパブリック仮想マシン、および通常のVDIホスティングで広く使用できます。







誰かがこの機能の実装を支援したい場合は、この機能を実装してパッチを作成できます。コメントや提案がある場合は、コメントを残すことができます。








All Articles