Adding vlan on linux

VLAN в Linux

На этой странице рассматривается процедура настройки VLAN в Linux.

[править] Настройка VLAN в Linux

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

Необходима поддержка 802.1Q ядром Linux.

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

Модуль включается в Network options / 802.1Q VLAN Support.

# make menuconfig # make modules; make modules_install

Говорим, какие VID будем пропускать. Для этого используем программу vconfig (пакет vlan в Debian) В результате будут созданы виртуальные интерфейсы с именами, содержащими VLAN ID.

Следует учесть, что трафик нижележащего интерфейса (eth0, в данном случае) будет отсылаться без тега (untagged в терминологии cisco). Добавление дополнительных вланов никак не скажется на его работе.

Имена интерфейсов могут отличаться (список возможным имён и от чего это зависит см. в man:vconfig).

# /sbin/vconfig add eth0 2 # /sbin/vconfig add eth0 3 # /sbin/vconfig add eth0 4 # /sbin/vconfig add eth0 5

Далее, назначаем каждому интерфейсу свой IP-адрес.

# /sbin/ifconfig eth0.2 10.х.х.х netmask 255.255.255.0 up # /sbin/ifconfig eth0.3 192.168.0.х netmask 255.255.255.0 up # /sbin/ifconfig eth0.4 192.168.1.х netmask 255.255.255.0 up # /sbin/ifconfig eth0.5 х.х.х.х netmask 255.255.255.224 up

Если маршрут по умолчанию смотрит в один из VLAN’ов, нужно его задать:

# /sbin/route add default gw 192.168.1.1

Лучше сразу запретить пересылку трафика между интерфейсами (forwarding). Если пересылку разрешить, весь трафик между VLANами может пересылаться через эту систему. Если для этого она и настраивалась, пересылку разрешайте, но помните, что вы можете ограничить прохождение трафика и регулировать его другим способом.

Читайте также:  Linux mint windows 10 no grub

Для управления прохождением трафика между VLAN’ами можно использовать стандартные механизмы ядра Linux, такие как маршрутизация, iptables и QoS.

Просматривать информацию о VLAN-подыинтерфейсах в Linux можно через /proc:

%# cat /proc/net/vlan/eth0.2 eth0.2 VID: 2 REORDER_HDR: 1 dev->priv_flags: 1 total frames received: 53973265 total bytes received: 1075877000 Broadcast/Multicast Rcvd: 397878 total frames transmitted: 41904604 total bytes transmitted: 2333267429 total headroom inc: 0 total encap on xmit: 41904604 Device: eth0 INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 EGRESSS priority Mappings:

[править] Настройка VLAN с помощью средств IPRoute2

В последних версиях пакета iproute появились средства, позволяющие управлять влан-интерфейсами.

ip link add link DEVNAME name VLANNAME type vlan id VLAN-ID reorder_hdr on|off loose_binding on|off gvrp on|off ingress-qos-map FROM:TO egress-qos-map FROM:TO

На формат имени влан-интерфейса не накладывается особых ограничений. Допускается использование символов национального алфавита. При включенной опции reorder-header кадры, проходящие через интерфейс-влан, не содержат тегов. По умолчанию включена. При отключенной опции, в кадрах сохраняется тег. Это нужно учесть, если вы, например, используете фильтры tc типа u32 с указанием смещений. Опция loose-binding отвечает за синхронизацию состояния влан-интерфейса с нижележащим интерфейсом. По-умолчанию, отключена, и при переключении нижележащего интерфейса в состояние down состояние влан-интерфейса так же меняется на down. При включении, состояние влан-интерфейса не зависит от состояния нижележащего интерфейса. Опция gvrp отвечает за то, распространять ли информацию о данном влане по протоколу gvrp. Для поддержки этой опции должна быть поддержка данной возможности со стороны ядра. Опции ingress-qos-map и egress-qos-map задают трансляцию между полем приоритета заголовка 802.1q и приоритетом структуры skb (данное поле используется в системе управления трафиком). Следует учитывать, что поле приоритета влан-заголовка имеет размер 3 бита и может принимать значения от 0 до 7. Размер же поля приоритета структуры skb составляет 32 бита.

