Настройка VLAN на Linux и Windows

Настройка VLAN на Linux и Windows

Пошаговое руководство для администратора

В локальных сетях часто требуется разделить трафик разных отделов, изолировать гостевой доступ или выделить служебную подсеть для IP-телефонии и видеонаблюдения, не прокладывая дополнительные кабели. Технология VLAN (IEEE 802.1Q) решает эту задачу, позволяя одному физическому интерфейсу передавать кадры нескольких виртуальных сетей. Однако при практической реализации администраторы сталкиваются с тем, что настройки на коммутаторе, Linux и Windows различаются, а неверное конфигурирование может оставить сервер или рабочую станцию полностью изолированной. Настройка VLAN требует понимания, как создавать тегированные интерфейсы на обеих платформах, как назначать им IP-адреса и как проверять прохождение трафика.

Решение

Мы рассмотрим создание VLAN-интерфейсов на Linux с помощью утилиты ip link(команда ip link add link … type vlan) и на Windows через PowerShell с использованием модуля NetAdapter или Hyper-V Virtual Switch. На коммутаторе предполагаем, что порт переведён в режим trunk с разрешёнными нужными VLAN. Для Linux-сервера подойдёт любой дистрибутив с ядром 2.6 и выше (поддержка 802.1Q встроена). Для Windows потребуется сетевая карта с поддержкой VLAN (практически все современные Intel, Realtek, Broadcom) и установленный модуль Hyper-V или использование PowerShell командлетов. Корректная настройка VLAN на обеих платформах позволяет одному физическому порту обслуживать несколько изолированных подсетей, что особенно актуально для серверов виртуализации и шлюзов. Официальные источники: документация ядра Linux VLAN 802.1Q implementation, документация Microsoft Configure VLAN in Windows. Поскольку Windows поддерживает VLAN через несколько механизмов, разберём оба подхода.

Пошаговая инструкция

Шаг 1. Настройка VLAN на Linux

На целевом сервере с Linux выполните следующие действия.

  1. Убедитесь, что модуль 8021q загружен:

bash

sudo modprobe 8021q
echo "8021q" | sudo tee -a /etc/modules-load.d/vlan.conf
  1. Создайте VLAN-интерфейс с идентификатором 10 на физическом интерфейсе eth0 (имя адаптера уточните через ip link):

bash

sudo ip link add link eth0 name eth0.10 type vlan id 10
  1. Активируйте новый интерфейс и назначьте IP-адрес:

bash

sudo ip link set eth0.10 up
sudo ip addr add 192.168.10.10/24 dev eth0.10
  1. Чтобы интерфейс создавался автоматически при загрузке, опишите его в сетевых настройках. Для дистрибутивов на базе Debian/Ubuntu с systemd-networkd создайте файл /etc/systemd/network/eth0.10.network:
[Match]
Name=eth0.10

[Network]
Address=192.168.10.10/24

И соответствующий файл для создания устройства /etc/systemd/network/eth0.10.netdev:

[NetDev]
Name=eth0.10
Kind=vlan

[VLAN]
Id=10
  1. При использовании NetworkManager создайте соединение:

bash

nmcli con add type vlan con-name eth0.10 dev eth0 id 10 ip4 192.168.10.10/24
  1. Проверьте создание VLAN и маршрутизацию:

bash

ip -d link show eth0.10
ip route show dev eth0.10
ping 192.168.10.1   # шлюз в данной VLAN

Шаг 2. Настройка VLAN на Windows через PowerShell (NetAdapter)

В Windows Server 2016+ и Windows 10/11 с установленными драйверами сетевой карты, поддерживающими VLAN, можно использовать PowerShell.

  1. Узнайте имя сетевого адаптера:

powershell

Get-NetAdapter

Пример вывода: Ethernet0.

  1. Создайте виртуальный VLAN-адаптер (потребуются права администратора). Для универсального варианта с модулем NetAdapter (поддерживается многими производителями):

powershell

Add-IntelNetVLAN -ParentName "Ethernet0" -VLANID 10

Альтернативно можно использовать встроенный командлет Hyper-V:

