Входящий пул NAT, как обнаружить внешний порт? - PullRequest
0 голосов
/ 11 июня 2018

Справочная информация : Если я правильно понимаю, InboundNATPools используются для сопоставления диапазона внешних портов, каждый из которых с определенной виртуальной машиной на VMSS за LB.например, {LB_IP:p1,LB_IP:p2, ...} => {VM1:p0,VM2:p0, ...}

Вопрос : Как виртуальная машина (то есть приложение) может обнаружить назначенный ей внешний порт?например, в приведенном выше примере правый порт из {p1,p2,..}

Возможный подход : я рассматриваю возможность использования внешней службы, которая будет прослушивать соединения на хорошо известном порту, и когдасоединение установлено, ответьте с портом источника.Я не хочу его использовать, поскольку это означает, что нужно поддерживать другую службу.

Дополнительные сведения : я работаю в Service Fabric и протокол для порта - TCP.

Идентичный вопрос без ответа : Извлечение порта NAT балансировщика нагрузки Azure для виртуальной машины Azure в C # не получен верный ответ, я надеюсь снова решить проблему.

1 Ответ

0 голосов
/ 11 июня 2018

Предполагая, что ваши ID шкалы смежны, вы можете использовать

curl -H Metadata:true "http://169.254.169.254/metadata/instance?api-version=2017-12-01"

, который даст вам имя узла в формате nodename_0

, добавив числопосле _ до начального порта балансировщика нагрузки должен дать вам порт

Очень хак, и я очень надеюсь, что есть лучшее решение!

Лично япредпочел предоставить VPN-доступ, чтобы к этим портам можно было обращаться напрямую из внутренней сети VNET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...