Мережа та VPN

Приватна мережа між серверами і VLAN 802.1Q: Linux і Windows Server

Зміст статті

Для адміністратора, який має два чи більше виділених серверів і хоче пустити трафік бази даних, реплікацію та резервні копії окремою ізольованою мережею. У підсумку сервери на Linux і Windows Server бачитимуть один одного за приватними адресами, а за потреби — в окремому VLAN 802.1Q.

Що таке приватна мережа і де вона є#

Приватна мережа — це ізольована мережа між вашими серверами, зокрема в різних країнах. Вона працює через окремий, як правило другий, мережевий інтерфейс сервера, а її швидкість залежить від лінійки: швидкість приватного порту вказано в картці сервера в каталозі. Між країнами час відгуку — десятки мілісекунд. Докладніше — на сторінці «Приватна мережа».

Приватна мережа є в лінійках Бізнес, Потужність і Ультра, а також на більшості моделей Класик і Стандарт (дивіться картку сервера). У лінійках Лайт і Турбо її немає.

Що знадобиться#

  • Звернення до підтримки. Сервери в одну приватну мережу об’єднує підтримка на ваш запит; про це можна написати вже в коментарі до заявки на сервер. Підтримка також повідомить MAC-адресу приватного інтерфейсу кожного сервера.
  • Запасний вхід. Заздалегідь попросіть у підтримки віддалену консоль: якщо помилка обірве SSH чи RDP, виправити її можна буде лише через консоль.
  • План адрес. Адреси обираєте самі з приватних діапазонів 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 — так, щоб підмережа не перетиналася з мережами офісу, VPN, контейнерів і віртуальних машин.

Усі значення в цій статті — приклад, підставляйте свої: підмережа 10.10.0.0/24, сервери Linux — 10.10.0.11 і 10.10.0.12, Windows Server — 10.10.0.21; для VLAN 100 — підмережа 10.10.100.0/24. Приватний інтерфейс у прикладах — eno2 у Linux і Ethernet 2 у Windows; у вас назва може бути іншою: вона залежить від ОС і моделі сервера.

Перш ніж змінювати мережу#

Увага. Працюйте тільки з приватним інтерфейсом. Не змінюйте публічний інтерфейс, його адресу і маршрут за замовчуванням: можна втратити доступ до сервера, і повертати його доведеться через віддалену консоль. На приватному інтерфейсі шлюз за замовчуванням не задають узагалі.

Знайдіть приватний інтерфейс у Linux:

ip -br link
ip -br addr
ip route show default

Інтерфейс у рядку default via … dev … — публічний. Приватний — інший фізичний інтерфейс без публічної адреси; його MAC-адреса збігається з тією, що повідомила підтримка.

Linux#

Крок 1. Тимчасова перевірка командами ip#

Ці команди нічого не записують на диск: після перезавантаження налаштування зникнуть. Виконайте їх на кожному сервері, підставивши його адресу:

sudo ip link set dev eno2 up
sudo ip addr add 10.10.0.11/24 dev eno2
ping -c 3 10.10.0.12

Перед постійним налаштуванням приберіть тимчасову адресу: sudo ip addr del 10.10.0.11/24 dev eno2.

Крок 2. Постійне налаштування в Ubuntu: netplan#

Підходить для Ubuntu Server 24.04 LTS і 26.04 LTS. Наявний файл із публічним інтерфейсом не редагуйте — створіть окремий /etc/netplan/60-private.yaml: netplan читає файли в алфавітному порядку й об’єднує їх.

network:
  version: 2
  ethernets:
    eno2:
      dhcp4: false
      optional: true
      addresses:
        - 10.10.0.11/24

Рядків routes і gateway4 тут не має бути. З optional: true система під час завантаження не чекатиме на цей інтерфейс. Обмежте права на файл і застосуйте зміни:

sudo chmod 600 /etc/netplan/60-private.yaml
sudo netplan try

netplan try застосовує конфігурацію і 120 секунд чекає на Enter. Перш ніж натиснути, перевірте з другого сеансу SSH, що сервер доступний. Без підтвердження попередні налаштування повернуться автоматично.

