Взаимодействие виртуальной сети виртуальных сетей Azure
Я новичок в Azure (страйк 1) и полностью отстой в сети (страйк 2).
Тем не менее, у меня есть две виртуальные машины, работающие в одной виртуальной сети; один будет выполнять роль веб-сервера, а другой - сервера базы данных SQL.
Хотя я вижу, что их внутренние IP-адреса находятся в одной и той же сети, я не могу проверить, могут ли машины взаимодействовать друг с другом, и я в некотором замешательстве относительно подходящего места для решения этой проблемы.
В собственной документации Microsoft говорится
Все виртуальные машины, которые вы создаете в Windows Azure, могут автоматически обмениваться данными через частный сетевой канал с другими виртуальными машинами в той же облачной службе или виртуальной сети. Однако вам нужно добавить конечную точку на машину, чтобы другие ресурсы в Интернете или других виртуальных сетях могли взаимодействовать с ней. Вы можете связать определенные порты и протокол с конечными точками. Ресурсы могут подключаться к конечной точке с использованием протокола TCP или UDP. Протокол TCP включает в себя связь HTTP и HTTPS.
Так почему же машины не могут хотя бы пропинговать друг друга по внутренним IP-адресам? Брандмауэр Windows мешает? Я начинаю задаваться вопросом, выбрал ли я неправильный подход для простой настройки веб-сервера / сервера базы данных. Пожалуйста, прости мое невежество. Любая помощь будет принята с благодарностью.
2 ответа
Если обе машины находятся в одной виртуальной сети, просто отключите брандмауэр Windows, и они смогут пинговать друг друга. Другой способ - просто разрешить весь входящий трафик ICMP в брандмауэре Windows с расширенными настройками.
Однако есть хитрость. Обе машины будут видеть друг друга по IP-адресам, но в так называемой Виртуальной сети не будет разрешения имен. Это означает, что вы не сможете пинговать по имени, но только по прямому IP-адресу. Итак, если вы хотите, чтобы ваш веб-сайт (на VM1) подключался к SQL Server (на VM2), вы должны указывать его по полному IP-адресу, а не по имени компьютера.
Единственный способ разрешения имен в виртуальной сети - использовать выделенный DNS-сервер, который вы обслуживаете и настраиваете локально.
В этой статье подробно описываются сценарии разрешения имен в Windows Azure. Ваш частный случай таков:
Разрешение имен между виртуальными машинами и экземплярами ролей, расположенными в одной виртуальной сети, но в разных облачных сервисах
Вы могли бы потенциально добиться разрешения имен, если бы ваши виртуальные машины были в одной облачной службе. Таким образом, вам даже не потребуется выделенная виртуальная сеть.
Если ваши виртуальные машины находятся внутри виртуальной сети в Azure, то вам нужно убедиться в двух вещах.
- Требуемый порт включен.
- Брандмауэр отключен на сервере.
Я пытался подключиться к одной виртуальной машине, на которой была установлена БД SQL Server, с другой виртуальной машины. Мне пришлось включить 1433 порт в виртуальной машине, где был установлен SQL. Для этого вам нужно добавить конечную точку MSSQL в виртуальную машину на портале управления Azure. После этого я отключил брандмауэр Windows. Тогда я смог подключиться к виртуальной машине от другого.