Вопрос или проблема
Как правильно настроить VLAN на интерфейсе в Linux?
Я хочу настроить несколько VLAN на интерфейсе виртуальной машины Linux.
VLAN уже настроен на гипервизоре, и порт помечен на коммутаторе.
Я установил пакет “vlan” на Linux Debian 11 и настроил файл /etc/network/interfaces
:
auto eth0.20
iface eth0.20 inet static
address 192.168.2.10/24
gateway 192.168.2.1
vlan-raw-device eth0
Однако после настройки не удалось выполнить пинг виртуальной машины от шлюза.
Настройка выглядит очень простой. Я что-то забыл?
Возможное решение, которое я подумал использовать XCP-NG:
-
Пометить (тегировать/транковать) каждый VLAN на порт коммутатора;
-
Передать VLAN на физическом интерфейсе гипервизора;
-
Настроить каждый VLAN как виртуальный интерфейс для виртуальной машины Linux на гипервизоре;
-
Настроить новый виртуальный интерфейс на виртуальной машине Linux, отредактировав файл /etc/network/interfaces. Пример с учетом нового интерфейса и сети:
auto eth1
iface eth1 inet static
address 192.168.3.10/24
gateway 192.168.3.1
Таким образом, каждый VLAN в Linux становится новым интерфейсом, и никакая конфигурация уровня 2 в операционной системе не требуется.
Ответ или решение
Для правильной конфигурации VLAN на интерфейсе в Linux, необходимо учитывать несколько ключевых моментов. Исходя из вашего описания, предположительно, вы уже произвели часть работы, однако могут быть некоторые нюансы, которые стоит учесть. Давайте рассмотрим шаги по настройке VLAN на вашем Linux VM с использованием Debian 11.
-
Проверка предварительной конфигурации:
Убедитесь, что VLAN уже настроен на гипервизоре и что на порту коммутатора отмечены соответствующие VLAN как тегированные (tagged). Также проверьте, что физический интерфейс гипервизора правильно настроен для передачи трафика VLAN. -
Установка пакета VLAN:
Убедитесь, что пакетvlan
установлен на вашем Debian 11. Это можно сделать с помощью команды:sudo apt update sudo apt install vlan
-
Настройка файла
/etc/network/interfaces
:
Ваше текущее содержимое выглядит корректно, но давайте убедимся, что все параметры указаны правильно. Попробуйте следующее:auto eth0.20 iface eth0.20 inet static address 192.168.2.10 netmask 255.255.255.0 gateway 192.168.2.1 vlan-raw-device eth0
Обратите внимание на то, что в примере указаны
address
иnetmask
, аgateway
является необязательным параметром для VLAN-интерфейса. Обязательно укажите только необходимые параметры. -
Перезагрузка сетевого интерфейса:
После изменения конфигурации необходимо перезагрузить сетевой интерфейс следующей командой:sudo ifdown eth0.20 && sudo ifup eth0.20
Или перезагрузите сервер, чтобы изменения вступили в силу.
-
Проверка настроек:
Используйте командуip addr
для проверки, появился ли интерфейсeth0.20
, а также убедитесь, что он имеет назначенный IP-адрес.ip addr show
Также выполните команду
ping
для тестирования соединения с шлюзом:ping -c 4 192.168.2.1
-
Дополнительные команды для отладки:
Если у вас все еще возникают проблемы с подключением, проверьте настройки маршрутизации с помощью:ip route
Также проверьте, активен ли модуль 8021q, который отвечает за VLAN:
lsmod | grep 8021q
Если он не активен, его можно загрузить командой:
sudo modprobe 8021q
- Настройка VLAN на гипервизоре и коммутаторе:
Если вы используете XCP-NG или другой гипервизор, убедитесь, что:- Порт, на котором подключен VM, находится в режиме VLAN trunk;
- Все необходимые VLAN настроены на гипервизоре и передаются на виртуальную машину;
- На коммутаторе настройки порта соответствуют требованиям (tagged/trunk) для всех VLAN.
Следуя этим инструкциям, вы сможете создать и настроить VLAN-интерфейсы на вашем Linux VM, обеспечивая правильное соединение с шлюзом и другими сетевыми устройствами. Если у вас остаются проблемы, возможно, стоит проверить настройки на уровне гипервизора и коммутатора.