Перейти к основному содержанию

База знаний
FirstDedic

Настройка сети с использованием VPU и дополнительных IP (алиасов) на выделенных серверах FirstDedic (включая любые L3 гипервизоры или роутеры)

Для того чтобы понять многие детали этой статьи, вам необходимо обладать базовыми знаниями в области компьютерных сетей.

Если все знания у вас в комплекте, переходите сразу к интересующему пункту настройки.

Оглавление

Что такое VLAN

Что такое VPU

Что такое дополнительные IP (алиасы)

Чем дополнительные IP для сервера отличаются от VPU сетей

Можно ли получить транковый / гибридный порт для WAN или LAN

Как настроить VPU

Как настроить VPU и дополнительные IP (алиасы)

Как настроить дополнительные IP (алиасы)

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

Как настроить несколько VPU сетей в одном VPU VLAN

Небольшая рекомендация при использовании гипервизоров основанных на Linux ядре

Что такое VLAN сеть и зачем она нужна

Говоря простым языком VLAN (Virtual Local Area Network) — это инструмент, который позволяет разграничивать доступ к серверам в одном сегменте.

Так как серверов у нас много, то эту технологию необходимо применять как можно более активно, чтобы серверы, которые вы арендуете у нас не «смешивались» с соседними серверами, что мы успешно и делаем, используя не только VLAN, но и VPU VLAN. Чтобы, например, не происходила деградация сервиса на арендуемом сервере по причине большого широковещательного трафика от других серверов клиентов или злонамеренных действий «соседей» (попыток отравления ARP кэша и многих других).

Что такое VPU сеть и зачем она нужна

VPU (VLAN Per-User) — это VLAN, который включает купленные сети и дополнительные IP-адреса серверов клиента с уже существующим маршрутизатором с нашей стороны.

Каждому выделенному серверу нужна сеть для взаимодействия с другими устройствами в мире. В наших ДЦ — WebDC и IXC мы используем VPU технологию для наших клиентов, чтобы обеспечивать отличный уровень сервиса и доступности.

Однако тут есть нюанс, который заключается в следующем.

В целях экономии адресного пространства IPv4 для вашего сервера выдаётся IP-адрес с сетевой маской 255.255.255.254 (/31), которая, в свою очередь, предполагает использование только одного IP-адреса для сервера и одного IP-адреса для шлюза. При использовании такой маски техническая возможность для использования широковещательного адреса отсутствует, а адресом сети является непосредственно адрес шлюза. Для некоторого оборудования и ПО (например VMWare ESXi) такая маска недопустима. Более подробно про этот случай можно узнать чуть далее.

У каждой сети в VLAN VPU будет свой адрес сети, броадкаст адрес (за исключением /31) и адрес шлюза. Соответственно, помимо изоляции на втором уровне OSI, при покупке дополнительных сетей в том же VLAN VPU вы можете приобрести сети для дополнительной гибкости в управлении сетями на своих серверах и устройствах на 3 уровне модели OSI.

Что такое дополнительные IP (алиасы)

Дополнительные IP-адреса позволяют более гибко использовать имеющиеся ресурсы. Инструкцию для заказа дополнительных IP-адресов можно найти здесь.
Во всех наших дата-центрах VPU для выделенных серверов подключается по умолчанию, и это усложняет добавление такого типа IP-адресов.
Ниже разберемся, как включить форвардинг приобретённого дополнительного IP-адреса адреса на нужный сервер.  

Чем дополнительные IP для сервера отличаются от VPU сетей

Дополнительный IP-адрес находится в общем широковещательном домене в рамках ограничений VLAN сегмента. VPU сети — это самостоятельные VLAN сегменты. Если вы выбираете услугу VPU, то ваши сети становятся более производительны и безопасны, нежели в ситуации использования простого дополнительного IP-адреса. Адресация в VPU ограничена только купленными сетями и нашим маршрутизатором. Нет стороннего трафика от других клиентов и оборудования (широковещательного трафика).

Можно ли получить транковый / гибридный порт для WAN или LAN интерфейсов сервера

Для интернет-интерфейсов серверов порт коммутатора подается только как порт доступа (access / untagged).

