Налаштування VLAN інтефейс в CentOS / Fedora / RHEL

У цій статті ми покажемо, як налаштувати тегованих інтерфейс VLAN (Віртуальної локальної мережі) вбудованими програмними засобами Linux в операційних системах CentOS / Fedora / RedHat. Рассмот настройку через subinterface, окремий файл vlanX, а також за допомогою инстументов NetworkManager і vconfig.

В операційних системах CentOS / Fedora / RedHat, є два варіанти настройки VLAN:

  • Використання subinterface (Наприклад eth12.7);
  • Використання окремого файлу vlanXX(Vlan7).

зміст:

  • Створюємо VLAN через subinterface
  • Налаштування VLAN через окремий файл vlanXX
  • Використовуємо NetworkManager для настройки VLAN інтерфейсу
  • Налаштування тимчасового VLAN за допомогою утиліти vconfig

VLAN (Virtual Local Area Network) дозволяє розділити мережу на канальному рівні на кілька ізольованих широкомовних доменів. За допомогою VLAN ви можете налаштувати кілька мереж на одному фізичному порту сервера., Маршрутизатор, комутатори і сервера при використанні 802.1Q VLAN можуть привласнювати мережевим пакетам спеціальний тег (тегованих трафік) з номером VLAN (VLAN ID: від 0 до 4095).

Переваги VLAN:

  • Сегментування мережі (поділ пристроїв на ізольовані групи);
  • Зменшення кількості мережевого обладнання;
  • Зниження навантаження на мережу для зменшення широкомовного трафіку;
  • Поліпшення безпеки і керованості мережі.

Створюємо VLAN через subinterface

Для настройки тегованих інтерфейсу, на сервері повинен бути завантажений модуль ядра Linux - 8021q. Для завантаження модуля, виконайте:

# Modprobe 8021q

Якщо модуль вже завантажив, з'явиться помилка: modprobe: ERROR: could not insert '8021q': Module already in kernel.

Перевіримо, завантажився чи модуль:

# Lsmod | grep 8021q

8021q 33080 0 garp 14384 1 8021q mrp 18542 1 8021q

Все ок, модуль 8021q є.

Так само потрібно додати даний модуль в автозавантаження при рестарт системи:

# Echo 8021q >> /etc/modules-load.d/8021q.conf

створимо VLAN c ID 7 для мережевого інтерфейсу eth0. Додаємо конфігураційний файл ifcfg-eth0.7 (7 після точки це призначається номер VLAN). У цьому файлі міститься опис підінтерфейсів VLAN.

# Nano /etc/sysconfig/network-scripts/ifcfg-eth0.7

І вписуємо наступне вміст:

ONBOOT = yes TYPE = Ethernet VLAN = yes DEVICE = eth0.7 BOOTPROTO = static IPADDR = 10.16.20.10 NETMASK = 255.255.255.0 

Даний файл конфігурації пов'язує віртуальний інтерфейс eth0.7 з фізичним інтерфейсом eth0. Після створення файлу конфігурації, потрібно перезапустити сервіс network:

# Systemctl restart network

Перевіримо мережеві настройки:

# Ip a

Як бачимо, сабінтерфейс з потрібним нам VLAN7 доданий.

Поточні прив'язки інтерфейсів і VLAN можна вивести:

# Cat / proc / net / vlan / config

Статистику інтерфейсу можна отримати так (за допомогою лічильників пакетів можна переконатися, що VLAN інтерфейс отримує маркований трафік):

# Cat /proc/net/vlan/eth0.7

Щоб виконати ping з певного інтерфейсу VLAN, використовуйте формат команди:

# Ping -I eth0.7 192.168.1.22

Налаштування VLAN через окремий файл vlanXX

Тепер спробуємо створити VLAN з ID 8 через окремий файл конфігурації:

# Nano / etc / sysconfig / network-scripts / ifcfg-vlan8

Додамо в нього наступні рядки:

