VLAN Tagging VS Присвоение нескольких IP-адресов одной сетевой карте
VLAN-тегирование – это не совсем то же самое, что присвоение нескольких IP-адресов одному сетевому интерфейсу.
VLAN-тегирование – это способ разделения одной сети на несколько виртуальных сетей, каждая из которых имеет свой собственный широковещательный домен. Для этого к каждому кадру Ethernet добавляется метка VLAN, которая идентифицирует VLAN, к которой принадлежит кадр. Тегирование VLAN является технологией второго уровня, то есть работает на том же уровне, что и протокол Ethernet.
Назначение нескольких IP-адресов одному сетевому интерфейсу, напротив, является технологией третьего уровня. Для этого сетевой интерфейс конфигурируется с несколькими IP-адресами, каждый из которых принадлежит к отдельной подсети. Это позволяет интерфейсу взаимодействовать с устройствами в нескольких сетях.
Эти две технологии часто используются вместе для создания безопасной и гибкой сетевой среды. Например, компания может использовать VLAN для разделения сети на различные отделы, а затем назначить несколько IP-адресов каждому сетевому интерфейсу, чтобы устройства могли взаимодействовать с несколькими отделами.
Вот таблица, в которой кратко описаны основные различия между тегами VLAN и назначением нескольких IP-адресов одному сетевому интерфейсу:

После выполнения этих шагов модуль VLAN должен быть загружен и доступен для настройки VLAN в вашей системе Linux. При необходимости можно приступить к созданию подинтерфейсов VLAN и настройке тегов VLAN.
Шаг 2 – Редактирование файла конфигурации Netplan
Файлы конфигурации Netplan обычно располагаются в каталоге /etc/netplan/
и имеют расширение .yaml
.
Возможно, у вас уже есть файл конфигурации. Если нет, то его можно создать. Используйте текстовый редактор, например nano
или vim
, для редактирования файла конфигурации:
sudo nano /etc/netplan/01-netcfg.yaml
Замените 01-netcfg.yaml
на свой файл конфигурации.
Шаг 3 – Определение конфигурации VLAN
В конфигурационном файле Netplan определите интерфейс VLAN, указав его имя, родительский интерфейс (физический интерфейс, с которым будет связана VLAN) и VLAN ID.
Приведем пример конфигурации YAML:
network: version: 2 renderer: networkd ethernets: ens18: dhcp4: no addresses: - 192.168.1.40/24 routes: - to: default via: 192.168.1.101 nameservers: addresses: [8.8.8.8, 8.8.4.4] vlans: vlan10: id: 10 link: ens18 addresses: [192.168.10.2/24]
В приведенном конфигурационном файле замените сетевые параметры, соответствующие вашей собственной конфигурации.
ens18
: Замените на имя физического сетевого интерфейса.vlan10
: Замените имя VLAN.id: 10
: Замените на желаемый идентификатор VLAN.link: ens18
: Укажите физический интерфейс, с которым будет ассоциирована VLAN.addresses
: Задайте IP-адрес и маску подсети для VLAN.
Вы также можете определить несколько VLAN, как показано в следующей конфигурации. Только убедитесь, что вы использовали уникальное имя и IP-адрес для каждой VLAN.

Важно:
Правильный отступ строк в конфигурационных файлах Netplan YAML очень важен для удобства чтения и корректности. В YAML используются пробелы для представления структуры данных, поэтому последовательный и четкий отступ крайне важен.
- Используйте пробелы (не табуляции) для отступа.
- Сохраняйте последовательный интервал во всей конфигурации.
- Оставляйте пробел после двоеточия, чтобы отделить ключи от значений или блоков.
- Правильный отступ улучшает читаемость, минимизирует ошибки и облегчает управление файлами конфигурации сети.
Шаг 4 – Применение конфигурации
Сохраните изменения в конфигурационном файле Netplan и выйдите из текстового редактора. Затем примените конфигурацию с помощью команды netplan
:
sudo netplan apply
Эта команда применит новую конфигурацию сети, включая настройку VLAN.
Шаг 5 – Проверка конфигурации
Убедиться в том, что интерфейс VLAN создан и работает правильно, можно с помощью команды ip
:
ip addr show vlan10 ip link show vlan10
Замените vlan10
на имя интерфейса VLAN. Эти команды должны отобразить информацию об интерфейсе VLAN и его IP-конфигурации.

