Настройки сети в кластерах с технологией 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

ОС Ubuntu 18

root@ubuntu:~# cat /etc/netplan/01-netcfg.yaml 
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses: [ <Основной IP адрес машины>/32 ]
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
on-link: true
nameservers:
addresses: [ 8.8.4.4, 8.8.8.8 ]
optional: true

ОС 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="188.120.247.2"

Проверьте наличие файла /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

В Ubuntu 18 для добавления дополнительного адреса IPv4 <новый-ip-адрес> приведите строки

ens3:
addresses: [ <Основной IP адрес машины>/32 ]


к виду:

ens3:
addresses: [ <Основной IP адрес машины>/32, <новый-ip-адрес>/32]

Для добавления дополнительного адреса IPv6 "2a01:230:X:X::X" с маской сети "64" и шлюзом "2a01:230:X:X::1" приведите строки

ethernets:
ens3:
addresses: [ <Основной IP адрес машины>/32 ]
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
on-link: true
nameservers:
addresses: [ 8.8.4.4, 8.8.8.8 ]


к виду:

ethernets:
ens3:
addresses: [ <Основной IP адрес машины>/32, 2a01:230:X:X::X/64 ]
gateway6: 2a01:230:X:X::1
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
on-link: true
nameservers:
addresses: [ 8.8.4.4, 8.8.8.8, 2001:4860:4860::8844, 2001:4860:4860::8888]

В 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-адреса сервер необходимо перезагрузить

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.