, последнее обновление:

Запуск Yggdrasil в LXC контейнере

Запустить Yggdrasil в LXC контейнере может быть необходимо для изоляции или для создания нормальной сетевой топологии в условиях ограниченных ресурсов (например, если у вас один сервер, а мучаться с одним большим скриптом iptables не хочется).

Настройка контейнера

Первое - лучше запускать контейнер в привилегированном режиме, чтобы не мучаться с возможными приколами с apparmor или selinux (или другой аналогичной системой безопасности).

Второе - надо добавить руками в конфигурационный файл контейнера скрипт создания tun устройства:

lxc.hook.autodev: sh -c "modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun"

Возможно также вам необходимо будет добавить features: nesting=1 в конфигурационный файл контейнера!

В Proxmox 5+ nesting можно включить из настроек контейнера, править конфигурационный файл руками не нужно.

Что делать с сетью

Я рекомендую делать мост (bridge) на хосте и назначать ему ::1 адрес из вашей /64 подсети в самом контейнере. Саму подсеть можно посмотреть в логах yggdrasil после запуска. Таким образом всем виртуалкам или контейнерам, которым нужен доступ в yggdrasil, можно просто добавлять сетевое устройство, прицепленное к мосту, который выделен под yggdrasil’ную сеть, и выдавать адрес из вашей /64 подсети.