Работа с VLAN в роутере LT7x

Работа с VLAN в роутере LT7x

← Все разделы FAQ

Разделы FAQ:

Оглавление

Введение

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

Разделение сети на VLAN позволяет:

  • ограничить широковещательный трафик каждым сегментом;
  • изолировать друг от друга группы устройств — пользователей, камеры, оборудование;
  • передавать несколько сетей по одному кабелю (тегированный trunk-порт стандарта IEEE 802.1Q);
  • менять логическую топологию сети без перекоммутации кабелей.

В статье описана настройка VLAN в 4G-роутерах TELEOFIS LT7x через веб-интерфейс и через CLI: нетегированные (access) порты для обычных устройств и тегированный порт для оборудования с поддержкой 802.1Q, а также проверка изоляции сегментов.


Теоретическая часть

VLAN и стандарт IEEE 802.1Q

VLAN — логически выделенный сегмент сети, объединяющий устройства в один широковещательный домен независимо от их физического подключения. Устройства одной VLAN обмениваются широковещательным трафиком между собой, а между разными VLAN широковещательные кадры не передаются. Связь между VLAN на сетевом уровне возможна только через маршрутизатор и регулируется его межсетевым экраном.

Чтобы по одному физическому каналу можно было передавать трафик нескольких VLAN, стандарт IEEE 802.1Q добавляет в Ethernet-кадр 4-байтовый тег — между MAC-адресом источника и полем EtherType. Тег состоит из полей:

  • TPID (Tag Protocol Identifier) — 2 байта, значение 0x8100, признак кадра 802.1Q;
  • PCP (Priority Code Point, 802.1p) — 3 бита, приоритет кадра для QoS;
  • DEI (Drop Eligible Indicator, ранее CFI) — 1 бит, признак кадра, который можно отбросить при перегрузке;
  • VID (VLAN Identifier) — 12 бит, номер VLAN от 1 до 4094 (значения 0 и 4095 зарезервированы).

Тегированные и нетегированные порты

Кадр с тегом 802.1Q называется тегированным (tagged), обычный Ethernet-кадр без тега — нетегированным (untagged). В зависимости от того, как порт работает с тегами, различают:

  • нетегированный порт (access) — порт принадлежит одной VLAN, кадры передаются без тега. Входящие кадры без тега автоматически относятся к этой VLAN. Так подключаются обычные устройства: ПК, принтеры, IP-камеры;
  • тегированный порт (trunk) — по порту передаётся трафик нескольких VLAN, каждый кадр несёт тег со своим VID. Так соединяются коммутаторы, маршрутизаторы и серверы с поддержкой VLAN.

Порт может одновременно передавать одну VLAN без тега и несколько VLAN с тегом. Нетегированная VLAN порта называется основной (PVID): в неё попадают все входящие кадры без тега. Поэтому на одном порту может быть только одна нетегированная VLAN.

Большинство конечных устройств не понимают теги 802.1Q (VLAN-unaware) и подключаются только к нетегированным портам. Если в настройках ПК, камеры или другого устройства можно задать VLAN ID, такое устройство работает с тегированными кадрами (VLAN-aware) и может подключаться к тегированному порту.

VLAN в роутерах LT7x

В LT7x VLAN настраиваются на мосту br-lan, который объединяет порты lan1–lan4. После включения фильтрации VLAN на мосту для каждой VLAN задаётся, какие порты в неё входят и с тегом или без. Для каждой VLAN роутер может создать собственное сетевое устройство вида br-lan.10, к которому привязывается интерфейс со своим IP-адресом, DHCP-сервером и зоной межсетевого экрана (firewall).


Пример конфигурации

Рассмотрим схему с тремя VLAN — двумя нетегированными и одной тегированной:

VLAN Порты LT7x Адрес роутера Устройства
VLAN 10 (жёлтый блок) LAN1, LAN2, LAN3 — без тега 192.168.88.1/24 ПК, подключённые напрямую: 192.168.88.2–192.168.88.4
VLAN 20 (розовый блок) LAN4 — без тега (основная VLAN порта) 192.168.89.1/24 ноутбук и RTU1068 через неуправляемый коммутатор: 192.168.89.2, 192.168.89.3
VLAN 30 (зелёный блок) LAN4 — с тегом 192.168.0.1/24 ПК и RTU1068 с поддержкой 802.1Q через тот же коммутатор: 192.168.0.2, 192.168.0.3

