Azure AKS Network Analytics- откуда эти запросы поступают в Kubernetes Cluster?

Я немного озадачен сетевой аналитикой Azure! Может ли кто-нибудь помочь разрешить эту тайну?

Мой кластер Kubernetes в Azure является частным. Он подключен к vNET, и нигде нет открытых IP-адресов. Сервис настроен с помощью внутреннего балансировщика нагрузки. Шлюз приложений вызывает внутренний балансировщик нагрузки. NSG блокирует весь входящий трафик из Интернета в шлюз приложений. В NSG разрешены только доверенные NAT ips.

Вопрос в том, что я вижу много интернет-трафика, поступающего в aks в vNET. Им отказано конечно! У меня нет ни одного публичного IP 40.117.133.149 нигде в подписке. Итак, как эти запросы поступают в акс?

AzureNetworkAnalytics

Это не точная архитектура, но она очень близка к тому, что реализовано.

Вы можете попробовать вызвать шлюз приложения из Интернета, и вы не получите никакого ответа! http://23.100.30.223/api/customer/FindAllCountryProvinceCities?country=United%20States&state=Washington

Вы получите успешный ответ, если позвоните в функцию Azure - https://afa-aspnet4you.azurewebsites.net/api/aks/api/customer/FindAllCountryProvinceCities?country=United%20States&state=Washington

Это возможно благодаря соблюдению правил NSG!

Спасибо, что нашли время ответить на мой запрос.

В ответ на @CharlesXu, я делюсь немного больше о сети AKS. Сеть Aks состоит из нескольких адресных пространств.

Кроме того, ни один из двух узлов в кластере не назначен общедоступному ip. Только частный ip назначен узлу vm. Вот пример узла-0-

Я не понимаю, почему я вижу входящие запросы к 40.117.133.149 в моем кластере!

1 ответ

После поиска всех настроек и журналов активности я наконец-то нашел ответ на загадочный IP! Балансировщик нагрузки с внешним ip был автоматически создан как часть службы входа nginx, когда я перезапустил виртуальные машины. NSG был обновлен автоматически, чтобы разрешить интернет-трафик на порт 80/443. Я вручную удалил публичный балансировщик нагрузки вместе с IP, но злоумышленники все еще вызывали IP с другими портами, которые по умолчанию запрещены входящим правилом nsg.

Чтобы воспроизвести, я снова удалил публичный балансировщик нагрузки вместе с публичным ip. Azure aks воссоздан, как только я перезапустил виртуальные машины в кластере! Это как игра в кошки-мышки!

Я думаю, что мы можем обновить аннотацию входного сервиса, указав service.beta.kubernetes.io/azure-load-balancer-internal: "true". Не знаю, почему Microsoft решила автоматически предоставить публичный балансировщик нагрузки в кластере. Это риск, и Microsoft должна исправить поведение, создав внутренний балансировщик нагрузки.

Другие вопросы по тегам