2012-12-21 16 views
13

私はAzure(strike 1)を初めて使っていて、ネットワーキング(strike 2)を完全に吸っています。Azure VMs仮想ネットワーク間通信

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

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

Microsoft自身のドキュメントでは、Windows Azureの中に作成するすべての仮想マシンが同じクラウドサービスや仮想ネットワーク内の他の の仮想マシンを持つプライベートネットワークチャネルを使用して通信を自動的 でき

言います。 しかし、インターネットやその他の仮想ネットワーク上の他のリソース と通信するエンドポイントをマシンに追加する必要があります。 は、特定のポートとプロトコルをエンドポイントに関連付けることができます。リソース は、TCPまたはUDPのプロトコルを使用してエンドポイントに接続できます。 TCP プロトコルには、HTTPおよびHTTPS通信が含まれます。

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

答えて

13

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

しかし、トリックがあります。どちらのマシンもIPアドレスでお互いを見ますが、定義された仮想ネットワークにはという名前解決はありません。つまり、名前でpingすることはできませんが、直接IPアドレスだけであることを意味します。したがって、VM1上のWebサイトがVM2上のSQL Serverに接続されるようにするには、マシン名ではなくフルIPアドレスでアドレス指定する必要があります。

仮想ネットワーク内で名前解決を行う唯一の方法は、オンプレミスを維持管理する専用のDNSサーバーを使用することです。

This articleは、Windows Azureの詳細な名前解決シナリオを記述しています。あなたのVMを置く場合は、潜在的に、名前解決を実現することができ

同じ仮想ネットワークに位置する仮想マシンとロールインスタンス間で名前解決が、異なるクラウドサービス:あなたの特定のケースはこれです同じクラウドサービスです。したがって、専用の仮想ネットワークは必要ありません。

+0

ここで尋ねられていることは、ネットワーク識別状態に固執していることです...これは明白な理由がないために多く発生するようです...そうすると、VMは他のPCとのすべての接続を失いますファイアウォールの状態にかかわらず、ネットワーク内に存在します。 –

+2

私は自分のホスト名/ IPアドレスをHOSTSファイルに入れて、それを自動的に解決します。 – Robert4Real

+2

ええと、「素晴らしい」、スケジュールされたメンテナンスのためにVMが再起動し、IPアドレスが失われたらどうなりますか? – astaykov

0

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

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

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

関連する問題