次のネットワークアダプタ設定を使用して、仮想マシンでCentOS 6.6 VMを実行しています。
ホストがアクセスできるWebサーバーをホストするためのブリッジアダプタ
ホストからゲストVMへのSSHポート転送を使用するNAT
この仮想マシンからVPNのリモートマシン(ホスト接続)にSSHを接続したいと思います。下の画像は設定を説明しています。
MyCentosVM =======SSH======= TargetMachine
MyCentosVM == Host == VPN == TargetMachine
ブリッジアダプタを無効にすると、NATを介してVMが透過的になり、VPNの「一部」になる可能性があるため、問題なくターゲットにアクセスできます。ただし、ブリッジアダプタを有効にすると、Target の sshd は認証プロセスの前にも接続を拒否します。
私の質問は、NATインターフェイスを使用してターゲットにSSHで接続するように仮想マシンを指定できますか?
答え1
ただないと言ってください。ただし、SSHの設定ファイル(通常はにある)を使用できます~/.ssh/config
。または、トラフィックがターゲットコンピュータに移動するときにVPNを通過するようにゲストのルートテーブルを設定する必要があります。 SSHは、単にユーザーが使用しているコンピュータを何でも使用します。 SSHを介した接続はネットワークパスを指します。
答え2
赤い薬がなくなってここにいます。いいえSSHトラフィックへの特定のインターフェイスを特定のホストに強制的に送信するソリューションを提供します。これもそうです。XYの問題、インターフェイスを強制的に使用したくないので、ローカル仮想マシンがリモートネットワーク上のホストと対話するようにしたいと思います。まだ私はあなたを少し助けることができると思います。
重要な要約:CentOS VMにルートを追加してターゲットと対話するときは、NATインターフェイスを介して接続できるルーターを使用する必要があります。ip route add <Target>/32 via <router_ip_address>
全体的に設定が壊れているようです。 SSH接続を拒否するターゲットコンピュータが実際にある場合は、接続を切断する必要があります。
- VPNはホストにネットワークへのアクセスのみを提供します。
- または、ネットワークに接続するように設計されています。
最初の場合、SSH トラフィックは宛先システムに到達しません。したがって、それを拒否することはできません。
2番目のケースでは、VPN /設定は両方のネットワークを正しく接続できません。
あなたの説明によると、VPNはあなたのホストを特定のネットワークに接続するためにのみ使用されることを知っています。この場合、問題全体はルーティングの問題であり、仮想マシンがホスト以外のVPNのマシンと対話できる唯一の方法は、ホストのNATを介することです。だからあなたはいつもSSHだけでなくNATインターフェイスも選択する必要があります。
ブリッジアダプタをイネーブルにしない場合、VM は NAT インターフェイスを介したルーティングを使用してターゲットと対話します。 (ip route show
設定されたパスを表示するために使用されます。)ブリッジアダプタが有効になっている場合は、ブリッジアダプタを介したパスを使用します。これはまた、設定が破損していることを示します。たとえば、仮想マシンに重複するIPサブネットおよび/または複数のデフォルトルートがある場合があります。
現在の問題は、ブリッジアダプタをイネーブルにすると、CentOS VMがNATインターフェイスを使用するよりも優先されるいくつかのデフォルトパスを学習することです。
問題を解決するには、CentOS VMにパスを追加する必要があります。このルートは、TargetまたはVPNネットワーク上のすべてのホストと対話するときにNATインターフェイスを介してアクセスできるルータを使用するようにシステムに指示します。設定に問題がない場合、このパスは常にデフォルトパスよりも優先されます。
最後は次のとおりです。
ip route add \
<network_id_of_vpn_network>/<prefix_length_of_vpn_network> \
via <your_hosts_ip_on_the_NAT_network>`