Используете адрес 10.0.128.25 для AlwaysOn для ограничений IP в службе приложений Azure? - PullRequest
0 голосов
/ 30 августа 2018

В журналах веб-сервера (используя az cli) я вижу запросы Get с помощью пользовательского агента AlwaysOn и IP-адреса 10.0.128.25

Можно ли надежно использовать этот IP-адрес для установки ограничения разрешенного IP-адреса?

Этот IP-адрес не задокументирован в https://docs.microsoft.com/en-us/azure/app-service/app-service-ip-addresses, который, кажется, охватывает обнаружение общедоступных IP-адресов, поэтому я опасаюсь его использовать?

В журналах я также вижу IPv6 :: 1, указывающий на localhost, поэтому я бы предположил, что 10.0.128.25 также является localhost?

2018-08-30 10:48:19 EXAMPLESITE GET / X-ARR-LOG-ID=ExampleLogId 80 - ::1 AlwaysOn ARRAffinity=ExampleArrAffinityId - EXAMPLESITE.azurewebsites.net 200 0 0 2942 695 108
2018-08-30 10:48:54 ~1EXAMPLESITE GET / - 80 - 10.0.128.25 AlwaysOn - - examplesite.azurewebsites.net 200 0 64 0 457 46463

Я попытался с помощью консоли службы приложений и консоли Kudu powershell проверить, является ли это IP-адресом экземпляра, но я не могу узнать больше, так как ipconfig или Get-NetIPAddress не работают в песочнице.

Я бы предположил, что 127.0.0.1 не будет работать, даже если бы это был тот же компьютер, поскольку IIS интерпретирует его как другой IP-адрес?

На двух планах обслуживания приложений, которые я уже пробовал, это тот же IP-адрес.

1 Ответ

0 голосов
/ 03 сентября 2018

Для каждого веб-приложения службы приложений есть два сайта: 1 - ваше обычное веб-приложение, а второй - сайт SCM (на котором работает Kudu). Каждый получает пинг, поэтому вы видите два сайта (имя ~ 1 - SCM).

Все веб-приложения Azure (а также мобильные приложения / службы, веб-задания и функции) работают в безопасной среде, называемой песочницей. Каждое приложение запускается в собственной песочнице, изолируя его выполнение от других экземпляров на том же компьютере, а также обеспечивая дополнительную степень безопасности и конфиденциальности, которая в противном случае была бы недоступна.

Да, попытки соединения с локальными адресами (например, localhost, 127.0.0.1) и собственным IP-адресом машины не будут выполнены, за исключением случаев, когда другой процесс в той же песочнице создал сокет прослушивания на порте назначения. Отклоненные попытки подключения, такие как в следующем примере, который пытается подключиться к 127.0.0.1:80 из .NET, приведут к следующему исключению: Сведения об исключении: System.Net.Sockets.SocketException: была сделана попытка получить доступ к сокету способом, запрещенным его разрешениями на доступ 127.0.0.1:80 Приложения не могут подключиться к частному IP-адресу. Экземпляры могут перемещаться, вы можете просмотреть эту ветку обсуждения, в которой говорится о работе с внутренним IP-адресом: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/182f3673-18fc-4ade-90bf-22111f566f85/need-internal-ip-address-of-nodes-withing-a-web-app?forum=windowsazurewebsitespreview

...