url image

Сетевые настройки в кластерах с технологией 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-адрес шлюза — он один на всех хостах.

ОС Ubuntu 16, Debian

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

pointopoint 10.0.0.1

Конфигурация должна принять примерно следующий вид:

auto ens3
allow-hotplug ens3
iface ens3 inet static
    address <Основной IP адрес машины>
    netmask 255.255.255.255
    gateway 10.0.0.1
    pointopoint 10.0.0.1
    dns-nameservers 8.8.8.8 8.8.4.4

Добавление IPv6. Добавьте в файл конфигурации /etc/network/interfaces следующие строки:

iface ens3 inet6 static
address 2a01:230:X:X::X
netmask 64
gateway 2a01:230:X:X::1
autoconf 0
dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888

После внесения изменений в конфигурацию выполните перезапуск сетевого интерфейса, чтобы применились новые параметры:

service networking restart

ОС Ubuntu 18/20

В данных ОС конфигурация сетевого интерфейса выполняется в файле /etc/netplan/01-netcfg.yaml. Обратите внимание, что каждый блок конфигурации отделяется двумя пробелами.

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.8.8, 8.8.4.4 ]
      optional: true

Для добавления осного IPv6 адреса приведите следующие строки конфигурационного файла к виду:

  ens3:
    addresses: [ <Основной IP адрес машины>/32, 2a01:230:X:X::X/64 ]
    gateway6: 2a01:230:X:X::1

    nameservers:
      addresses: [ 8.8.4.4, 8.8.8.8, 2001:4860:4860::8844, 2001:4860:4860::8888]

Используйте netplan для генерации необходимой конфигурации:

netplan generate

Примените конфигурации netplan:

netplan apply

Далее рекомендуется перезапустить сетевой интерфейс или перезагрузить сервер:

reboot

ОС CentOS

В CentOS конфигурация выполняется в файле /etc/sysconfig/network-scripts/ifcfg-eth0

Необходимо установить значение опции SCOPE, пример:

DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"

IPADDR=<Основной IP адрес машины>
NETMASK=255.255.255.255
SCOPE="peer 10.0.0.1"
GATEWAY="10.0.0.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

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

10.0.0.1/32 dev eth0
default via 10.0.0.1 dev eth0

Добавление основного IPv6 адреса:

В файле /etc/sysconfig/network включаем поддержку IPv6

NETWORKING_IPV6=yes

В конец файла конфигурации сетевого интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 добавляем:

IPV6INIT=yes
IPV6ADDR=2a01:230:X:X::X
IPV6_DEFAULTGW=2a01:230:X:X::1

После внесения всех необходимых изменений перезапустите сетевой интерфейс:

service network restart

ОС RouterOS

На данной ОС настройка сетевого интерфейса выполняется с помощью команд:

/ip address add address=<Основной IP адрес машины>/32 interface=ether1 network=10.0.0.1
/ip route add gateway=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-адреса

Ubuntu 16 и Debian

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

Добавление IPv4

auto eth0:N # где N это порядковый номер дополнительного интерфейса, нумерация начинается с 0.
iface eth0:N inet static
  address  <новый-ip-адрес>
  netmask 255.255.255.255

Добавление IPv6:

iface eth0:N inet6 static # где N это порядковый номер дополнительного интерфейса, нумерация начинается с 0.
address 2a01:230:X:X::X
netmask 64
gateway 2a01:230:X:X::1
autoconf 0

Перезагрузите сетевой интерфейс:

service networking restart

Ubuntu 18/20

Для добавления дополнительного адреса IPv4 <новый-ip-адрес> или IPv6 2a01:230:X:X::X перечислите все IP через запятую в строке addresses в файле /etc/netplan/01-netcfg.yaml:

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

Используйте netplan для генерации необходимой конфигурации:

netplan generate

Примените конфигурации netplan:

netplan apply

Далее рекомендуется перезапустить интерфейсы или перезагрузить сервер:

reboot

CentOS

Создайте файл /etc/sysconfig/network-scripts/ifcfg-eth0:N для каждого дополнительного IP, где N это порядковый номер доп.интерфейса, нумерация начинается с 0. Содержимое файла:

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

Добавление IPv6 проходит по такому же принципу, создайте или, если он уже создан, отредактируйте файл  /etc/sysconfig/network-scripts/ifcfg-eth0:N и добавьте в него строки:

IPV6INIT=yes
IPV6ADDR=2a01:230:X:X::X
IPV6_DEFAULTGW=2a01:230:X:X::1

Не забудьте перезапустить сетевой интерфейс для внесения изменений:

service network restart

ОС FreeBSD

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

Этот материал был полезен?