54223

[i] Создание и настройка VLAN-сети с использованием демонстрационной платы для К1923КХ02GI

Дата последнего изменения: 26.07.2024 08:57:44

В данной статье рассмотрен пример настройки К1923КХ02GI для создания простой VLAN-сети.

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

Подробнее ознакомиться с понятием VLAN можно в стандарте IEEE 802.1Q, в статье будут рассмотрены только основные понятия VLAN.

Краткая информация о VLAN

Построение VLAN-сетей базируется на протоколе 802.1q. Реализация данного протокола состоит в добавлении в стандартный Ethernet-II кадр специального поля – тега, при этом пакет с тегом называется тегированным, а без – не тегированным (рисунок 1).

Рисунок 1 - Структура не тегированного и тегированного Ethernet-II кадра

Формат тега

16 бит 3 бита 1 бит 12 бит
TPID PCP CFI VID

  • Tag Protocol Identifier (TPID, идентификатор протокола тегирования). Для 802.1Q используется значение 0x8100.
  • Priority code point (PCP). Используется стандартом IEEE 802.1p для задания приоритета передаваемого трафика (class of service).
  • Canonical Format Indicator (CFI, индикатор канонического формата). Указывает на формат MAC-адреса: 0 — канонический (кадр Ethernet), 1 — не канонический.
  • VLAN Identifier (VID, идентификатор VLAN). Указывает номер VLAN, к которому принадлежит кадр.

Тегированные кадры обычно передаются между коммутаторами, конечные же устройства (ПК) обмениваются не тегированными кадрами. Поэтому порт коммутатора часто обозначают 2-мя состояниями: access или trunk.

access port — порт, принадлежащий одной VLAN-сети и передающий нетегированный трафик. Любой кадр, который приходит на access порт, помечается номером, принадлежащим данному VLAN.

trunk port — порт, передающий тегированный трафик одной или нескольких VLAN-сетей. Этот порт, наоборот, не изменяет тег, а лишь пропускает кадры с тегами, которые разрешены на этом порту.

Настройка К1923КХ02GI для создания VLAN-сети

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

Рисунок 2 - Структура компьютерной сети, состоящей из двух VLAN

В данную часть сети входят 4 ПК, коммутатор и демоплата для К1923КХ02GI с хостом.

Относительно демоплаты для К1923КХ02GI конфигурация сети будет иметь вид, приведённый в таблице 1.

Таблица 1 - Конфигурация сети

Подключенное устройство IP-адрес VLAN ID № порта
ПК1 192.168.1.10/24 10 1
ПК2 192.168.1.11/24 10 2
ПК3 192.168.1.20/24 20 5
ПК4 192.168.1.21/24 20 6
Коммутатор - - 10

Микросхема К1923КХ02GI будет использоваться в режиме MODE[3:0] = 0000 – управляемый коммутатор с доступом по PCI-E. В качестве хоста выступает ПК, работающий под управлением Ubuntu 16.04 LTS, ядро Linux 4.10.17.

Сначала необходимо выполнить подготовку К1923КХ02GI к работе согласно QuickStart:

  • Открыть терминал в директории с драйвером.
  • Загрузить собранный драйвер в ядро ОС с помощью команды
$ sudo insmod switch.ko
  • Включить сетевой интерфейс К1923КХ02GI. Название сетевого интерфейса можно посмотреть с помощью команды $ ifconfig -a , в данном примере это интерфейс enp3s0.
$ sudo ifconfig enp3s0 up

После выполнения последней команды на демоплате должны начать мигать зелёные светодиоды. Настройка К1923КХ02GI осуществляется с помощью интерфейса "proc", для этого необходимо перейти в директорию /proc/basis.

Подробное описание функционала интерфейса "proc" приводится в QuickStart.

Для данной конфигурации сети вся настройка микросхемы К1923КХ02GI сводится к двум действиям: настройка таблицы VLAN и настройка соответствующих портов.