Порты LAN1–LAN3 работают как нетегированные (access) порты VLAN 10. Порт LAN4 — тегированный (trunk): он передаёт VLAN 20 без тега и VLAN 30 с тегом. Устройства без поддержки VLAN, подключённые к LAN4 через коммутатор, попадают в VLAN 20, а устройства, настроенные на VLAN 30, — в VLAN 30. Так по одному кабелю передаются две изолированные сети.

Примечание: неуправляемый коммутатор между LT7x и устройствами в этой схеме пропускает тегированные кадры без изменений. Если используется управляемый коммутатор, его порт в сторону LT7x нужно настроить так же, как LAN4: VLAN 20 без тега, VLAN 30 с тегом.

Настройка через веб-интерфейс

Важно: во время настройки подключайтесь к роутеру через один из портов LAN1–LAN3. Интерфейс lan с адресом 192.168.88.1 переносится в VLAN 10, поэтому доступ через эти порты сохранится, а через LAN4 — нет.

Шаг 1. Включение фильтрации VLAN на мосту

Перейдите в меню Сеть → Интерфейсы и откройте вкладку Устройства:

Нажмите Настроить напротив устройства br-lan:

Откройте вкладку Фильтрация VLAN моста, установите флажок Включить фильтрацию моста и добавьте три VLAN: 10, 20 и 30. Для каждой VLAN отметьте порты в соответствии со схемой: LAN1, LAN2, LAN3 — VLAN 10 без тега; LAN4 — VLAN 20 без тега и VLAN 30 с тегом:

Для нетегированной VLAN порта дополнительно отметьте её как основную VLAN (Основной VLAN ID, PVID). Так встроенный коммутатор роутера определяет, в какую VLAN направлять входящие кадры без тега от устройств, которые не работают с VLAN. На рисунке показана отметка основной VLAN:

Флажок Локальный создаёт на роутере сетевое устройство для VLAN — например, br-lan.10. Если флажок снят, VLAN всё равно работает, но только на канальном уровне: назначить ей IP-адрес и привязать интерфейс нельзя. Для всех трёх VLAN в примере флажок должен быть установлен.

Примечание: на одном порту может быть только одна нетегированная VLAN. Например, если в примере добавить без тега в VLAN 20 ещё и порты LAN1–LAN3, которые уже нетегированы в VLAN 10, конфигурация будет ошибочной.

Нажмите Сохранить.

Важно: на этом этапе не нажимайте Сохранить и применить. Фильтрация VLAN уже включена, а интерфейс lan ещё привязан к br-lan без VLAN — после применения доступ к роутеру пропадёт. Веб-интерфейс не сможет подтвердить применение настроек и через 90 секунд откатит изменения. Применяйте настройки только после выполнения шага 2 и шага 3.

Шаг 2. Перенос интерфейса LAN в VLAN 10

Вернитесь на вкладку Интерфейсы и нажмите Изменить у интерфейса lan:

В поле Устройство выберите Программное обеспечение VLAN: «br-lan.10» и нажмите Сохранить. Адрес 192.168.88.1 и DHCP-сервер интерфейса lan сохраняются, но теперь работают только в VLAN 10:

Шаг 3. Интерфейсы VLAN 20 и VLAN 30

Нажмите Добавить новый интерфейс, задайте имя интерфейса, протокол Статический адрес и устройство br-lan.20:

В настройках интерфейса задайте IPv4-адрес 192.168.89.1 с маской 255.255.255.0:

На вкладке Настройки межсетевого экрана выберите зону для интерфейса. Если трафик между VLAN должен маршрутизироваться, поместите интерфейс в зону lan. Если VLAN должны быть изолированы и на сетевом уровне, создайте для интерфейса отдельную зону. Подробнее о зонах — в статье Настройка межсетевого экрана в роутере TELEOFIS LT7x.

Если устройства в VLAN должны получать адреса автоматически, на вкладке DHCP-сервер включите DHCP-сервер:

Нажмите Сохранить и создайте таким же образом интерфейс для VLAN 30: устройство br-lan.30, адрес 192.168.0.1, маска 255.255.255.0.

Шаг 4. Применение настроек

После создания всех интерфейсов нажмите Сохранить и применить. В результате на вкладке Интерфейсы отображаются три интерфейса, привязанные к br-lan.10, br-lan.20 и br-lan.30:


Настройка через CLI

Ту же конфигурацию можно задать в файле /etc/config/network. Подключитесь к роутеру по SSH (см. статью Как подключиться к роутеру LT7x для настройки) и откройте файл командой nano /etc/config/network.

