Часть виртуальных серверов 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).