- Настройка VLAN интерфейсов в Linux
- Требования к сетевому оборудованию
- Возможные проблемы
- Подготовка для настройки VLAN интерфейсов
- Настройка VLAN в CentOS/RHEL/Fedora Linux
- Конфигурация VLAN в Debian и Ubuntu
- Использование команды vconfig
- Создание устройства VLAN командой ip
- Заключение
- Настройка vlan linux ubuntu
- Включение поддержки vlan в Linux Mint, Debian, Ubuntu
- Добавление vlan в Linux с помощью утилиты vconfig
- Добавление vlan в Linux Mint, Debian, Ubuntu через файл interfaces
- VLAN в Linux
- Материал из Xgu.ru
- [править] Настройка VLAN в Linux
- [править] Настройка VLAN с помощью средств IPRoute2
- [править] Аппаратная поддержка 802.1q
- [править] Настройка VLAN при загрузке в Debian GNU/Linux
- [править] Настройка VLAN при загрузке в CentOS
- [править] Настройка VLAN при загрузке в Gentoo
- [править] QinQ-инкапсуляция в Linux
- Настройка VLAN в Ubuntu
- Настройка VLAN в Linux
Настройка VLAN интерфейсов в Linux
VLAN – это аббревиатура, означающая Virtual Local Area Network (виртаульная локальная сеть). На одном физическом порту может совместно существовать несколько VLAN-сетей, которые настраиваются программными средствами Linux, а не конфигурацией физических интерфейсов (но настройка самих интерфейсов тоже требуется). С помощью VLAN можно разделить сетевые ресурсы для использования различных сервисов.
Преимущества VLAN следующие:
- Производительность
- Простота управления
- Безопасность
- Магистральные cоединения (trunk)
- Возможность разделения внутри локальной сети из соображений безопасности
- Отсутствие необходимости настройки аппаратных средств при физическом переносе сервера в другое место.
Требования к сетевому оборудованию
Чтобы использовать VLAN, вам потребуется:
- Коммутатор с поддержкой стандарта IEEE 802.1q в сети Ethernet.
- Сетевая карта, которая работает с Linux и поддерживает стандарт 802.1q .
Возможные проблемы
Наиболее распространенные при настройке VLAN в Linux проблемы следующие:
- Не все сетевые драйверы поддерживают VLAN. Может потребоваться обновление драйвера.
- Возможны проблемы с MTU. Работа VLAN основана на присвоении каждому кадру тега длиной 4 байта, то есть заголовок фактически расширяется с 14 до 18 байт. Тег VLAN содержит идентификатор (VLAN ID) и приоритет.
- Лучше не использовать VLAN ID, равный 1, так как он может быть зарезервирован для административных целей.
Подготовка для настройки VLAN интерфейсов
Сначала убедитесь, что драйвер (модуль) ядра Linux под названием 8021 загружен:
Если он не загружен, загрузите его командой modprobe:
Настройка VLAN в CentOS/RHEL/Fedora Linux
Допустим, нам нужно создать VLAN интерфейс с тегом 100 который будет работать на физическом интерфейсе eth0. Для этого создадим файл /etc/sysconfig/network-scripts/ifcfg-eth0.100 . Узнать название сетевых интерфейсов в системе можно с помощью команды ifconfig.
Создаем новый файл например с помощью редактора vim
Добавьте в него следующий код
Жирным шрифтом выделены строки которые относятся к настройкам VLAN. Остальные настройки аналогичны настройкам на физическом интерфейсе.
Если вам нужна еще одна виртуальная сеть, то создайте новый файл сетевых настроек с нужным тегом VLAN. Что бы изменения вступили в силу, перезапустите сетевую службу
Теперь можно проверить созданные интерфейсы командой ifconfig. Мы должны увидеть наш VLAN интерфейс
Конфигурация VLAN в Debian и Ubuntu
Откройте файл /etc/network/interfaces любым текстовым редактором, например nano
Добавьте в файл следующие строки:
auto eth0.100 — «поднимать» интерфейс при запуске сетевой службы
iface eth0.100 — название интерфейса
vlan-raw-device— указывает на каком физическом интерфейсе создавать VLAN.
Сохраните и закройте файл. После чего перезапустите сеть.
Важно! Если у вас используется Ubuntu версии 17.10 и выше, то необходимо установить пакет ifupdown или настраивать VLAN интерфейсы через netplan
Использование команды vconfig
Также существует команда vconfig. Она позволяет вам создавать и удалять устройства VLAN в ядре с поддержкой VLAN. Устройства VLAN – это виртуальные Ethernet-устройства, которые представляют виртуальные локальные сети в физической. Это еще один метод настройки VLAN. Чтобы добавить VLAN с ID 5 для интерфейса eth0 выполните следующую команду:
Команда vconfig add создает на интерфейсе eth0 VLAN-устройство, в результате чего появляется интерфейс eth0.5. Теперь с помощью ifconfig настроим ip адрес
Для получения подробной информации об интерфейсе выполните:
Учтите, что после перезагрузки системы этот интерфейс будет удален.
Для удаления интерфейса вручную выполните следующие действия:
Создание устройства VLAN командой ip
Для интерфейса eth0 и VLAN ID 10 выполните следующие команды:
Устройство нужно активировать и присвоить ему IP-адрес:
Весь трафик пойдет через интерфейс eth0 с тегом VLAN 10. Его смогут принять только устройства, которым сообщено о VLAN, остальные будут отклонять трафик.
Следующие команды позволяют удалить VLAN ID:
Этот интерфейс также будет удален после перезагрузки системы
Заключение
Настроить VLAN относительно несложно, но в конфигурации и используемых командах есть огромное количество различных тонкостей, которые при необходимости можно выяснить, обратившись к man-страницам соответствующих команд.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Настройка vlan linux ubuntu
В статье расcмотрен вопрос, как включить и настроить в Linux (Debian, Ubuntu, xUbuntu, Linux Mint, Knoppix и т.п.) поддержку VLAN 802.1Q на сетевом интерфейсе.
Недавно у меня возникла задача работать сразу в нескольких виртуальных локальных сетях (VLAN). В ОС Linux сделать это оказалось довольно просто. Раcсмотрим все по порядку.
Включение поддержки vlan в Linux Mint, Debian, Ubuntu
Первым делом установим пакет «vlan» для настройки VLAN-ов в Linux. Данный пакет будет содержать в себе утилиту «vconfig» для настройки VLAN.
Допустим, нам нужно подключить сеть VLAN200. Для этого создадим логический интерфейс «eth0.200», привязанный к физическому интерфейсу «eth0», который будет обрабатывать пакеты с тегом 200.
Если выскочит ошибка «. Maybe you need to load the 8021q module. «, надо будет подгрузить модуль 8021q в ядро Linux следующей командой:
Добавление vlan в Linux с помощью утилиты vconfig
Пробуем еще раз добавить vlan с тегом 200, затем выводим командой «ifconfig -a» список всех интерфейсов:
Из вывода видно, что появился еще один логический интерфейс «eth0.200», который будет обрабатывать все пакеты, помеченные тегом 200 (принадлежащие сети VLAN200).
Повесим ip-адрес на новый интерфейс «eth0.200».
На этом настройка завершена. Следует отметить, что после перезагрузки интерфейс «eth0.200» слетит.
Добавление vlan в Linux Mint, Debian, Ubuntu через файл interfaces
Для того, чтобы интерфейс поднимался каждый раз после перезагрузки системы, его надо добавить в файл «/etc/network/interfaces».
Пример содержимого файла interfases.
Я думаю, тут все понятно.
Знак «#» — это комментарий.
Физический интерфейс «eth0» работает в обычном режиме т.е. все нетегированные (untagged) пакеты обрабатываются на этом интерфейсе.
Логический интерфейс «eth0.200» работает в режиме обработки только тегированных (tagged) пакетов с тегом 200, т.е. принадлежит VLAN200.
По аналогии можно создавать и другие VLAN интерфейсы.
На этом все. Рассмотрение процесса настройки VLAN в ОС Linux (Debian, xUbuntu, Linux Mint, Knoppix) завершено. Надеюсь, что эта статья была полезной. Комментируем, подписываемся, ну и всем пока:)
1″ :pagination=»pagination» :callback=»loadData» :options=»paginationOptions»>
Источник
VLAN в Linux
Материал из Xgu.ru
[править] Настройка VLAN в Linux
Ниже описывает процедура поднятия тегированного интерфейса на Linux-системе. Может применяться, например, в тех случаях, когда нужно маршрутизировать трафик между несколькими VLAN’ами или обеспечить присутствие сервера в нескольких VLAN’ах одновременно.
Необходима поддержка 802.1Q ядром Linux.
Если модуль не найден, необходимо переконфигурировать ядро, включив поддержку модуля, а потом пересобрать модули ядра.
Модуль включается в Network options / 802.1Q VLAN Support.
Говорим, какие VID будем пропускать. Для этого используем программу vconfig (пакет vlan в Debian) В результате будут созданы виртуальные интерфейсы с именами, содержащими VLAN ID.
Следует учесть, что трафик нижележащего интерфейса (eth0, в данном случае) будет отсылаться без тега (untagged в терминологии cisco). Добавление дополнительных вланов никак не скажется на его работе.
Имена интерфейсов могут отличаться (список возможным имён и от чего это зависит см. в man:vconfig).
Далее, назначаем каждому интерфейсу свой IP-адрес.
Если маршрут по умолчанию смотрит в один из VLAN’ов, нужно его задать:
Лучше сразу запретить пересылку трафика между интерфейсами (forwarding). Если пересылку разрешить, весь трафик между VLANами может пересылаться через эту систему. Если для этого она и настраивалась, пересылку разрешайте, но помните, что вы можете ограничить прохождение трафика и регулировать его другим способом.
Для управления прохождением трафика между VLAN’ами можно использовать стандартные механизмы ядра Linux, такие как маршрутизация, iptables и QoS.
Просматривать информацию о VLAN-подыинтерфейсах в Linux можно через /proc:
[править] Настройка VLAN с помощью средств IPRoute2
В последних версиях пакета iproute появились средства, позволяющие управлять влан-интерфейсами.
На формат имени влан-интерфейса не накладывается особых ограничений. Допускается использование символов национального алфавита. При включенной опции reorder-header кадры, проходящие через интерфейс-влан, не содержат тегов. По умолчанию включена. При отключенной опции, в кадрах сохраняется тег. Это нужно учесть, если вы, например, используете фильтры tc типа u32 с указанием смещений. Опция loose-binding отвечает за синхронизацию состояния влан-интерфейса с нижележащим интерфейсом. По-умолчанию, отключена, и при переключении нижележащего интерфейса в состояние down состояние влан-интерфейса так же меняется на down. При включении, состояние влан-интерфейса не зависит от состояния нижележащего интерфейса. Опция gvrp отвечает за то, распространять ли информацию о данном влане по протоколу gvrp. Для поддержки этой опции должна быть поддержка данной возможности со стороны ядра. Опции ingress-qos-map и egress-qos-map задают трансляцию между полем приоритета заголовка 802.1q и приоритетом структуры skb (данное поле используется в системе управления трафиком). Следует учитывать, что поле приоритета влан-заголовка имеет размер 3 бита и может принимать значения от 0 до 7. Размер же поля приоритета структуры skb составляет 32 бита.
Для просмотра информации о влан-интерфейсе в команде ip link show необходимо задать ключ -d[etails].
Для изменения параметров влан-интерфейса используется команда ip link set, с обязательным указанием type vlan.
[править] Аппаратная поддержка 802.1q
Многие сетевые контроллеры производства intel и broadcom имеют аппаратную поддержку 802.1q, которая снижает загрузку ЦПУ. При снятии дампа трафика с нижележащего интерфейса при аппаратной акселерации в дампе не будет упоминаний о тэгах 802.1q, информация о них хранится непосредственно в структурах, ассоциированных с пакетом.
Для управления аппаратной обработкой вланов сетевым адаптером используется утилита ethtool:
[править] Настройка VLAN при загрузке в Debian GNU/Linux
Для того чтобы информация о созданных VLAN’ах сохранилась после перезагрузки, необходимо добавить её в файл /etc/network/interfaces. Например:
[править] Настройка VLAN при загрузке в CentOS
Для того чтобы информация о созданных VLAN’ах сохранилась после перезагрузки, необходимо создать файлы с описанием подинтерфейсов VLAN. Например, для создания подинтерфейса eth0.10 необходимо создать файл /etc/sysconfig/network-scripts/ifcfg-eth0.10, содержимое которого будет похожим на традиционное содержимое файлов network-scripts/ifcfg-*:
Вариант 2, необходимо создать файл /etc/sysconfig/network-scripts/ifcfg-vlan1, содержимое которого будет похожим на традиционное содержимое файлов network-scripts/ifcfg-*:
[править] Настройка VLAN при загрузке в Gentoo
Ниже приведен пример части файла /etc/conf.d/net, отвечающей за настройку VLAN. В данном примере настраивается 2 vlan-интерфейса на интерфейсе eth0, создание и удаление данных интерфейсах происходит в скрипте /etc/init.d/net.eth0:
[править] QinQ-инкапсуляция в Linux
Q-in-Q инкапсуляция позволяет создавать дважды тегированный трафик. Для каждого уровня вложенности создаётся свой собственный интерфейс.
Источник
Настройка VLAN в Ubuntu
Устанавливаем пакет Vlan:
sudo apt-get install vlan |
Загружаем модуль Vlan (802.1q):
sudo modprobe 8021q |
Чтобы модуль загружался автоматически при старте системы, добавим в файл /etc/modules:
Редактируем конфигурационный файл сетевых интерфейсов /etc/network/interfaces например редактором nano:
sudo nano /etc/network/interfaces |
Добавим в него VLAN интерфейс:
auto eth0.5 iface eth0.5 inet static address 192.168.5.1 netmask 255.255.255.0 |
Запускаем прописанный сетевой интерфейс:
sudo ifup eth0.5 |
sudo cat /proc/net/vlan/config |
VLAN интерфейс может называться по разному, например:
DEV_PLUS_VID_NO_PAD (eth0.5)
VLAN_PLUS_VID (vlan0005)
VLAN_PLUS_VID_NO_PAD (vlan5)
DEV_PLUS_VID (eth0.0005)
Можно изменить тип имени так:
/sbin/vconfig set_name_type VLAN_PLUS_VID_NO_PAD |
Пример добавления VLAN интерфейса:
/sbin/vconfig add eth0 5 /sbin/ifconfig vlan5 up |
Если VLAN интерфейс запущен под именем vlan5, то в /etc/network/interfaces укажем:
Источник
Настройка VLAN в Linux
1. Модуль ядра для работы с VLAN
Для работы в Linux с VLAN необходимо загрузить модуль ядра: 8021q
Для этого, ядро должно быть сконфигурировано с поддержкой стандарта IEEE 802.1Q (включается при конфигурировании ядра: в kernel/net/8021q включить 802.1Q VLAN Support или в Network options / 802.1Q VLAN Support). Во многих современных дистрибутивах Linux (Debian, CentOS, openSUSE и т.д) такая поддержка уже включена в ядре и модуль можно загружать.
2. Использование утилиты vconfig для настройки VLAN
Что бы настроить на интерфейсе необходимые VLAN, можно воспользоваться утилитой vconfig она находится в пакете vlan либо в пакете vconfig, в зависимости от дистрибутива Linux.
vconfig имеет следующие опции:
add [interface-name] [vlan_id] — добавить VLAN с номером vlan_id (от 0 до 4095) на интерфейсе interface-name
rem [vlan-name] — удалить VLAN, именованый как vlan-name (имя vlan-name зависит от того, какой тип именования выбран см. ниже)
set_flag [interface-name] [flag-num] [0 | 1] — указывает следует ли делать перестановку (reorder) заголовка Ethernet кадра. Если значение 1 — перестановка включена, и трафик в снифферах (tcpdump и т.д) будет выглядеть как трафик обычного сетевого устройства без тегов VLAN. Если значение 0 — перестановка отключена, и трафик видится с тегами VLAN. Значение по умолчанию: 0.
set_egress_map [vlan-name] [skb_priority] [vlan_qos] — указывает, что для исходящих пакетов через vlan-name с определённым приоритетом буфера сокетов (sk_buff) skb_priority, должна выполняться маркировка приоритета VLAN в значение vlan_qos (3-х битное значение в VLAN заголовке). По умолчанию значение приоритета VLAN vlan_qos: 0.
set_ingress_map [vlan-name] [skb_priority] [vlan_qos] — указывает, что входящие пакеты через vlan-name с определённым приоритетом VLAN vlan_qos, должны помещаться в очередь буфера сокетов с приоритетом skb_priority. Значение по умолчанию приоритета очереди буфера сокетов skb_priority: 0.
set_name_type [name-type] — задаёт тип именования VLAN интерфейсов, при их добавлении. Возможные значения name-type:
VLAN_PLUS_VID — имя vlan-name будет вида vlan0020
VLAN_PLUS_VID_NO_PAD — имя vlan-name будет вида vlan20
DEV_PLUS_VID — имя vlan-name будет вида eth0.0020
DEV_PLUS_VID_NO_PAD — имя vlan-name будет вида eth0.20
Пример добавление VLAN 100 и VLAN 200 на интерфейсе eth0:
#
# modprobe 8021q
# vconfig add eth0 100
Added VLAN with VID == 100 to IF -:eth0:-
# vconfig add eth0 200
Added VLAN with VID == 200 to IF -:eth0:-
#
Посмотреть существующие VLAN можно в файле «/proc/net/vlan/config»
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.100 | 100 | eth0
eth0.200 | 200 | eth0
#
Задать IP адрес на VLAN интерфейсах и включить их, можно командой ifconfig:
#
# ifconfig eth0.100 192.168.100.1 netmask 255.255.255.0 up
# ifconfig eth0.200 192.168.200.1 netmask 255.255.255.0 up
#
3. Сохранение конфигурации VLAN интерфейсов при перезагрузке системы
Создание VLAN через vconfig и их настройка через ifconfig позволяет сохранить настройки до перезагрузки системы, что бы настройка применялась при загрузке операционной системы, необходимо создать специальные файлы конфигурации для VLAN интерфейсов.
Конфигурация VLAN интерфейсов зависит от того, какие скрипты инициализации сети используется в дистрибутиве Linux (initscripts, sysconfig или interfaces). Что бы узнать, какая система инициализации сети у Вас, следует:
— Выполнить команду «rpm -qf /sbin/ifup» на экране отобразится название пакета, название начинается на «initscripts» либо на «sysconfig». Этот пакет и предоставляет скрипты инициализации сети.
— Если в директории «/etc/network» присутствует файл «interfaces», то в Вашей системе используется interfaces для инициализации сети
Рассмотрим примеры настройки для всех трёх типов инициализации сети.
Настройка VLAN в Linux с использованием initscripts
Примером дистрибутивов Linux, использующих для настройки сети initscripts, являются RedHat, CentOS, Fedora и пр.
Файлы описания (конфигурации) для VLAN интерфейсов следует создавать в «/etc/sysconfig/network-scripts/». Имя файла должно быть вида: ifcfg-ethX.Y, либо вида ifcfg-vlanY (тогда в самом файле ifcfg-vlanY необходимо задать соответствующее значение параметра VLAN_NAME_TYPE ), где X — номер сетевого интерфейса, Y — идентификатор (номер) VLAN (VID)
Для примера, на интерфейсе eth0 добавим два VLAN 100 и 200. Что бы рассмотреть пример обоих файлов, создадим в «/etc/sysconfig/network-scripts/» один файл ifcfg-eth0.100 (описание для VLAN 100) и второй ifcfg-vlan200 (описание для VLAN 200).
Содержание файла «ifcfg-eth0.100«:
Содержание файла «ifcfg-vlan200«:
С такими файлами, после перезагрузки системы, на интерфейсе eth0 будут присутствовать два VLAN 100 и 200. Модуль ядра 8021q, при этом, загрузился автоматически.
#
# lsmod | grep 8021q
8021q 20355 0
garp 5703 1 8021q
#
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.100 | 100 | eth0
vlan200 | 200 | eth0
#
#
# ifconfig eth0.100
eth0.100 Link encap:Ethernet HWaddr 00:0C:29:64:7F:04
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe64:7f04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:768 (768.0 b)
# ifconfig vlan200
vlan200 Link encap:Ethernet HWaddr 00:0C:29:64:7F:04
inet addr:192.168.200.1 Bcast:192.168.200.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe64:7f04/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:768 (768.0 b)
#
Видно, что модуль ядра 8021q загружен, созданы VLAN 100 и 200, подняты соответствующие им интерфейсы с заданными IP адресами. (Значение RX равно 0, так как на интерфейс ещё не подан транк со стороны коммутатора).
Настройка VLAN в Linux с использованием sysconfig
Одним из примеров дистрибутива Linux, использующего для настройки сети sysconfig, является SuSE Linux.
Нужно создать в директории «/etc/sysconfig/network/» файлы для конфигурации необходимых VLAN. Имя файла имеет вид: ifcfg-vlanX, где X — номер VLAN (VID)
В содержание файла, помимо настроек сети (IP адрес, маска сети и т.д.), необходимо добавить параметры: ETHERDEVICE и VLAN
Пример создания двух VLAN 100 и 200 на интерфейсе eth0:
Создаем в «/etc/sysconfig/network/» два файла, первый с именем ifcfg-vlan100 и второй с именем ifcfg-vlan200
Содержание файла «ifcfg-vlan100«:
Содержание файла «ifcfg-vlan200«:
После перезагрузки системы или выполнения команды «/etc/init.d/network restart», на интерфейсе eth0 появятся два VLAN 100 и 200, а VLAN интерфейсы vlan100 и vlan200 будут подняты с заданной настройкой IP адреса и маской сети. Так же модуль ядра 8021q будет загружен автоматически.
Проверить результат можно таким же способом, как описано в случае с initscripts («lsmod | grep 8021q», «cat /proc/net/vlan/config«,»ifconfig»)
Настройка VLAN в Linux с использованием interfaces (ifupdown)
Примером дистрибутивов Linux, использующих для настройки сети interfaces, являются Debian, Ubuntu и пр.
Настройка производится в файле: «/etc/network/interfaces», в который необходимо добавить дополнительные строки, описывающие VLAN интерфейсы и их настройку.
Пример создания двух vlan 100 и 200 на интерфейсе eth0:
Добавить в файл «/etc/network/interfaces» строки:
auto eth0.100
iface eth0.100 inet static
address 192.168.100.3
netmask 255.255.255.0
vlan_raw_device eth0
auto eth0.200
iface eth0.200 inet static
address 192.168.200.3
netmask 255.255.255.0
vlan_raw_device eth0
После перезагрузки, или после выполнения команд «# ifup eth0.100» и «# ifup eth0.200», на интерфейсе eth0 появятся два VLAN 100 и 200, интерфейсы eth0.100 и eth0.200 будут подняты с заданными сетевыми настройками. Так же модуль ядра 8021q будет автоматически загружен.
Проверить результат можно таким же способом, как описано в случае с initscripts («lsmod | grep 8021q», «cat /proc/net/vlan/config«,»ifconfig»)
Источник