Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Технология VLAN

VLAN (Virtual Local Area Network) — топологическая («виртуальная») локальная сеть, широковещательный домен, который разделен и изолирован в компьютерной сети на канальном уровне (уровень 2 OSI) и представляет собой группу узлов сети (хостов), имеющих возможность взаимодействовать между собой напрямую на канальном уровне, хотя физически при этом они могут быть подключены к разным сетевым коммутаторам. И наоборот, узлы сети, находящиеся в разных VLAN'ах, невидимы друг для друга на канальном уровне, даже если они подключены к одному коммутатору, и связь между этими хостами возможна только на сетевом и более высоких уровнях.

Гибкое разделение устройств на группы

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

Уменьшение количества широковещательного трафика в сети

Каждый VLAN — это отдельный широковещательный домен. Например, коммутатор — это устройство 2 уровня модели OSI. Все порты на коммутаторе с лишь одним VLAN находятся в одном широковещательном домене. Создание дополнительных VLAN на коммутаторе означает деление коммутатора на несколько широковещательных доменов. Если один и тот же VLAN настроен на разных коммутаторах, то порты этих коммутаторов будут образовывать один широковещательный домен.

Увеличение безопасности и управляемости сети

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

Тегирование трафика VLAN

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

Если используется более одного коммутатора, то после получения данных на порт коммутатора коммутатор помечает пришедший трафик, тегируя кадры (frame). Пометка информирует к какому VLAN'у принадлежит трафик. Наиболее распространённый способ ставить такую пометку описан в стандарте IEEE 802.1Q. Такая метка называется тегом, тег содержит номер VLAN'а.

Порт, который передаёт трафик только одного VLAN имеет тип access. Нескольких VLAN'ов тип trunk.

Настройка VLAN в операционной системе состоит из нескольких шагов:

  • Создать производный интерфейс VLAN'а;
  • Привязать его к какому-либо базовому сетевому интерфейсу;
  • Назначить IP-адрес для производного интерфейса;
  • Задать дополнительные параметры производного интерфейса, если необходимо;
  • Если система используется для маршрутизации трафика, разрешить прохождение трафика между интерфейсами (форвардинг) и описать правила фильтрации трафика.

Рекомендации по настройке ОС Astra Linux

При использовании Astra Linux в качестве серверной ОС рекомендуется всю настройку сети и VLAN в частности проводить с помощью сервиса networking. Перед использованием networking необходимо отключить NetworkManager, для чего выполнить команду:

sudo systemctl --now mask NetworkManager

Предварительные требования

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

sudo modprobe 8021q
Необходимо, чтобы в системе был установлен пакет vlan.
sudo apt install vlan

Настройка

Настройка VLAN с помощью средств iproute2

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

Добавление VLAN-интерфейса:

sudo 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 (по умолчанию включена) кадры, проходящие через интерфейс VLAN, не содержат тегов. При отключенной опции, в кадрах сохраняется тег. Это нужно учесть, если вы, например, используете фильтры tc (traffic control) типа u32 с указанием смещений.

Опция loose-binding отвечает за синхронизацию состояния VLAN-интерфейса с базовым интерфейсом. По-умолчанию, отключена, и при переключении базового интерфейса в состояние down состояние VLAN-интерфейса так же меняется на down. При включении, состояние VLAN-интерфейса не зависит от состояния базового интерфейса.

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

Опции ingress-qos-map и egress-qos-map задают трансляцию между полем приоритета заголовка 802.1q и приоритетом структуры skb (данное поле используется в системе управления трафиком). Следует учитывать, что поле приоритета VLAN-заголовка имеет размер 3 бита и может принимать значения от 0 до 7. Размер же поля приоритета структуры skb составляет 32 бита.

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

$ip -details link show dev VLANNAME
 19: VLANNAME@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
   link/ether 00:aa:92:08:18:a6 brd ff:ff:ff:ff:ff:ff
   vlan id 1 <REORDER_HDR> 
     egress-qos-map { 0:7 1:7 2:7 3:7 4:7 5:7 6:7 7:7 }

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

sudo ip link set dev VLANNAME type vlan OPTION VALUE
Удаление VLAN-интерфейса
sudo ip link del VLANNAME

Дополнительная информация содержится в справочной странице man ip link.

Настройка с помощью networking

auto <InterfaceName>                                    # необязательно
iface <InterfaceName> inet manual                       # необязательно

auto <InterfaceName>.<VLAN ID>
iface <InterfaceName>.<VLAN ID> inet static
vlan-raw-device <InterfaceName>                         # или vlan_raw_device
    address ....
	netmask ....

Настройки интерфейсов VLAN'ов в Astra Linux точно так же, как и для сетевых интерфейсов, указываются в файле /etc/network/interfaces.

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

Например:

auto vlan1400 
iface vlan1400 inet static 
	address 192.168.1.1 
	netmask 255.255.255.0 
	vlan_raw_device eth0
Или, если требуется использовать названия интерфейсов вида eth0.1400, а не vlan1400:
auto eth0.1400 
iface eth0.1400 inet static 
	address 192.168.1.1 
	netmask 255.255.255.0 
	vlan_raw_device eth0

Новый параметр, который обычно отсутствует в конфигурации сетевого интерфейса — vlan_raw_device. Этот параметр указывает, на каком сетевом интерфейсе должен создаваться новый интерфейс vlan1400.

Номер 1400 в данном случае указывает на то, какой VLAN ID должен использоваться.