Вот и все! Вы настроили тегирование VLAN с помощью Netplan. Обязательно адаптируйте конфигурацию к конкретной сетевой настройке, включая идентификатор VLAN, IP-адрес и имя физического интерфейса, если это необходимо.
Шаг 6 – Удаление VLAN
Чтобы удалить интерфейс VLAN, просто удалите соответствующий раздел для vlan в конфигурационном файле Netplan.
Перед внесением изменений рекомендуется сделать резервную копию конфигурационного файла Netplan. Таким образом, если что-то пойдет не так, вы сможете легко вернуться к исходной конфигурации.
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.backup
Откройте файл конфигурации Netplan в текстовом редакторе:
sudo nano /etc/netplan/01-netcfg.yaml
Найдите раздел для VLAN, который вы хотите удалить. Это будет подраздел под vlans:
и будет выглядеть примерно так:
vlans: vlan10: id: 10 link: eth0 addresses: [192.168.10.2/24]
Удалите всю секцию для VLAN. Сохраните и закройте файл.
Примените изменения, выполнив:
sudo netplan apply
Убедитесь, что VLAN успешно удалена, проверив сетевые интерфейсы:
ip a
Интерфейс VLAN (например, vlan10) больше не должен быть в списке.
2. Настройка тегов VLAN с помощью команды nmcli
Чтобы настроить теги VLAN с помощью nmcli
(командно-строчного интерфейса NetworkManager) в системе Linux, выполните следующие шаги:
Шаг 1 – Проверка загрузки модуля VLAN
Для проверки загрузки модуля VLAN (8021q
) в Linux можно воспользоваться командой lsmod
, которая выводит список загруженных модулей ядра. Вот как проверить, загружен ли модуль VLAN:
Откройте терминал и выполните следующую команду:
lsmod | grep 8021q
Если модуль VLAN загружен, вы увидите вывод, включающий «8021q». Если ничего не выводится, значит, модуль не загружен.
Если вы обнаружили, что модуль VLAN не загружен, вы можете загрузить его вручную с помощью команды modprobe
:
sudo modprobe 8021q
После выполнения этой команды можно еще раз проверить его состояние с помощью команды lsmod | grep 8021q
. Если модуль загружен, то в выводе появится его список.
Чтобы модуль VLAN (8021q
) постоянно загружался при загрузке системы в Linux-системе, выполните следующие действия:
Определите, какой конфигурационный файл используется для указания модулей для автоматической загрузки при загрузке системы. Расположение этого файла зависит от дистрибутива Linux.
Для Red Hat/CentOS:
Обычно файл находится в каталоге /etc/modules-load.d/modules.conf
.
Для Ubuntu/Debian:
Создайте собственный файл .conf
в каталоге /etc/modules-load.d/
.
Откройте файл конфигурации с помощью текстового редактора с правами администратора (например, sudo nano
или sudo vi
).
В файле конфигурации добавьте строку для указания модуля VLAN ( 8021q
), который должен загружаться при загрузке. Например:
8021q
Сохраните файл после добавления этой записи.
Применить конфигурацию:
После редактирования конфигурационного файла может потребоваться применить внесенные изменения. В некоторых системах это происходит автоматически во время загрузки. Однако можно применить изменения вручную с помощью команды systemctl
:
Для Red Hat/CentOS:
sudo systemctl restart systemd-modules-load
Для Ubuntu/Debian:
sudo systemctl restart systemd-modules-load.service
Проверка загрузки модуля:
Чтобы убедиться, что модуль VLAN загружен при загрузке, можно проверить его состояние с помощью команды lsmod
или проверить системные журналы на наличие соответствующих сообщений. Если модуль отображается в списке, это означает, что он успешно загрузился в процессе загрузки.
Выполнив эти шаги и настроив модуль VLAN на постоянную загрузку, вы обеспечите автоматическую загрузку модуля при каждой загрузке системы, и вам не придется загружать его вручную.
Шаг 2 – Проверка службы NetworkManager
Убедитесь, что NetworkManager установлен и работает в вашей системе. Проверить состояние NetworkManager можно с помощью следующей команды:
systemctl status NetworkManager
Если он не установлен или не работает, его можно установить и запустить с помощью менеджера пакетов вашего дистрибутива (например, apt
в Debian/Ubuntu или yum
в CentOS/RHEL).
Шаг 3 – Определение родительского интерфейса
Определите физический сетевой интерфейс, который будет использоваться в качестве базового для вашей VLAN. Список всех доступных сетевых интерфейсов можно получить с помощью следующей команды:
nmcli device status
Пример вывода:
DEVICE TYPE STATE CONNECTION ens18 ethernet connected Wired connection 1 lo loopback unmanaged --
Найдите нужный интерфейс, например ens18
.
Шаг 4 – Создание подключения VLAN
Следующим шагом будет создание интерфейса VLAN. Для данного примера предположим, что вы хотите создать VLAN с ID 10 на eth0
.
sudo nmcli con add type vlan con-name vlan10 ifname vlan10 dev ens18 id 10
con-name vlan10
– имя, которое вы даете этому соединению.ifname vlan10
– имя интерфейса VLAN.dev ens18
– родительский интерфейс.id 10
– ID VLAN.
Шаг 5 – Назначение IP-конфигурации интерфейсу VLAN
Теперь назначьте IP-адрес, шлюз и DNS интерфейсу VLAN.
Например:
sudo nmcli connection modify vlan10 ipv4.addresses 192.168.10.2/24 sudo nmcli connection modify vlan10 ipv4.gateway 192.168.10.1 sudo nmcli connection modify vlan10 ipv4.dns 8.8.8.8 sudo nmcli connection modify vlan10 ipv4.method manual
В приведенных выше командах замените сетевые настройки на свои.
- Замените
192.168.10.2/24
на желаемый IP-адрес и подсеть. - Замените
192.168.10.1
на IP-адрес шлюза. 8.8.8.8
– пример DNS-сервера (публичный DNS Google).
Шаг 6 – Активация соединения
Активируйте VLAN-соединение с помощью следующей команды:
sudo nmcli connection up vlan10
Замените VLAN10
на имя вашего VLAN-соединения.
Шаг 7 – Проверка конфигурации
Для проверки конфигурации можно использовать команду nmcli
:
nmcli connection show vlan10
Эта команда отобразит подробную информацию о VLAN-соединении, включая его состояние и настроенные свойства.

