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ホスティングで広く使用できます。


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



Source: https://habr.com/ru/post/J430592/


All Articles