web-dev-qa-db-ja.com

AzureVM仮想ネットワークの相互通信

私はAzure(ストライク1)に不慣れで、ネットワーキング(ストライク2)に完全に夢中です。

それでも、同じ仮想ネットワークで2つのVMを稼働させています。 1つはWebサーバーとして機能し、もう1つはSQLデータベースサーバーとして機能します。

それらの内部IPアドレスが両方とも同じネットワーク内にあることはわかりますが、マシンが相互に通信できることを確認できず、これに対処するための適切な場所に関して混乱しています。

Microsoft自身のドキュメントによると

Windows Azureで作成するすべての仮想マシンは、プライベートネットワークチャネルを使用して、同じクラウドサービス内の他の仮想マシンまたは仮想ネットワークと自動的に通信できます。ただし、インターネットまたは他の仮想ネットワーク上の他のリソースがマシンと通信するために、エンドポイントをマシンに追加する必要があります。特定のポートとプロトコルをエンドポイントに関連付けることができます。リソースは、TCPまたはUDPのプロトコルを使用してエンドポイントに接続できます。TCPプロトコルには、HTTPおよびHTTPS通信が含まれます。

では、なぜマシンは少なくとも内部IPを介して相互にpingを実行できないのでしょうか。 Windowsファイアウォールが邪魔になっていますか?単純なWebサーバー/データベースサーバーのセットアップに間違ったアプローチを選択したのではないかと思い始めています。私の無知を許してください。どんな助けでも大歓迎です。

13
John

両方のマシンが同じ仮想ネットワーク内にある場合は、Windowsファイアウォールをオフにするだけで、相互にpingを実行できます。もう1つの方法は、詳細設定を使用して、Windowsファイアウォールですべての着信ICMPトラフィックを許可することです。

ただし、トリックがあります。両方のマシンはIPアドレスで相互に認識しますが、そのように定義された仮想ネットワークにはnoの名前解決があります。名前でpingを実行することはできず、直接IPアドレスでのみpingを実行できることを意味します。したがって、Webサイト(VM1上)をSQL Server(VM2上)に接続する場合は、マシン名ではなく完全なIPアドレスでアドレス指定する必要があります。

仮想ネットワーク内で名前解決を行う唯一の方法は、オンプレミスで保守および構成する専用のDNSサーバーを使用することです。

この記事 WindowsAzureでの名前解決シナリオについて詳しく説明します。あなたの特定のケースはこれです:

同じ仮想ネットワークにあるが、クラウドサービスが異なる仮想マシンとロールインスタンス間の名前解決

VMを同じクラウドサービスにすると、名前解決を実現できる可能性があります。したがって、専用の仮想ネットワークも必要ありません。

13
astaykov

VMがAzureの仮想ネットワーク内にある場合は、2つのことを確認する必要があります。

  1. 必要なポートが有効になっています。
  2. サーバーでファイアウォールが無効になっています。

別のVMから、SQL ServerDBがインストールされている1つのVMに接続しようとしました。SQLがインストールされているVM)で1433ポートを有効にする必要がありました。 。このためには、MSSQLエンドポイントをAzure管理ポータルのVMに追加する必要があります。その後、Windowsファイアウォールを無効にしました。その後、VM別のものから。

0
Ravi Sankar Rao