Запуск 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 подсети.