powershell

New-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "Ethernet0" -AccessVlan 10
  1. Назначьте IP-адрес новому виртуальному интерфейсу:

powershell

New-NetIPAddress -InterfaceAlias "Ethernet0 VLAN 10" -IPAddress 192.168.10.10 -PrefixLength 24
  1. Проверьте настройки:

powershell

Get-NetIPConfiguration -Detailed
  1. Чтобы сделать настройку постоянной, можно записать команды в скрипт, запускаемый при старте, либо использовать групповые политики для распространения конфигурации.

Если родной драйвер не поддерживает PowerShell-команды, воспользуйтесь следующим способом.

Шаг 3. Настройка VLAN через Hyper-V Virtual Switch (альтернатива для Windows)

Если роль Hyper-V установлена, можно создать виртуальный коммутатор с VLAN-тегированием.

  1. Создайте внешний виртуальный коммутатор на основе физического адаптера:

powershell

New-VMSwitch -Name "TrunkSwitch" -NetAdapterName "Ethernet0" -AllowManagementOS $true
  1. Задайте VLAN ID для адаптера управления (управляющая ОС будет видеть трафик этого VLAN):

powershell

Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "Ethernet0" -Access -VlanId 10
  1. Назначьте IP-адрес на интерфейс виртуального коммутатора (он появится в списке сетевых подключений как vEthernet (TrunkSwitch)):

powershell

New-NetIPAddress -InterfaceAlias "vEthernet (TrunkSwitch)" -IPAddress 192.168.10.10 -PrefixLength 24
  1. Проверьте связь:

powershell

Test-Connection 192.168.10.1

Этот метод удобен на серверах Hyper-V, где управляющая ОС должна быть доступна только в определённом VLAN, а виртуальные машины могут использовать другие VLAN через тот же физический порт.

Документация по Hyper-V VLAN: Configure VLAN in Hyper-V.

Устранение распространённых проблем

СимптомВероятная причинаРешение
После создания VLAN-интерфейса нет связи со шлюзомКоммутаторный порт не настроен как trunk или не разрешён нужный VLANПроверьте конфигурацию коммутатора (show interfaces trunk). Убедитесь, что VLAN разрешён на порту (switchport trunk allowed vlan add 10).
В Linux команда ip link add ... type vlan выдаёт ошибку «Operation not supported»Модуль 8021q не загруженЗагрузите модуль: sudo modprobe 8021q.
В Windows после создания VLAN адаптер не получает IPСлужба DHCP не работает в данном VLAN или адрес задан неверноПроверьте настройки DHCP-сервера в VLAN 10. Назначьте статический IP вручную.
Драйвер сетевой карты в Windows не поддерживает VLAN (отсутствует вкладка VLAN ID в свойствах)Старый или универсальный драйвер без расширенной поддержкиОбновите драйвер с сайта производителя (Intel, Realtek). Для Intel ищите Intel PROSet.
В Windows после перезагрузки пропадает созданный VLAN-интерфейсНастройка не сохранена в реестре или скриптеСоздайте запланированную задачу, запускающую PowerShell-скрипт при загрузке, либо используйте постоянный виртуальный коммутатор Hyper-V.
В Linux интерфейс eth0.10 не поднимается после перезагрузкиНе создан конфигурационный файл для systemd-networkd или NetworkManagerСоздайте файлы .netdev и .network для systemd-networkd или настройте соединение через nmcli (шаг 1).

Итог

Настройка VLAN  базовая операция, которую должен освоить каждый системный администратор, работающий с коммутаторами. Linux предлагает простой и универсальный способ через ip link, а Windows требует более тщательного подхода, но с помощью PowerShell или Hyper-V также решается стандартными средствами. Главное не забывать о синхронизации с конфигурацией коммутатора (trunk, native VLAN) и проверять, что сетевая карта и её драйвер действительно поддерживают тегирование 802.1Q. При корректной настройке сервер может одновременно обслуживать несколько изолированных сетей через один физический порт, что упрощает кабельное хозяйство и повышает безопасность.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Популярные
Новые Старые

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Menu