Виртуальная подсеть Podman без корневого доступа с контейнерами, доступными извне по IP, возможно ли это?

Виртуальная подсеть Podman без корневого доступа с контейнерами, доступными извне по IP, возможно ли это?

Цель

  • Настройка виртуальной сети, в которой запущено несколько контейнеров
  • каждый контейнер должен быть доступен по своему IP-адресу из хост-сети
  • контейнеры работают без прав root (предназначены для запуска тестовой сети из CI-раннера)
  • допустимо запустить специальную iptablesкоманду sudo, которая позволяет осуществлять необходимые переадресации в виртуальную сеть

Причина, по которой я избегаю использования опубликованных портов, заключается в том, что я хочу, чтобы виртуальная сеть напоминала «реальность», в которой большее количество служб будет работать на отдельном оборудовании, а тот факт, что они будут использовать разные IP-адреса, имеет значение для службы координации.

Мой подход

$ podman network create --subnet 10.10.10.0/24 virtnet1
$ ( export DBUS_SESSION_BUS_ADDRESS=; podman run --rm -d --name nmt --network virtnet1 praqma/network-multitool )

(Этот DBUSвзлом — обходной путь дляЭта проблема)

Если я сейчас посмотрю, то iptables -Lувижу цепи CNI-FORWARD, и я наивно предполагал, что это просто

sudo iptables -A CNI-FORWARD -d 10.10.10.0/24 -j ACCEPT

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

Это в принципе невозможно (примеров я не нашел) или я просто что-то делаю не так?

Могут ли CNI-*цепочки быть связаны с какими-либо предыдущими корневыми контейнерами, поскольку логически безкорневой контейнер в любом случае не сможет повлиять на что-либо iptablesсвязанное?

Связанный контент