web-dev-qa-db-ja.com

単一のホストで実行されているVMを分離するために複数のサブドメインを設定する最も簡単な方法

問題:

単一のcentosホストサーバー(ほとんどの場合KVMを使用)に複数の仮想化されたcentos、rhel、またはubuntuゲストマシンをセットアップすることを計画しています。各ゲストVMはwebappのインスタンスと他のいくつかのサービス/プロトコルを実行しており、各ゲストVMは、ホストの外部からアクセス可能である必要があります。それぞれが個別のDNSされたボックスであるかのように、ポートを開きます。

私は(明らかに)ネットワーキングの技術/構成が苦手なので、この問題の最初のエッジを見つけようとしているだけです。これに足がかりを得るために私が調べる必要がある主なアプローチ。必要に応じて、ネットワーク構成「擬似コード」。 :)

例:

私がドメインfoo.comを所有しているとしましょう。

私はguests.foo.comとしてDNS化された物理的なCentOSマシンを持っています。

この物理ホストマシンでは、3つのVMが実行されています。ゲストVMに1.guests.foo.com、2.guests.foo.com、3.guests.foo.comとして到達できるようにしたい。ゲストVMは、centos、rhel、およびubuntuディストリビューションを実行します。

各VMは、httpトラフィックだけでなく、ssh接続とgit:プロトコル操作も含めて、任意の(ローカルで開いている)ポートに応答する必要があります。

どこから始めればよいですか、最もエレガントなアプローチは何ですか?大まかに言って、これがうまく機能するために、ホストとゲストはそれぞれ、最低限、何を設定する必要がありますか?

注:

詳細がわかり次第、質問テキストとコメントを更新します。

2
thomanil

VM)ごとに少なくとも1つのパブリックIPがない限り、「任意の」オープンポートで応答させることはできません(つまり、NATホストシステムの特定のポートパブリックIPからVMの内部IPへ)パブリックIPが1つしかない場合(例:2.3.4.5)、ホストで構成されているとします。これで、ポート80からのリクエストを1にリダイレクトできます= VMおよび443に着信するリクエストを別のVMに、他のポートに着信するリクエストを任意のVM全体として、IP上で65530の使用可能なポートを配布し、それらをVMにルーティングするため、特定のVMは、別のVMがリッスンしています。

また、複数のパブリックIP(VMごとに少なくとも1つ)がある場合は、VMIPのDNSレコードを作成するだけです。

複数のIPセットアップでは、たとえば2.3.4.0/28のような小さなパブリックサブネットが必要です。このネットワークには、次の使用可能なIPが含まれています。

  1. 2.3.4.1
  2. 2.3.4.2
  3. 2.3.4.3
  4. 2.3.4.4
  5. 2.3.4.5
  6. 2.3.4.6

2.3.4.0はネットワークIPであり、使用できません。2.3.4.7はネットワークのブロードキャストIPです。現在、このアプローチでは通常、最初のIP(2.3.4.1)が残りのサブネットワークのゲートウェイとして使用されます。 ISPまたはデータセンターは、ファイアウォール/ルーターのネクストホップとして2.3.4.1を使用して2.3.4.0/8のルートを配置します。これで、インターネットから2.3.4.0/8のIPに向かうすべての要求は、IP2.3.4.1を持つマシンに届きます。したがって、論理的に行うべきことは、このIPをホストマシンに配置することです。

これで、2つのアプローチに従うことができます。

  1. VMマシンのネットワークインターフェイスを、IP 2.3.4.1を持つホストマシンインターフェイスにブリッジし、ブリッジされたインターフェイスでVMにIP 2.3.4.2、3、および4を付与します。

  2. VM上にホストのみのネットワークを配置します。ホスト仮想インターフェイスにIP192.168.10.1、VMのインターフェイスに192.168.10.2-4の192.168.10.0/24。そして、あなたはただNAT 2.3.4.Xから192.168.10.Xに来るリクエストをすることができます。

どちらの場合も、必要なDNSレコードは次のようになります。

1.guests.foo.com 2.3.4.2 2.guests.foo.com 2.3.4.3 3.guests.foo.com2.3.4.4など.

これがこの問題に光を当てることを願っています。

3
Fahad Yousuf

ホスト名はどこを指すこともできます。必要なVM)ごとに一意のグローバルIPアドレスです(実際に持っていることを確認してください。世界の一部の地域では取得が非常に難しい場合があります)。各仮想マシンには、独自のIPアドレスであり、インターネットからそれらに到達する場合は、グローバルアドレスである必要があります。

これを行う最も簡単な方法は、VMにブリッジネットワークを使用することです。これをどのように設定するかは、主にVMコントロールパネルをインストールするかどうかなどの外部要因に依存しますが、 このハウツー は設定するための基本的な手順を示しますローカルマシンのブリッジを上って、テストを開始し、すべてがどのように機能するかをよりよく理解できるようにします。

0
Michael Hampton