В секции моста br-lan включите фильтрацию VLAN и добавьте секции bridge-vlan для каждой VLAN. Суффикс порта :u означает «без тега», :t — «с тегом», * — основная VLAN порта:

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
        option vlan_filtering '1'

config bridge-vlan
        option device 'br-lan'
        option vlan '10'
        list ports 'lan1:u*'
        list ports 'lan2:u*'
        list ports 'lan3:u*'

config bridge-vlan
        option device 'br-lan'
        option vlan '20'
        list ports 'lan4:u*'

config bridge-vlan
        option device 'br-lan'
        option vlan '30'
        list ports 'lan4:t'

В интерфейсе lan замените устройство на br-lan.10 (остальные параметры не меняются) и добавьте интерфейсы для VLAN 20 и VLAN 30. Имена интерфейсов vlan20 и vlan30 условные:

config interface 'lan'
        option device 'br-lan.10'
        ...

config interface 'vlan20'
        option device 'br-lan.20'
        option proto 'static'
        option ipaddr '192.168.89.1'
        option netmask '255.255.255.0'

config interface 'vlan30'
        option device 'br-lan.30'
        option proto 'static'
        option ipaddr '192.168.0.1'
        option netmask '255.255.255.0'

DHCP-серверы и зоны межсетевого экрана для новых интерфейсов добавляются в файлы /etc/config/dhcp и /etc/config/firewall так же, как для любого другого интерфейса. Примените изменения:

/etc/init.d/network restart
/etc/init.d/dnsmasq restart
/etc/init.d/firewall restart

Проверка соединения

Устройства, подключённые к нетегированным портам, получают адреса так, будто VLAN на роутере не используются: каждое работает в своём широковещательном домене. Для проверки используется роутер TELEOFIS RTU1068 — он работает под управлением OpenWrt и поддерживает тегированные VLAN. Порядок проверки:

  1. Подключите RTU1068 по очереди к портам LAN1–LAN3 (VLAN 10) и LAN4 (VLAN 20 и VLAN 30) и убедитесь, что он получает адрес из соответствующей подсети.
  2. Подключите RTU1068 к LAN4 и выполните на нём ping несуществующего адреса 192.168.89.100 в VLAN 20 — RTU1068 начнёт рассылать широковещательные ARP-запросы.
  3. Запустите на LT7x tcpdump на устройствах VLAN 20 и VLAN 10. ARP-запросы должны быть видны только в VLAN 20 — это подтверждает изоляцию сегментов на канальном уровне (L2).

Подключение к VLAN 10

При подключении к любому из портов LAN1–LAN3 RTU1068 получает адрес из подсети VLAN 10 192.168.88.0/24:

Подключение к VLAN 20 и изоляция от VLAN 10

RTU1068 пока не настроен на работу с тегированными VLAN, поэтому при подключении к LAN4 он получает адрес из нетегированной VLAN 20 192.168.89.0/24:

Запустите на RTU1068 ping 192.168.89.100, чтобы он генерировал ARP-запросы. На LT7x в двух SSH-сессиях выполните команды:

tcpdump -i br-lan.10 arp
tcpdump -i br-lan.20 arp

В выводе для br-lan.20 видны ARP-запросы от RTU1068, в выводе для br-lan.10 их нет:

Широковещательный трафик VLAN 20 не попадает в VLAN 10 — сегменты изолированы.

Подключение к VLAN 30

VLAN 30 тегированная, поэтому RTU1068 нужно предварительно настроить на работу в VLAN 30. Настройка выполняется так же, как на LT7x, — через фильтрацию VLAN моста:

После этого при подключении к LAN4 RTU1068 получает адрес из подсети VLAN 30 192.168.0.0/24:

Аналогично проверьте изоляцию VLAN 20 и VLAN 30 с помощью tcpdump. ARP-запросы из одной VLAN не появляются в другой, хотя обе VLAN передаются через один порт LAN4:


Заключение

В результате локальная сеть роутера LT7x разделена на три VLAN: VLAN 10 на портах LAN1–LAN3 для обычных устройств, а также VLAN 20 без тега и VLAN 30 с тегом на порту LAN4. Каждая VLAN имеет собственный интерфейс с IP-адресом и при необходимости DHCP-сервером и зоной межсетевого экрана. Проверка показала, что устройства получают адреса из своих подсетей, а широковещательный трафик не выходит за пределы своей VLAN — в том числе когда несколько VLAN передаются по одному кабелю. Доступ между VLAN на сетевом уровне при этом регулируется зонами межсетевого экрана.