Выполним настройку таблицы VLAN. Сначала добавим запись для VLAN 10:

  • Переходим в директорию hash_tables/vlan.
  • Открываем файл «add». В файле «add» уже описан шаблон для заполнения, требуется только внести нужные данные.
  • В строке «VLAN ID» записываем номер создаваемого VLAN – 10.
  • В строку «Forward list» записывается список портов, которые входят в данный VLAN; список указывается в виде битовой маски, в которой позиция бита соответствует номеру порта. Для VLAN 10 в «Forward list» необходимо указать порты 1 и 2, к которым подключены ПК 1 и 2, а также порт 10, к которому подключён коммутатор, так как он должен получать пакеты от всех ПК, чтобы иметь возможность перенаправить их в другой сегмент сети. В итоге было получено значение 0x00203, где битам, установленным в «1», соответствуют необходимые порты (порты К1923КХ02GI нумеруются с единицы).
  • В строку «Untag list» записывается список портов, для которых с тегированных пакетов требуется убрать VLAN-тег; список указывается в виде битовой маски, в которой позиция бита соответствует номеру порта. В данном списке указываются все access-порты, то есть в рассматриваемом случае порты 1 и 2. В позиции порта 10 записываем «0», так как для этого порта VLAN-тег снимать не нужно (trunk порт). Получившееся значение «Untag list»: 0x00003.

Остальные строки файла «add» оставляем без изменения. В итоге получился следующий файл "add" (указаны только строки, в которые были внесены изменения):

VLAN ID:       10
Forward list:  0x00203
Untag list:    0x00003

Чтобы добавить запись в таблицу VLAN, необходимо сохранить файл с помощью кнопки «add». Если файл не сохраняется сразу, выбираем "Всё равно сохранить"→ "Отмена"→ "Пропустить", после чего закрываем файл. Чтобы убедиться в добавлении записи в таблицу VLAN, можно открыть файл «show», в котором должна появиться записанная запись.

Чтобы добавить запись для VLAN 20, необходимо снова открыть файл «add» и указать необходимые настройки. В итоге получился следующий файл "add" (указаны только строки, в которые были внесены изменения):

VLAN ID:       20
Forward list:  0x00230
Untag list:    0x00030

На этом настройка VLAN-таблицы завершена.

Перейдём к настройке портов К1923КХ02GI , к которым подключены внешние устройства. Для этого переходим в директорию /proc/basis/port_settings. Выполним настройку порта 1:

  • Открываем файл «port1». Он также описан в виде шаблона, поэтому требуется только внести нужные данные.
  • В строке «Fallback_BD_id (dec)» указывается номер vlan, который присваивается всем нетегированным (untagged) пакетам, полученным с данного порта. Для порта 1 это значение должно быть равно 10.
  • В строке «aft» указывается тип принимаемых пакетов. Так как к этому порту подключен ПК, то необходимо записать в строку число 2 - прием только не тегированных пакетов.
  • В строке «untag_from_btable» указывается, будет использоваться (1) или нет (0) указанный во VLAN таблице «untag list» при передаче пакетов с порта. Здесь необходимо записать значение 1.

В итоге получился следующий файл "port1" (указаны только строки, в которые были внесены изменения):

Fallback_BD_id (dec): 10
aft: 2
untag_from_btable: 1

Остальные поля остаются без изменения, файл необходимо сохранить и закрыть.

Для портов 2, 5 и 6 необходимо установить аналогичные настройки, только указав в поле «Fallback_BD_id (dec)» соответствующий номер VLAN.

Для порта 10 в файле «port10» необходимо указать тип принимаемых пакетов "aft: 1" - только тегированные, а также использование "untag list" -  «untag_from_btable: 1», остальные параметры необходимо оставить без изменений.

Получившийся файл "port10" (указаны только строки, в которые были внесены изменения):

aft: 1
untag_from_btable: 1

Настройка микросхемы К1923КХ02GIдля данной конфигурации сети завершена, и демонстрационная плата К1923КХ02GI готова к коммутации пакетов.


Сохранить статью в PDF

Теги

Была ли статья полезной?