Читайте также:  Find linux version and bit

Для просмотра информации о влан-интерфейсе в команде ip link show необходимо задать ключ -d[etails].

$ip -details link show dev mgmt 19: mgmt@eth0: mtu 1500 qdisc noqueue state UP link/ether 00:aa:92:08:18:a6 brd ff:ff:ff:ff:ff:ff vlan id 1 egress-qos-map

Для изменения параметров влан-интерфейса используется команда ip link set, с обязательным указанием type vlan.

ip link set dev VLANNAME type vlan OPTION VALUE

[править] Аппаратная поддержка 802.1q

Многие сетевые контроллеры производства intel и broadcom имеют аппаратную поддержку 802.1q, которая снижает загрузку ЦПУ. При снятии дампа трафика с нижележащего интерфейса при аппаратной акселерации в дампе не будет упоминаний о тэгах 802.1q, информация о них хранится непосредственно в структурах, ассоциированных с пакетом.

Для управления аппаратной обработкой вланов сетевым адаптером используется утилита ethtool:

ethtool -k|--show-offload DEVNAME ethtool -K|--offload DEVNAME [txvlan on|off] [rxvlan on|off]

[править] Настройка VLAN при загрузке в Debian GNU/Linux

Основная страница: VLAN в Debian Для работы описанного ниже способа необходимо чтобы в системе был установлен пакет vlan

Для того чтобы информация о созданных VLAN’ах сохранилась после перезагрузки, необходимо добавить её в файл /etc/network/interfaces. Например:

auto vlan1400 iface vlan1400 inet static address 192.168.1.1 netmask 255.255.255.0 vlan_raw_device eth0

[править] Настройка VLAN при загрузке в CentOS

Для того чтобы информация о созданных VLAN’ах сохранилась после перезагрузки, необходимо создать файлы с описанием подинтерфейсов VLAN. Например, для создания подинтерфейса eth0.10 необходимо создать файл /etc/sysconfig/network-scripts/ifcfg-eth0.10, содержимое которого будет похожим на традиционное содержимое файлов network-scripts/ifcfg-*:

VLAN=yes DEVICE=eth0.10 BOOTPROTO=static ONBOOT=yes TYPE=Ethernet IPADDR=10.10.10.2 NETMASK=255.255.255.252

Вариант 2, необходимо создать файл /etc/sysconfig/network-scripts/ifcfg-vlan1, содержимое которого будет похожим на традиционное содержимое файлов network-scripts/ifcfg-*:

VLAN=yes VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD DEVICE=vlan1 PHYSDEV=eth1 BOOTPROTO=static ONBOOT=yes TYPE=Ethernet IPADDR=192.168.100.5 NETMASK=255.255.255.0

[править] Настройка VLAN при загрузке в Gentoo

Ниже приведен пример части файла /etc/conf.d/net, отвечающей за настройку VLAN. В данном примере настраивается 2 vlan-интерфейса на интерфейсе eth0, создание и удаление данных интерфейсах происходит в скрипте /etc/init.d/net.eth0:

config_eth0="null" vlans_eth0="1 2" vlan1_name="vlan1" config_vlan1="10.0.0.1/24" vlan2_name="vlan2" config_vlan2="192.168.1.1/24"

[править] QinQ-инкапсуляция в Linux

Q-in-Q инкапсуляция позволяет создавать дважды тегированный трафик. Для каждого уровня вложенности создаётся свой собственный интерфейс.

Читайте также:  Black cat linux это

Подробнее о процедуре настройки:

  • https://www.opennet.ru/tips/info/1381.shtml (рус.)
VLAN — Virtual Local Area Network
Стандарты, протоколы и основные понятия 802.1Q • VLAN ID • ISL • VTP • GVRP • Native VLAN
В операционных системах Linux (Debian, Ubuntu, CentOS) • FreeBSD • Windows
В сетевом оборудовании Cisco • HP ProCurve • D-LINK • Allied Telesis • Asotel • Juniper • ExtremeXOS
Разное man vconfig • Безопасность VLAN • 802.1X и RADIUS • Cisco Private VLAN

Источник

Оцените статью
Adblock
detector