Для локальных интерфейсов между серверами порт может быть подан транком (trunk / tagged). Это касается множественного заказа услуги VLAN для одних и тех же серверов. После заказа этой услуги вам необходимо обратиться в поддержку и заявить о том, что порт необходимо подать транком. Сотрудник, который будет выполнять подключение, сообщит вам список VLAN ID для использования на вашем оборудовании.

Как настроить VPU

Важно помнить, что у каждой сети в VPU VLAN вне зависимости от сетевой маски есть собственный IP-адрес шлюза, который вы можете увидеть в биллинге в разделе «Виртуальная сеть (VLAN)» — иконка «Сети».

Настройка IP-адресации ничем не отличается от типичной настройки сети, где вы просто указываете на любом количестве устройств, для которых приобрели VPU сети, сетевые реквизиты (IP-адрес, маску сети и IP-адрес шлюза) из этой сети. В трансляции или форвардинге необходимости нет.

Всё будет работать «из коробки». 

Дополнительные настройки использовать не обязательно.

Количество самостоятельных сетей (со своим шлюзом, адресом сети и броадкастом) в рамках одного VPU VLAN не ограниченно.

Легенда:

<host_mac_address> — MAC адрес WAN адаптера хостовой ОС
<host_iface> — название интернет-интерфейса (например, eth0 в случае Linux или Ethernet1 в случае Windows)
<host_IP_address> — IP-адрес сервера (vpu сеть)
<host_IP_mask> — маска сети (vpu сеть, например 255.255.255.252)
<host_IP_mask_cidr> — бесклассовая маска сети (vpu сеть, например /30)
<gateway_IP_address> — IP-адрес шлюза (vpu сеть)
<dns_IP_address> — адрес предпочитаемого DNS сервера

Windows:

Важно: для сети VPU /31 (255.255.255.254) используйте маску сети /32 (255.255.255.255)

Win+R-> control -> «Центр управления сетями и общим доступом» или BATCH (cmd) скрипт:

netsh interface ip set address "<host_iface>" static <host_IP_address> <host_IP_mask> <gateway_IP_address>

netsh interface ip add dns "<host_iface>" <dns_IP_address

или PowerShell скрипт:

New-NetIPAddress –IPAddress <host_IP_address> -DefaultGateway <gateway_IP_address> -PrefixLength <host_IP_mask_cidr> -InterfaceAlias "<host_iface>"

Set-DNSClientServerAddress -InterfaceAlias "<host_iface>" –ServerAddresses <dns_IP_address>

RHEL (RHEL, Centos,  AlmaLinux):

# cat /etc/sysconfig/network-scripts/ifcfg-<host_iface>
HWADDR=<guest_mac_address>
DEVICE=<host_iface>
BOOTPROTO="static"
ONBOOT=yes
IPADDR=<host_IP_address>
NETMASK=<host_IP_mask>
DNS1=<dns_IP_address>
# cat /etc/sysconfig/network
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=<gateway_IP_address>
# cat /etc/sysconfig/network-scripts/route-<host_iface>
default via <gateway_IP_address> dev <host_iface>

Debian / Ubuntu:

# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto <host_iface>
iface <host_iface> inet static
    address <host_IP_address>
    netmask <host_IP_mask>
    gateway <gateway_IP_address>
 

Netplan.io:

# cat /etc/netplan/00-installer-config.yaml
network:
  ethernets:
    <host_iface>:
      dhcp4: false
      addresses: [<host_IP_address>/<host_IP_mask>]
      gateway4: <gateway_IP_address>
      nameservers:
       addresses: [<dns_IP_address>]
  version: 2
 

Mikrotik RouterOS:

/ip address add address=<host_IP_address>/<host_IP_mask_cidr> interface=<host_iface>
/ip route add gateway=<gateway_IP_address>
 

FreeBSD:

# cat /etc/rc.conf
ifconfig_<host_iface>="<host_IP_address>/<host_IP_mask_cidr>"
defaultrouter="<gateway_IP_address>"
 

Systemd:

# cat /etc/systemd/network/10-main.network

[Match]
Name=<host_iface>

[Network]
Address=<host_IP_address>/<host_IP_mask_cidr>
Gateway=<gateway_IP_address>
DNS=<dns_IP_address>
 

Как настроить VPU и дополнительные IP (алиасы)

Если гипервизор не используется, то достаточно просто настроить сеть с использованием полученных реквизитов в биллинге и добавить дополнительный IP (алиас) как secondary на сетевой интерфейс сервера.

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