Крок 2. Постійне налаштування в Debian#

Мережею в Debian 13, залежно від образу, керує ifupdown (файл /etc/network/interfaces), netplan або systemd-networkd. Спершу з’ясуйте, що саме у вас:

ls /etc/netplan/
systemctl is-active networking systemd-networkd

Якщо в /etc/netplan/ є файли — дійте так само, як в Ubuntu. Якщо публічний інтерфейс описано в /etc/network/interfaces — у вас ifupdown. Якщо активний лише systemd-networkd — налаштовуйте його.

ifupdown. Створіть файл /etc/network/interfaces.d/private (в основному файлі має бути рядок source /etc/network/interfaces.d/*):

auto eno2
iface eno2 inet static
    address 10.10.0.11/24

Рядка gateway не додавайте. Застосувати: sudo ifup eno2. Скасувати: sudo ifdown eno2 і видалити файл.

systemd-networkd. Створіть файл /etc/systemd/network/20-private.network з таким вмістом — без рядка Gateway=:

[Match]
Name=eno2

[Link]
RequiredForOnline=no

[Network]
Address=10.10.0.11/24

Виконайте sudo networkctl reload. З RequiredForOnline=no завантаження не чекатиме на цей інтерфейс.

VLAN 802.1Q у Linux#

Тег VLAN ділить одну приватну мережу на кілька сегментів — наприклад, для бази даних і для резервних копій. Без тега приватна мережа працює одразу після об’єднання серверів, а номери VLAN 802.1Q для сегментів обираєте самі; номер має збігатися на всіх серверах сегмента.

Теги в Linux обробляє модуль ядра 8021q. Завантажте його й додайте до автозавантаження:

sudo modprobe 8021q
echo 8021q | sudo tee /etc/modules-load.d/8021q.conf

Для тимчасової перевірки створіть підінтерфейс із тегом 100 (батьківський інтерфейс eno2 має бути ввімкнений):

sudo ip link add link eno2 name vlan100 type vlan id 100
sudo ip link set dev vlan100 up
sudo ip addr add 10.10.100.11/24 dev vlan100

Перед постійним налаштуванням видаліть підінтерфейс: sudo ip link del vlan100.

netplan. Допишіть у кінець файла 60-private.yaml розділ vlans — на одному рівні з ethernets:

  vlans:
    vlan100:
      id: 100
      link: eno2
      optional: true
      addresses:
        - 10.10.100.11/24

Знову виконайте sudo netplan try. Якщо зміни скасовано, а vlan100 лишився, видаліть його: sudo ip link del vlan100.

ifupdown. Тег задає сама назва інтерфейсу у форматі «назва.номер». Допишіть у файл private після опису eno2 такі рядки і виконайте sudo ifup eno2.100:

auto eno2.100
iface eno2.100 inet static
    address 10.10.100.11/24

Windows Server#

Команди виконуйте в PowerShell від імені адміністратора (Windows Server 2022 і 2025). Знайдіть адаптери:

Get-NetAdapter | Format-Table Name, InterfaceDescription, MacAddress, LinkSpeed
Get-NetIPConfiguration

Адаптер, у якого заповнено IPv4DefaultGateway, — публічний, його не чіпайте. Приватний визначте за MAC-адресою, перейменуйте для зручності і задайте адресу без шлюзу (параметр -DefaultGateway не вказуйте):

Rename-NetAdapter -Name "Ethernet 2" -NewName "Private"
New-NetIPAddress -InterfaceAlias "Private" -IPAddress 10.10.0.21 -PrefixLength 24

Скасувати: Remove-NetIPAddress -InterfaceAlias "Private" -IPAddress 10.10.0.21.

Тег VLAN у Windows Server#

Спосіб 1 — властивість адаптера. Згідно з документацією Microsoft, задати VLAN дозволяють не всі адаптери — це залежить від драйвера. Адаптер на мить перезапуститься, і весь його трафік піде з тегом, тож адресу на ньому замініть адресою з підмережі цього VLAN:

Set-NetAdapter -Name "Private" -VlanID 100
Get-NetAdapter -Name "Private" | Format-List Name, VlanID

Якщо команда завершилася помилкою або VlanID не змінився, драйвер цього не підтримує. Повернути роботу без тега: Set-NetAdapter -Name "Private" -VlanID 0.

Спосіб 2 — віртуальний комутатор Hyper-V. Знадобиться, коли драйвер не вміє задавати тег або на одному адаптері потрібно кілька VLAN.

Увага. Перша команда встановлює роль Hyper-V і перезавантажує сервер; решту виконайте після перезавантаження. Комутатор прив’язуйте тільки до приватного адаптера: прив’язка до публічного може обірвати RDP. Після створення комутатора адреса на самому адаптері Private перестає діяти — адреси задають на віртуальних адаптерах vEthernet. Скасувати: Remove-VMSwitch -Name "PrivateSwitch".

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
New-VMSwitch -Name "PrivateSwitch" -NetAdapterName "Private" -AllowManagementOS $false
Add-VMNetworkAdapter -ManagementOS -Name "Private100" -SwitchName "PrivateSwitch"
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "Private100" -Access -VlanId 100
New-NetIPAddress -InterfaceAlias "vEthernet (Private100)" -IPAddress 10.10.100.21 -PrefixLength 24

Мережевий екран на приватному інтерфейсі#

Приватна мережа відокремлена від інтернету, але не від ваших власних серверів: якщо зламають один, через неї спробують дістатися до решти. Тому не вимикайте мережевий екран на приватному інтерфейсі: відкривайте лише потрібні порти і лише для приватної підмережі. Ізоляція — не шифрування: для чутливих даних залишайте TLS.

Linux, ufw, приклад для PostgreSQL:

sudo ufw allow in on eno2 from 10.10.0.0/24 to any port 5432 proto tcp

Правило діє, лише коли ufw увімкнено. Не вмикайте його, доки не дозволите SSH: порядок дій — у статті «Базовий захист Linux-сервера».

Windows Server, приклад для MS SQL Server і відповіді на ping:

New-NetFirewallRule -DisplayName "Private: SQL Server" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 10.10.0.0/24 -Action Allow
New-NetFirewallRule -DisplayName "Private: ping" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -RemoteAddress 10.10.0.0/24 -Action Allow

Друге правило потрібне, бо мережу без шлюзу Windows зараховує до загальнодоступного профілю, де брандмауер типово не пропускає ping. Сама служба має слухати приватну адресу: у PostgreSQL це параметр listen_addresses.

Як перевірити результат#

  1. Зв’язок. ping -c 4 10.10.0.12 з першого сервера і у зворотному напрямку — з другого.
  2. Сусід у мережі. ip neigh show dev eno2 має показати адресу сусіда з його MAC-адресою і станом REACHABLE або STALE. FAILED чи INCOMPLETE означає, що сервери не бачать один одного: їх ще не об’єднано, обрано не той інтерфейс або теги VLAN різні. У Windows: Get-NetNeighbor -InterfaceAlias "Private".

Швидкість: iperf3#

Установіть iperf3 на обох серверах Linux: sudo apt install iperf3. На час тесту відкрийте на приватному інтерфейсі порт 5201/tcp. Першу команду запустіть на сервері, що приймає, другу — на іншому:

iperf3 -s -1 -B 10.10.0.12
iperf3 -c 10.10.0.12 -t 10 -P 4

Результат обмежений повільнішим із двох приватних портів, а між країнами залежить ще й від часу відгуку. Після тесту закрийте порт.

Типові помилки#

  • Шлюз на приватному інтерфейсі. З’являється другий маршрут за замовчуванням, і сервер перестає відповідати на публічній адресі. Приберіть шлюз.
  • Підмережа перетинається з мережею офісу, VPN чи Docker (типово 172.17.0.0/16) — частина адрес стає недоступною.

Що далі#

Об’єднати сервери в приватну мережу можна через підтримку: телефон +38 044 206 08 08, пошта info@united.net.ua.