Шаг 8 – Изменение/удаление VLAN
Вы можете изменить настройки с помощью команды nmcli con modify
. Для удаления VLAN. например, vlan10, команда будет выглядеть так:
sudo nmcli con delete vlan10
Вот и все! Вы настроили маркировку VLAN с помощью команды nmcli
в своей системе Linux. Обязательно адаптируйте конфигурацию к конкретной настройке сети и требованиям, включая IP-адреса, шлюз и настройки DNS.
3. Настройка тегирования VLAN с помощью команды ip в Linux
Шаг 1. Проверьте, загружен ли модуль VLAN
Чтобы убедиться, что модуль VLAN (802.1Q) загружен в системе Linux, выполните следующие действия:
Для проверки того, загружен ли уже модуль VLAN, можно воспользоваться командой lsmod
, которая выводит список загруженных модулей ядра. Откройте терминал и выполните:
lsmod | grep 8021q
Пример вывода:
8021q 45056 0 garp 20480 1 8021q mrp 20480 1 8021q
Если в выводе присутствует «8021q», значит, модуль VLAN уже загружен.
Если команда lsmod
не отображает модуль 802.1Q, его можно загрузить вручную с помощью команды modprobe
. Откройте терминал и выполните:
sudo modprobe 8021q
Эта команда загрузит модуль VLAN в ядро. Если вы не увидите никаких сообщений об ошибках, значит, модуль успешно загружен.
Чтобы модуль VLAN загружался автоматически при загрузке, вы можете добавить его в файл /etc/modules
или создать конфигурационный файл в каталоге /etc/modules-load.d/
. Например, чтобы добавить его в /etc/modules
, выполните:
echo '8021q' | sudo tee -a /etc/modules
Это добавит «8021q
« в список модулей, которые автоматически загружаются при старте системы.
Шаг 2 – Проверка имен сетевых интерфейсов
Перед настройкой тегов VLAN необходимо узнать имена сетевых интерфейсов.
Для получения списка доступных сетевых интерфейсов можно воспользоваться командами ip link show
или ifconfig
. Обычно эти интерфейсы имеют имена типа enp0sX
или, ensX
или, ethX
.
ip link show
Пример вывода:
1: lo:<LOOPBACK,UP,LOWER_UP>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: ens18:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff altname enp0s18
Как видно из приведенного выше вывода, имеется один сетевой интерфейс с именем ens18
.
Шаг 3 – Создание подинтерфейсов VLAN
Для создания подинтерфейсов VLAN для физического сетевого интерфейса используйте команду ip
. Замените имя физического интерфейса (например, ens18
) и желаемый VLAN ID.
sudo ip link add link ens18 name vlan10 type vlan id 10 sudo ip link add link ens18 name vlan20 type vlan id 20
Шаг 4 – Настройка IP-адресов
Назначьте IP-адреса субинтерфейсам VLAN.
sudo ip addr add 192.168.10.2/24 dev vlan10 sudo ip addr add 192.168.20.2/24 dev vlan20
Шаг 5 – Включить интерфейсы VLAN
sudo ip link set dev vlan10 up sudo ip link set dev vlan20 up

