Сетевые настройки в кластерах с технологией VPU

Часть виртуальных серверов VDS/VPS на виртуализации KVM открывается в кластере с поддержкой технологии VPU (vlan-per-user).

Из-за программной несовместимости, панели управления BILLmanager (личный кабинет, кнопка IP-адреса) и VMmanager (управление виртуальным контейнером, кнопка IP-адреса) показывают неверные сетевые настройки для всех IP-адресов контейнера.

Автоматически сеть настраивается правильно, а дополнительные IP, заказанные из личного кабинета, добавляются как alias к основному. Если же вы измените основной IP-адрес на дополнительный или сделаете другие ручные настройки сети, то данные, указанные в панелях управления, работать не будут.

 

Правильные сетевые настройки

Сетевой префикс всех IP-адресов: <ip-адрес>/32

Маска подсети: 255.255.255.255

Шлюз: 10.0.0.1

 

Примеры конфигурации сети

На кластерах с VPU нет общего broadcast-домена, все адреса настраиваются с префиксом /32 (использование сетевой маски 255.255.255.255). В этом случае сервер считает, что он один в своей сети и не будет посылать пакеты напрямую узлам, все будет пересылаться исключительно через шлюз. Однако, при этом нужно явно задать маршрут до шлюза.

Установите 10.0.0.1 как IP-адрес шлюза - он один на всех хостах, чтобы избежать проблем при миграции VDS/VPS, иначе нужно было бы менять сетевые настройки.

 

ОС Debian

В файле конфигурации сетевых интерфесов добавьте опцию:

pointopoint 10.0.0.1

 

ОС Ubuntu:

root@gorskiy:~# cat /etc/network/interfaces
iface ens3 inet static
address <Основной IP адрес машины>
netmask 255.255.255.255
gateway 10.0.0.1
pointopoint 10.0.0.1
dns-nameservers 
dns-search kz

 

ОС CentOS

В CentOS установите значение опции SCOPE, пример:

[root@led-baza ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
IPADDR=<Основной IP адрес машины>
NETMASK=255.255.255.255
SCOPE="peer 10.0.0.1"
DNS1=
DNS2=

Проверьте наличие файла /etc/sysconfig/network-scripts/route-eth0 вида:

ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=10.0.0.1

 

ОС FreeBSD

Пример /etc/rc.conf:

# IPv4 основной адрес
ifconfig_re0="inet <основной-ip-адрес>/32"

# IPv4 примеры алиасов
#ifconfig_re0_alias0="inet <ip-адрес>/32"
#ifconfig_re0_alias1="inet <ip-адрес>/32"

# Сетевой интерфейс с доступом до шлюза
gateway_if="re0"
# IPv4 адрес шлюза
gateway_ip4="10.0.0.1"

static_routes="gateway default"
route_gateway="-host $gateway_ip4 -interface $gateway_if"
route_default="default $gateway_ip4"

Серверы в одной подсети не могут обмениваться пакетами напрямую. Такие пакеты следует принудительно отправлять через шлюз по умолчанию.

Обратите внимание: не используйте ключевое слово defaultrouter при такой настройке!

 

Добавление дополнительного IP-адреса

Дополнительные IP-адреса добавляются из командной строки:

ip addr add <новый-ip-адрес>/32 dev eth0

 

Через конфигурационные файлы в Ubuntu для сохранения после перезагрузки.

Добавьте в файл /etc/network/interfaces под соответствующим интерфейсом (например, eth0) следующие строки:

up ip addr add <новый-ip-адрес>/32 dev eth0
down ip addr del <новый-ip-адрес>/32 dev eth0

 

В CentOS, создайте файл etc/sysconfig/network-scripts/ifcfg-eth0:1

DEVICE=eth0:1
IPADDR=новый-ip-адрес
NETMASK=255.255.255.255

 

Настройка дополнительных IP-адресов и подсетей в FreeBSD производится путём добавления алиасов к интерфейсам в файле /etc/rc.conf. Для каждой подсети (или если дополнительный IP-адрес находится в сети отличной от сети основного IP-адреса) следует указывать правильную маску для первого IP-адреса из сети. Остальные адреса сети указываются с маской /32 (255.255.255.255).

 

Для применения изменений перезапускаем сеть

# service network restart

или

# service networking restart

 

После ручного добавления IP-адреса сервер необходимо перезагрузить