У меня есть сервер с IPv4-адресом и подсетью IPv6/64 (скажем, 2001:db8::/64
), оба общедоступные. Сам сервер имеет следующий IPv6-адрес: 2001:db8::1/64
. Шлюз fe80::1
(что вызывает проблемы с докером/подманом, потому что он не в той же подсети).
Моя цель - создать контейнер docker/podman (например, WWW-сервер) с собственным общедоступным IPv6 (скажем, 2001: db8:: 2/64
). Насколько я понимаю, для такой настройки нужна сеть macvlan. Таким образом, установка будет выглядеть следующим образом:
Мне удалось частично выполнить эту настройку, используя мостовую сеть и следующую команду:
сеть sudo podman создать --subnet 2001:db8::/64 --ipv6 mynet
Контейнер в этой сети был доступен из Интернета по правильному IP (2001: дб8:: 2
), но его публичный IP-адрес (для http, ping и т. д.) был неправильным — он был 2001: дб8:: 1
, что совершенно понятно при использовании мостовой сети.
Все усложнилось, когда я попытался использовать macvlan, первой проблемой был шлюз, который нужно установить на fe80::1
. докер
отказался создавать такую сеть с ошибкой "нет подходящей подсети для шлюза fe80::1". подман
успешно создать сеть с помощью следующей команды:
sudo podman network create -d macvlan --subnet 2001:db8::/64 --gateway fe80::1 --ipv6 -o parent=eth0 mynet
К сожалению, контейнер внутри этой сети не имеет возможности подключения ни в каком направлении, хотя для него указаны правильные IP-адрес и шлюз.
Сервер работает на Ubuntu, с включенной IP-маршрутизацией в ядре.
Любые идеи, как эта установка может быть сделана, будут высоко оценены. Спасибо.