Таким образом, вы можете настроить столько VLAN, сколько необходимо для вашей установки.
Шаг 6 – Проверка IP-адресов VLAN
Используйте команду ip
для проверки правильности настройки IP-адресов для VLAN.
ip a 1: lo:<LOOPBACK,UP,LOWER_UP>mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens18:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff altname enp0s18 inet 192.168.1.40/24 brd 192.168.1.255 scope global noprefixroute ens18 valid_lft forever preferred_lft forever inet6 fe80::bfcf:b9d3:60de:af1b/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: vlan10@ens18:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff inet 192.168.10.2/24 scope global ens18.10 valid_lft forever preferred_lft forever inet6 fe80::6c26:bff:fe8e:338c/64 scope link valid_lft forever preferred_lft forever 4: vlan20@ens18:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff inet 192.168.20.2/24 scope global ens18.20 valid_lft forever preferred_lft forever inet6 fe80::6c26:bff:fe8e:338c/64 scope link valid_lft forever preferred_lft forever
Как видно из приведенного выше результата, я создал две VLAN: vlan10
и vlan20
с IP-адресами 192.168.10.2/24
и 192.168.20.2/24
соответственно.
Также можно использовать команду ip addr show
для просмотра IP-адреса только определенной VLAN. Например, чтобы показать IP-адрес vlan10
, выполните команду:
ip addr show vlan10 3: vlan10@ens18:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff inet 192.168.10.2/24 brd 192.168.10.255 scope global noprefixroute ens18.10 valid_lft forever preferred_lft forever inet6 fe80::6c26:bff:fe8e:338c/64 scope link valid_lft forever preferred_lft forever

Заключение
В данном руководстве мы рассмотрели три способа настройки тегов VLAN в операционных системах Linux.
В сетевых технологиях Linux теги VLAN – это полезная техника, которая позволяет создавать изолированные виртуальные сети в рамках одной физической сети. Такое разделение повышает безопасность, упрощает управление сетью и увеличивает общую эффективность сети.
Независимо от того, управляете ли вы домашней сетью или сложной корпоративной средой, понимание и внедрение VLAN-тегов в Linux позволяет настроить сеть в соответствии с вашими специфическими потребностями, повышая функциональность и безопасность.
Комментариев нет:
Отправить комментарий