То есть в качестве основных реквизитов сети для сетевого адаптера выступает VPU сеть, а дополнительный IP использует IP forward из ОС гипервизора.

Как настроить дополнительные IP (алиасы)

Для добавления IP-адреса на сам сервер / гипервизор (хостовую ОС) не требуется никаких дополнительных манипуляций, достаточно просто указать дополнительный IP в настройках интернет-интерфейса сервера. Инструкции для этого можно найти в интернете или на нашем сайте.

Однако если требуется добавить такой адрес для гостевых ОС гипервизора, то необходимо использовать IP форвардинг. 

Также потребуется добавление статического постоянного маршрута на хостовой ОС для бридж интерфейса. 

Либо можно использовать преобразование сетевых адресов (NAT), если гипервизор его поддерживает.

 

Общая рекомендация:
Лучшим решением будет приобретение сети /30 (1 IP-адрес для сети управления гипервизором) и отдельно /29 или /28 (5 или 13 адресов соответственно) для добавления на гостевые ОС.
В том случае если вы решите сократить расходы, достаточно будет удалить неиспользуемую сеть, а не перенастраивать все сети по причине замены сети в VPU на новую маску.

 

Итого требуется сделать всего 3 шага для добавления IP -адреса алиасом:

1) Включить IP форвардинг на хостовой ОС.

2) Добавить статический маршрут до этого адреса (IP-алиаса) с маской /32 на бриджевом интерфейсе хостовой ОС, в котором присутствует сетевой интерфейс нужной виртуальной машины, для которой добавляется IP алиас.

3) Настроить сеть на гостевой ОС, используя в качестве адреса шлюза IP-адрес шлюза VPU сети.

В рамках этой статьи не будем описывать вариант с использованием NAT, остановимся только на форварде в гостевую ОС и обратно.

Делаем ШАГ 1 — Включить IP форвардинг на хостовой ОС.

Примеры включения IP forward глобально для всей хостовой ОС:

для Linux:

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward

Перезагрузка не требуется.

для Windows:

reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f 

И выполнить перезагрузку.

Делаем ШАГ 2 — Добавить статический маршрут до этого адреса с маской /32 на бриджевом интерфейсе хостовой ОС, в котором присутствует нужная виртуальная машина.

Примеры добавления статического маршрута (выполняется также на хостовой ОС):

Легенда:

<guest_mac_address> — MAC адрес WAN адаптера гостевой ОС
<current_host_iface> — название интернет-интерфейса текущего устройства (хостовая или гостевая ОС)
<host_IP_address> — IP-адрес сервера (vpu сеть)
<host_IP_mask> — маска сети (vpu сеть)
<gateway_IP_address> — IP-адрес шлюза (vpu сеть)
<bridge_iface> — интерфейс сетевого моста
<alias_IP_address> — дополнительный IP-адрес, который добавляем (алиас)
<dns_IP_address> — адрес предпочитаемого DNS сервера

Для Windows (например Hyper-V, но не только):

route add -p <alias_address> mask 255.255.255.255 <host_IP_address>

Для ядра Linux (например Proxmox, но не только):

/etc/network/interfaces

auto <bridge_iface>
iface <bridge_iface> inet static
    address <host_IP_address>/<host_IP_mask>
    gateway <gateway_IP_address>
    bridge_ports <current_host_iface>
    bridge_stp off
    bridge_fd 0

    up ip route add <alias_address>/32 dev <bridge_iface> 
    down ip route del <alias_address>/32 dev <bridge_iface>

Для VMWare ESXi:

Для установки гипервизора VMware ESXI на выделенный сервер можете воспользоваться этой инструкцией.  

Для корректной работы сети управления (management network) VMWare ESXi необходима VPU сеть с маской не менее /30 (255.255.255.252). По умолчанию сеть для сервера во всех наших ДЦ выдаётся с маской /31 (255.255.255.254) и работать не будет. О причинах было упомянуто выше. Вам необходимо купить сеть с маской /30 или больше через ЛК биллинга. 

Также VMkernel в ESXi не поддерживает IP Forwarding и NAT, следовательно, на этом гипервизоре IP алиасы в гостевых ОС работать не будут.

Для добавления пула IP-адресов для гостевых ОС необходимо дозаказать сети в VPU либо дополнительное количество самих VPU услуг. При этом стоит создать тикет в поддержку для того, чтобы новые купленные сети были добавлены в уже существующий VPU VLAN для вашего сервера.

