Categories: CentOSlinux

Настройка VLAN интерфейса в Linux CentOS/Fedora/RHEL

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

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

  • Использование subinterface (например eth12.7);
  • Использование отдельного файла vlanXX (vlan7).
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_x000D_garp 14384 1 8021q_x000D_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_x000D_TYPE=Ethernet_x000D_VLAN=yes_x000D_ DEVICE=eth0.7_x000D_BOOTPROTO=static_x000D_IPADDR=10.16.20.10_x000D_NETMASK=255.255.255.0_x000D_

Данный файл конфигурации связывает виртуальный интерфейс 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_x000D_TYPE=Ethernet_x000D_VLAN=yes_x000D_VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD_x000D_DEVICE=vlan8_x000D_PHYSDEV=eth0.8_x000D_VLAN_ID=8_x000D_BOOTPROTO=static_x000D_IPADDR=10.16.20.10_x000D_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: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000_x000D_link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00_x000D_2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000_x000D_link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff_x000D_5: eth0.7@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000_x000D_link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff_x000D_6: vlan8@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000_x000D_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_x000D_ens3 8bd5cfbc-5ffc-4554-8ae1-9e02e4b57ceb ethernet ens3_x000D_virbr0 e64e63a5-76ae-4661-91ae-009f566c5e66 bridge virbr0_x000D_ens3.7 e5e91557-49a8-4389-bdfc-c9bfc099714b vlan VLAN7_x000D_

После настройки, выполните перезагрузку 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 на сетевом оборудовании.

admin

Share
Published by
admin

Recent Posts

После включения диагностического запуска не удается войти в Windows — как исправить?

Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…

2 недели ago

WinScript — очистка и настройка Windows 11 и 10

На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…

2 недели ago

Предварительный просмотр накопительного обновления не устанавливается — решение

При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…

2 недели ago

FixExec — восстановление ассоциаций .exe, .bat и .com файлов

Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…

2 недели ago

Ошибка 0x800705b4 при обновлении Windows 11 и 10 — как исправить?

При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…

2 недели ago

Обслуживание вашей версии Windows 11 окончено — что делать?

Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…

2 недели ago