web-dev-qa-db-ja.com

XCP-ngサーバーへのSSHは、ハイパーバイザーに接続しますが、別のIPを使用している場合でもVM

以前は栄光のNASとしてのみ使用していた古いHPProLiant DL385 G5pサーバーがありますが、ネットワーク用にキャッシュDNSサーバーをセットアップするなど、さらに何かをしたいと思います。

XCP-ngハイパーバイザーを介して、ファイルサーバーとDNS(およびその他の考えられるもの)を別々の仮想マシンで実行できるようにしたいと思います。

私は過去数日間でこれをセットアップし始め、2つのDebian VMを稼働させ、キャッシングDNSを機能させることさえできました。しかし、SSH経由でファイルサーバーに使用したいDebian VMに接続しようとしたときに問題が発生しました。そのIPをVM PuTTY(サーバーへの2つのイーサネット接続(1つはファイルサーバー用、もう1つはその他すべて用))に接続し、ハイパーバイザーに正常に接続しました。これが問題であり、ここで何が起こっているのかよくわかりません。私はPuTTYを作成しているため、メインPCへのファイル転送に使用するSFTPドライブは、ハイパーバイザーの代わりにVM)に接続します。

友人の1人が、ハイパーバイザーでポートフォワーディングを使用してSSHで接続できるようにする必要があるかもしれないと述べました。これを調べましたが、100%確信はありませんが、役立つと思われるものは見つかりませんでした。 私が探しています。

その後、XCP-ngを再インストールし、1つのイーサネット接続にキャッシングDNSとTorリレーノードをセットアップしましたが、ファイルサーバー用に別のDebianインストールを作成する必要があります。

前もって感謝します。

編集:これは、ハイパーバイザーでrouteを実行したときに得られる出力です。

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 0 0 0 xenbr0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbr0

そしてこれはVM出力:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

これがお役に立てば幸いです。

Edit(1):これはハイパーバイザーでroute -nを実行した結果です。

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 xenbr0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbr0

1
James Stone

さて、私の質問に答えようとしたマルセロの助けを借りてかなり多くのことを調べた後、VMに接続できなかった理由の問題が何であるかがわかりました。

ネタバレ:恥ずかしいほど簡単です。

簡単に言うと、使用しようとしているイーサネットポートに割り当てられているIPアドレスをip a show eth1を使用して確認する方法を見つけました。これは、存在することを知っておくと便利です。

/etc/network/interfacesで使用するIPを静的として設定した場合、何らかの理由で(おそらくハイパーバイザーが何か複雑なことをしているために)evenであることが判明しました、それはそれに別のものを与えることに決めていました。使用しているIPがわかれば、面倒なことなくVMにSSHで接続できます。

1
James Stone

ハイパーバイザーで使用しているネットワークモデルを理解する必要があります。

VMがハイパーバイザーと同じIPネットワークで実行されている場合、つまりハイパーバイザーがIPネットワークルーティングを実行しない場合は、ポート転送を行う必要はありません。

ただし、これは最も一般的な状況ではありません。通常、VMをセットアップするときは、VMを別のネットワークに保持し、ハイパーバイザーで何らかのポートフォワーディングを使用して、公開されるマシンの数を最小限に抑えてセキュリティを少し向上させます。

したがって、ハイパーバイザーのIPのポート2022をVMのポート22にマップするには、iptablesでポート転送ルールを設定する必要があります。

次の例では、ハイパーバイザーがネットマスク255.255.255.0(24ビット、クラスC)を使用してサブネットワーク192.168.1.0をセットアップするとします。また、VMのアドレスが192.168.1.2であるとします。次に、デフォルトですべての接続を拒否するハイパーバイザーにファイアウォールが適切に設定されている場合、次の2行でタスクを実行する必要があります。 :

$ iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 2022 -j DNAT --to 192.168.1.2:22
$ iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 22 -j ACCEPT

参照:

[1] https://www.systutorials.com/816/port-forwarding-using-iptables/