Проблема перекрытия IP-адресов между модулем и внешним миром

#networking #kubernetes #cni

#сеть #kubernetes #cni

Вопрос:

У нас есть кластер K8s в Azure (AKS) с сетью Azure CNI. Мы указали диапазон IP-адресов с помощью этого CIDR: 10.131.0.0 /22

Таким образом, диапазон IP-адресов модулей между 10.131.0.0 и 10.131.3.255 . Это мои внутренние IP-адреса. И пока здесь нет проблем.


Я хочу привести упрощенный пример, чтобы выразить свою проблему:

Давайте представим модуль, вызываемый pod1 в этом кластере. Внутри этого модуля я хочу получить доступ к внешнему миру. Like curl myapi.com ( myapi.com является общедоступным веб-сайтом и не связан с этим кластером).

Также представьте myapi.com , что у вас есть общедоступный IP 10.131.0.166 -адрес, который перекрывает мой внутренний диапазон IP-адресов. Как я могу принудительно pod1 получить доступ к этому общедоступному IP-адресу, а не маршрутизировать другой модуль в этом кластере?

Комментарии:

1. 10.x.x.x — это частный сетевой адрес. Ни один общедоступный сервер не может использовать этот адрес

2. Да, я знаю, из-за этого я подчеркиваю как «упрощенный пример». Реальная проблема сложнее. Это между AKS <-> Side to Side VPN <-> Другой локальной сетью.

3. В идеале вы должны выделить отдельные диапазоны адресов для двух сетей и настроить маршрутизацию для поддержки этого. Например, 10.131.0.0 для одной сети и 10.132.0.0 для другой. В качестве взлома вы можете попробовать настроить маршруты для конкретных удаленных хостов, чтобы эти хосты можно было найти, а затем создать службу k8s с этими IP-адресами, чтобы они не были выделены в кластере. Я никогда не пробовал это, я не знаю, сработает ли это.

4. Идеальная часть нам не подходит, потому что другая частная сеть не находится под нашим контролем. Но хакерский способ может решить нашу проблему, мне нужно провести некоторые исследования, чтобы задать маршрут для определенного IP. Спасибо за предложение.