Делаем ШАГ 3  — Настроить сеть на гостевой ОС. 

Windows:

В случае с Windows дополнительных манипуляций проводить не нужно, достаточно добавить IP-адрес с маской 255.255.255.255 на интрефейс сетевого адаптера гостевого сервера через панель управления (Win+R-> control -> «Центр управления сетями и общим доступом») или BATCH (cmd) скрипт:

netsh int ipv4 add address "<current_host_iface>" <alias_IP_address> 255.255.255.255 skipassource=true

или PowerShell скрипт:

New-NetIPAddress -IPAddress "<alias_IP_address>" -InterfaceAlias "<current_host_iface>" -PrefixLength 32 -SkipAsSource $True

RHEL (RHEL, Centos,  AlmaLinux):

# cat /etc/sysconfig/network-scripts/ifcfg-<current_host_iface>
HWADDR=<guest_mac_address>
DEVICE=<current_host_iface>
BOOTPROTO="static"
ONBOOT=yes
IPADDR=<alias_IP_address>
NETMASK=255.255.255.255
SCOPE="peer <host_IP_address>"
DNS1=<dns_IP_address>
 
# cat /etc/sysconfig/network-scripts/route-<current_host_iface>
<host_IP_address>/32 dev <current_host_iface>
default via <host_IP_address> dev <current_host_iface>

Debian / Ubuntu:

# cat /etc/network/interfaces
auto <current_host_iface>
iface <current_host_iface> inet static
    address <alias_IP_address>
    netmask 255.255.255.255
    gateway <host_IP_address>
    pointopoint <host_IP_address>

ВАЖНО: Обратите внимание на синтаксис pointopoint. С двумя t (pointtopoint) конфигурация также будет принята и сетевой интерфейс будет запущен, однако корректно работать не будет.

Netplan.io:

# cat /etc/netplan/00-installer-config.yaml
network:
  ethernets:
    <current_host_iface>:
      dhcp4: false
      addresses: [<alias_IP_address>/32]
      routes:
       - to: <alias_IP_address>/32
         via: <host_IP_address>
         on-link: true
       - to: 0.0.0.0/0
         via: <host_IP_address>
         on-link: true
      nameservers:
       addresses: [<dns_IP_address>]
  version: 2

Mikrotik RouterOS:

/ip address add address=<alias_IP_address>/32 interface=<current_host_iface> network=<host_IP_address>
/ip route add gateway=<host_IP_address>
 

FreeBSD:

# cat /etc/rc.conf

ifconfig_<current_host_iface>_alias0="inet <alias_IP_address>/32"

gateway_if="<current_host_iface>"
gateway_ip4="<host_IP_address>"

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

Systemd:

# cat /etc/systemd/network/10-alias.network
[Match]
MACAddress=<guest_mac_address>

[Network]
Gateway=<host_IP_address>
Address=<alias_IP_address>/32
[Address]
Address=<alias_IP_address>/32
Peer=<host_IP_address>/32

Как настроить на основной ОС IP алиас, а на гостевых ОС VPU сеть

Для такой работы сети вам потребуется настроить форвардинг пакетов из основной ОС в одну из гостевых ОС.
На гостевой ОС должен быть включен IP Forwarding (соответственно, ОС должна иметь такой функционал) и настроена VPU сеть.
Далее по приведенной выше инструкции по добавлению дополнительного IP выполняем эти действия на хостовой ОС.

Как настроить несколько VPU сетей в одном VPU VLAN

Самое главное, не забудьте обратиться в техническую поддержку и сообщить, что новую приобретенную VPU сеть требуется добавить в уже существующий VPU VLAN, если у вас уже имеется активная услуга VPU.

Далее, следуя инструкциям выше по настройке VPU, выполните настройку сетей для требуемого количества устройств.

Небольшая рекомендация при использовании гипервизоров, основанных на Linux ядре

Чтобы избежать ситуации, когда ядро Linux отвечает на ARP запрос с бридж интерфейса без IP-адреса, лучшим решением будет использование следующих параметров ядра:

net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 2

 

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

 

Андронов Павел, FirstDEDIC


База знаний

Сообщить об ошибке

Выделенная ошибка:

Опишите найденную ошибку