ONBOOT = yes TYPE = Ethernet VLAN = yes VLAN_NAME_TYPE = VLAN_PLUS_VID_NO_PAD DEVICE = vlan8 PHYSDEV = eth0.8 VLAN_ID = 8 BOOTPROTO = static IPADDR = 10.16.20.10 NETMASK = 255.255.255.0

Зверніть увагу, що файл конфігурації трохи відрізняється від попереднього. У даній настройці, потрібно вказувати рядок "PHYSDEV", яка направляє конфігураційний файл на фізичний мережевий інтерфейс.

Після всіх налаштувань, так само потрібне перезавантаження сервісу network:

# Systemctl restart network

Якщо при перезапуску служби Сетте ви отримуєте помилку No suitable device found for this connection, перевірте що в файлі конфігурації ifcfg-vlan8 вказано значення для опції VLAN_ID.

Зробимо перевірку:

ip l ls

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link / ether 52: 54: 00: 1d: 4b: 67 brd ff: ff: ff: ff: ff: ff 5: eth0.7@eth0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link / ether 52: 54: 00: 1d: 4b: 67 brd ff: ff: ff: ff: ff: ff 6: vlan8 @ eth0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link / ether 52: 54: 00: 1d: 4b: 67 brd ff: ff: ff: ff: ff: ff

Потрібний мережевий інтерфейс з VLAN8 так само доступний.

Використовуємо NetworkManager для настройки VLAN інтерфейсу

Починаючи з 8 версії CentOS / RedHat за замовчуванням мережею на сервері управляє NetworkManager. Раніше це інструмент так само був доступний, але більшість аміністраторов використовували звичний network.

Розглянемо варіант настройки VLAN через NM. Створимо віртуальний інтерфейс ens3.7 для VLAN 7 на фізичному інтерфейсі ens3 і задамо IP:

# Nmcli con add type vlan con-name ens3.7 ifname VLAN7 id 7 dev ens3 ip4 15.12.10.11/24 gw4 15.12.10.254

Щоб перевірити мережеві інтерфейси на сервері, використовуйте команду:

# Nmcli con show

NAME UUID TYPE DEVICE ens3 8bd5cfbc-5ffc-4554-8ae1-9e02e4b57ceb ethernet ens3 virbr0 e64e63a5-76ae-4661-91ae-009f566c5e66 bridge virbr0 ens3.7 e5e91557-49a8-4389-bdfc-c9bfc099714b vlan VLAN7 

Після настройки, виконайте перезавантаження NetworkManager:

# Systemctl restart NetworkManager

Після перезапуску різноманітних служб NM, інтерфейс не пропав.

Вивести поточні настройки створеного VLAN інтерфейсу можна так:

# Nmcli connection show ens3.7

Налаштування тимчасового VLAN за допомогою утиліти vconfig

Для тестових налаштувань краще використовувати утиліту vconfig. Її особливість - після перезавантаження сервера всі налаштування мережі повертаються до вихідного стану. Vconfig дуже корисна утиліта на етапах тестування або навчання, так як якщо ви втратите доступ до сервера через неправильні параметри мережі, можна повернутися до початкової конфігурації простий перезавантаженням. Дана утиліта доступна в репозиторії EPEL, встановимо її:

# Yum install epel-release-y && yum install vconfig

Створимо інтерфейс з VLAN9:

# Vconfig add eth0 9

Added VLAN with VID == 9 to IF -: eth0:-

Після цього призначимо створеному мережному інтерфейсу IP-адреса:

# Ifconfig eth0.9 10.18.0.15 netmask 255.255.255.0 up

Тимчасовий інтерфейс c VLAN був створений.

P.S. На момент написання статті, утиліта vconfig була недоступна для дистрибутивів CentOS 8 і RedHat 8.

Не забувайте, що крім настройки VLAN на сервері для забезпечення мережевої пов'язаності, вам потрібно налаштувати відповідні VLAN на мережевому обладнанні.