Как настроить тегирование VLAN в Linux?

В этом подробном руководстве мы узнаем, что такое VLAN tagging, его преимущества и случаи использования, и как настроить VLAN tagging в операционной системе Linux.

Настройка VLAN-тегов в Linux включает в себя создание виртуальных локальных сетей, присвоение идентификаторов VLAN и настройку IP-адресов по мере необходимости. Но прежде давайте разберемся, что такое тегирование VLAN, каковы его преимущества и режимы.

Что такое тегирование VLAN?

Тегирование виртуальных локальных сетей (VLAN) – это сетевая технология, позволяющая логически разделить физическую сеть на несколько виртуальных сетей, или VLAN.

Тегирование VLAN добавляет специальный тег к кадрам Ethernet на канальном уровне (Layer 2), чтобы определить, к какой VLAN принадлежит тот или иной кадр. Такая маркировка позволяет разделить сетевой трафик и повысить безопасность эффективность и управляемость сети.

Если говорить простым языком, то представьте, что у вас есть большой дом с множеством комнат, и вы хотите разделить его на различные секции для разных целей.

Например, у вас есть гостиная, где все могут проводить время, кухня для приготовления пищи, спальня для сна и ванная комната для принятия ванны.

Подобным образом маркировка VLAN позволяет разделить большую компьютерную сеть на более мелкие, более управляемые секции. Это как создание виртуальных комнат в вашем доме.

Каждая VLAN похожа на отдельную комнату, и устройства в одной VLAN могут легко общаться друг с другом, но устройства в разных VLAN не могут общаться напрямую.

VLAN tagging – это мощная сетевая технология, позволяющая повысить безопасность, производительность и гибкость сети. Эта технология широко используется в различных сетях, от малых предприятий до крупных корпораций.

Преимущества тегирования VLAN

Зачем это нужно? Есть несколько причин:

  • Сегментация сети: VLAN используются для логического сегментирования физической сети на более мелкие, изолированные сети. Например, вы можете отделить трафик отдела кадров от трафика отдела продаж для повышения безопасности и управляемости.
  • Контроль трансляции: Разделение сети на VLAN позволяет ограничить широковещательный трафик в пределах каждой VLAN, что уменьшает общий размер широковещательного домена и перегрузку сети.
  • Качество обслуживания (QoS): VLAN можно использовать для приоритезации определенных типов трафика (например, голоса или видео), назначая для каждой VLAN различные политики QoS.
  • Guest Networks: В корпоративной среде можно создать отдельную VLAN для гостевых устройств, чтобы изолировать их от внутренней сети.
  • Изоляция: VLAN можно использовать для изоляции определенных устройств или сервисов, например IP-камер, IoT-устройств или сетевых серверов.

Где настраивать метки VLAN?

Вот несколько примеров использования VLAN в реальных сетях:

  • В школе или колледже VLAN может использоваться для разделения сети для студентов, преподавателей и администраторов. Это позволяет защитить данные учащихся и предотвратить несанкционированный доступ к административным системам.
  • В больнице VLAN могут использоваться для разделения сети для записей пациентов, медицинского оборудования и административного персонала. Это позволяет защитить конфиденциальность данных пациентов и исключить влияние сетевого трафика на критически важные медицинские устройства.
  • В корпоративном офисе виртуальные локальные сети могут использоваться для разделения сети для различных отделов, таких как отдел продаж, отдел маркетинга и финансовый отдел. Это позволяет повысить безопасность сети и предотвратить несанкционированный доступ к конфиденциальным данным.

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 позволяет настроить сеть в соответствии с вашими специфическими потребностями, повышая функциональность и безопасность.

Часто задаваемые вопросы

Что такое маркировка VLAN?

Маркировка VLAN – это сетевая технология, которая позволяет логически разделить физическую сеть на несколько виртуальных сетей, или VLAN. Она добавляет специальные метки к кадрам Ethernet, чтобы определить, к какой VLAN принадлежит конкретный кадр.

Каково назначение тегов VLAN?

Тегирование VLAN служит нескольким целям, включая сегментацию сети, изоляцию трафика, контроль широковещания, приоритезацию качества обслуживания (QoS) и повышение безопасности сети.

Как работает тегирование VLAN?

Тегирование VLAN добавляет 4-байтовую метку к кадрам Ethernet на канальном уровне (Layer 2) для указания идентификатора VLAN. Сетевые устройства используют этот тег для определения принадлежности кадра к VLAN.

Можно ли смешивать классы IP-адресов (например, класс A и класс C) в одной VLAN?

Да, можно назначать IP-адреса разных классов в одной VLAN. VLAN не зависят от классов IP-адресов, и можно использовать любой диапазон IP-адресов с соответствующей маской подсети.

Общаются ли устройства в разных VLAN друг с другом по умолчанию?

Нет, устройства в разных VLAN не общаются друг с другом по умолчанию. VLAN изолированы друг от друга, и для связи между ними требуется маршрутизатор или устройство 3-го уровня для маршрутизации трафика.

Как настроить маркировку VLAN в Linux?

Для настройки маркировки VLAN в Linux можно использовать такие инструменты, как команда ip, или конфигурационные файлы, например Netplan. Вы создадите подинтерфейсы VLAN на физическом интерфейсе, назначите идентификаторы VLAN и настроите IP-адреса, если это необходимо.

Можно ли настроить тегирование VLAN на управляемом коммутаторе?

Да, большинство управляемых коммутаторов поддерживают тегирование VLAN. Вы можете настраивать VLAN, назначать порты VLAN и устанавливать транкинг VLAN на управляемых коммутаторах для обеспечения взаимодействия VLAN.

В чем разница между тегами VLAN и несколькими IP-адресами на одном интерфейсе?

Теги VLAN создают отдельные виртуальные сети с различными идентификаторами VLAN, тогда как несколько IP-адресов на одном интерфейсе подразумевают назначение нескольких IP-адресов в пределах одной сети или подсети. Маркировка VLAN обеспечивает лучшую изоляцию трафика и безопасность.

Как проверить, загружен ли модуль VLAN в моей системе Linux?

Проверить, загружен ли модуль VLAN, можно с помощью команды lsmod | grep 8021q. Если в выводе появится «8021q», то модуль загружен; в противном случае, возможно, потребуется загрузить его вручную.

Как обеспечить автоматическую загрузку модуля VLAN во время загрузки?

Чтобы обеспечить автоматическую загрузку модуля VLAN при загрузке, добавьте его в соответствующий конфигурационный файл для вашего дистрибутива Linux. Например, в Ubuntu его можно добавить в /etc/modules-load.d/

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен ostechnix.com

Похожие статьи

Комментарии (0)