В многих местах вижу вопросы о том, как настроить ipv6 для контейнеров в proxmox, а так-же, почему не работает онлайн бекап.
Сам уже довольно давно пользуюсь proxmox для виртуализации openvz (разделение сервисов, тесты, дев. окружения) ну и все это крутится на hetzner.
О том, как установить и настроить proxmox — писать не буду, на Хабре в частности, да и в интернете в целом — этой информации полно. Не смотря на то, что лучший источник такой информации — официальный вики.
Но что в вики нет, так это того, как же правильно ставить proxmox на дебиан.
LVM
В этом моменте есть маленький нюансик: инсталлер на си-диске размечает жесткий диск автоматически, создавая физический lvm том и 2 логических на нем. Причем, 2 логических тома не заполняют весь физический том на 100%, а оставляют свободным где-то 10-20 процентов. Это делается для того, чтоб правильно работал онлайн бекап (т.е. бекап без остановки работы виртуальных машин).
Дело в том, что онлайн бекап происходит методом снепшота рабочего тома. Для этого создается временный логический том как раз в неразмеченном пространстве.
А два тома инсталлер на си-диске создает для того, чтоб 2й использовать как хранилище бекапов, ибо нельзя бекапить текущий том на текущий, это какая-то рекурсия выходит.
Поэтому, при установке Дебиан нужно учесть, что должно быть 2 логических lvm тома (1 для самих контейнеров, 2й для бекапов), которые заполняют физический lvm том где-то на 80-90%.
Как создавать lvm тома и как это делать из рекавери окружение hetzner есть или в документации к дебиану, или в вики hetzner, есть даже на русском языке.
Внимание. Тут есть еще один момент, связанный с регрессией в lvm. Во время снепшота — очень сильно проседает запись на логический том, который бекапится. Где-то я видел тикет, но не могу вспомнить где. Если у вас есть информация про этот момент — прошу поделиться.
IP V6
Про ipv6 есть так-же масса вопросов.
Многие вообще не используют ipv6 в proxmox просто потому, что не могут его настроить, что, в свете паники на рынке ipv4, весьма удручает.
А делается-то это довольно легко.
Ну, во первых, настроим ipv4 (еще раз напомню, как это делать) нужно создать бридж на физический интерфейс
Поля ип адреса, маски и шлюза заполняете так, как выдал вам hetzner.
Если вы заказали подсеть — вводите туда данные подсети.
Если, как я, заказали несколько отдельных ip адресов — введите туда основной ip, который получили при заказе сервера.
После чего — перезагрузить сервер или сеть.
Далее, при создании контейнера — выбираете в качестве сетевого интерфейса veth network device и созданный вами бридж.
Теперь важный момент для hetzner. Необходимо для каждого дополнительного ip адреса заказать виртуальный mac адрес.
Нажимаете на иконочку около ip-адреса — и увидите ваш mac адрес. Скопируйте его и вставьте в поле MAC в окошке редактирования сетевого интерфейса вашей виртуальной машины (не Host MAC address, а просто MAC)
Сохраняем, перезагружаем виртуальную машину.
Теперь, немного поправим сетку физической машины.
Создайте файл /etc/network/if-up.d/ipv6
Сделайте его исполняемым.
Поместите туда такое содержимое
#!/bin/sh
ifconfig vmbr0 add 2a01:ffff:ffff:ffff:xxxx::1/80
ip -6 route add 2a01:ffff:ffff:ffff::1 dev vmbr0
ip -6 route add default via 2a01:ffff:ffff:ffff::1 dev vmbr0
Где ffff — заменить на ваши данные, а xxxx — придумайте свою под-подсеть из выданной вам подсети (ну либо можете использовать всю выданную вам)
80 — маска моей под-подсети. (если будете ставить 64 — учтите, что 2a01:ffff:ffff:ffff::1 — это шлюз, поэтому, для ip адреса используйте 2a01:ffff:ffff:ffff::2)
Ну и назначение роутов. Тут понятно.
Передергиваем сервер или сеть и проверяем ifconfig
Заходим в виртуальную машину через консоль и vzctl enter 100 (или ваш номер).
Редактируем /etc/network/interfaces (это для debian, как там в других системах — я не помню)
auto eth0
iface eth0 inet static
address 5.5.5.5
netmask 255.255.255.224
gateway 5.5.5.1
iface eth0 inet6 static
address 2a01:ffff:ffff:ffff:xxxx::1/80
up ip -6 address add 2a01:ffff:ffff:ffff:xxxx::2 dev eth0
up ip -6 address add 2a01:ffff:ffff:ffff:xxxx::3 dev eth0
up ip -6 route add 2a01:ffff:ffff:ffff::/64 dev eth0
up ip -6 route add default via 2a01:ffff:ffff:ffff::1 dev eth0
тут — в блоке ipv4: address, netmask, gateway — данные вашего дополнительного ipv4 адреса или подсети
в блоке ipv6: ffff — данные выданной вам сети
хххх — подсеть для данной вирт. машины (внимание, тут хххх не равно хххх из предыдущего шага)
строчки up ip -6 address add 2a01:ffff:ffff:ffff:xxxx::3 dev eth0 повторяйте столько, сколько ipv6 адресов вам нужно для этой вирт. машины (ну, естественно, увеличивая последнюю циферку на 1 в 16-ричной системе счесление). Я, например, каждому сайту назначаю индивидуальный ipv6 адрес.
Последние 2 строки — это шлюзы: внутрисеть и по умолчанию для всего, что вне.
Перегружаем машину или сеть. Пингуем ipv6.google.com.
Спасибо за внимание.
Автор: vosi