Настройка ipv6 в Proxmox и заметки о lvm

в 12:34, , рубрики: Hetzner, IPv6, LVM, proxmox, виртуализация, метки: , , ,

image

В многих местах вижу вопросы о том, как настроить 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 (еще раз напомню, как это делать) нужно создать бридж на физический интерфейс

Настройка ipv6 в Proxmox и заметки о lvm

Поля ип адреса, маски и шлюза заполняете так, как выдал вам hetzner.
Если вы заказали подсеть — вводите туда данные подсети.
Если, как я, заказали несколько отдельных ip адресов — введите туда основной ip, который получили при заказе сервера.

После чего — перезагрузить сервер или сеть.

Далее, при создании контейнера — выбираете в качестве сетевого интерфейса veth network device и созданный вами бридж.

Теперь важный момент для hetzner. Необходимо для каждого дополнительного ip адреса заказать виртуальный mac адрес.

Настройка ipv6 в Proxmox и заметки о lvm

Нажимаете на иконочку около ip-адреса — и увидите ваш mac адрес. Скопируйте его и вставьте в поле MAC в окошке редактирования сетевого интерфейса вашей виртуальной машины (не Host MAC address, а просто MAC)

Настройка ipv6 в Proxmox и заметки о lvm

Сохраняем, перезагружаем виртуальную машину.

Теперь, немного поправим сетку физической машины.
Создайте файл /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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js