Оглавление
- Введение
- Теоретическая часть
- Пример конфигурации
- Настройка через веб-интерфейс
- Настройка через CLI
- Проверка соединения
- Заключение
Введение
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. Так по одному кабелю передаются две изолированные сети.
Настройка через веб-интерфейс
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 в примере флажок должен быть установлен.
Нажмите Сохранить.
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. Порядок проверки:
- Подключите RTU1068 по очереди к портам LAN1–LAN3 (VLAN 10) и LAN4 (VLAN 20 и VLAN 30) и убедитесь, что он получает адрес из соответствующей подсети.
- Подключите RTU1068 к LAN4 и выполните на нём
pingнесуществующего адреса192.168.89.100в VLAN 20 — RTU1068 начнёт рассылать широковещательные ARP-запросы. - Запустите на 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 на сетевом уровне при этом регулируется зонами межсетевого экрана.