СПОСОБ ПОДДЕРЖКИ VLAN ПРОГРАММНЫМ МОСТОМ LINUX
METHOD OF VLAN SUPPORT WITH LINUX SOFTWARE BRIDGE

Область техники
Настоящее изобретение относится к области сетевого оборудования, а именно относится к способу поддержки VLAN программным мостом Linux.
Предыдущий уровень техники
Операционная система Linux широко применяется для различных встроенных систем. По сравнению с другими операционными системами она имеет следующие преимущества: прежде всего, Linux обладает открытым исходным кодом, в системе отсутствуют засекреченные технологии, множество пользователей Linux из разных стран мира также оказывают значительную техническую поддержку для разработчиков; кроме того, ядро Linux небольшое, высокоэффективное и быстро обновляется, Linux можно изготовить на заказ, так как его системное ядроминимально занимает всего несколько сот килобайт; а также Linux - это бесплатная операционная система, поэтому она крайне конкурентоспособна в плане цены. Кром того, Linux также обладает многими необходимыми характеристиками встроенной операционной системы, из которых особо важным является то, что Linux совместима с различными процессорами и различными платформами программного обеспечения, это межплатформенная система. Linux обладает наиболее полной поддержкой самого распространенного сетевого протокола TCP/IP и обеспечивает сеть Ethernet со скоростью 10 Мб, 100 Мб и 1 Гб, а также поддерживает беспроводную сеть, кольцевую сеть с маркерным кольцом, оптическую и даже спутниковую связь, что делает эту операционную систему чрезвычайно удобной для сетевого оборудования.
Операционная система Linux обладает огромными рыночными перспективами и коммерческими возможностями, на ее основе появилось множество специализированных предприятий и продуктов, например, Montavista, Lineo, Emi, отраслевых ассоциаций, например, Embedded Linux Consortium; она пользуется поддержкой всемирно известных компьютерных компаний и поставщиков плат от производителей оригинального оборудования, в частности, IBM, Motorola, Intel. Стратегии Linux также используются производителями традиционных встраиваемых систем, например, Lynxworks, Windriver, QNX, а в Интернете они пользуются значительной поддержкой энтузиастов в области встраиваемой системы Linux. Встраиваемая Linux поддерживает практически все встраиваемые микропроцессоры и портирована на практически все встраиваемые платы от производителей оригинального оборудования.
Сфера применения операционной системы Linux чрезвычайно широка, главным образом она применяется в таких областях как информационная бытовая техника, персональные цифровые помощники, телевизионные приставки, цифровые телефоны, автоответчики, видеотелефоны, сети данных, переключатели Ethernet, рутеры, мосты, хабы, серверы удаленного доступа, банкоматы, ретрансляторы кадров, телекоммуникации, медицинская электроника, периферийные компьютерные устройства транспорта и логистики, промышленное управление, авиация и космические полеты.
В настоящее время в применении маршрутизаторов с сетевыми мостами и другим оборудованием существует потребность в сетевых мостах между различными сетевыми портами, например, между портом беспроводной сети WiFi и портом Ethernet, между портом на стороне пользователя и портом на стороне сети требуется мост для приема данных.
Стек сетевых протоколов Linux реализует базовую функцию сетевого моста, поддерживает такие функции сетевого моста как обучение МАС-адресам, старение и переадресация пакетов данных, позволяет в реальном времени осуществлять создание сетевого моста и динамическое добавление и удаление портов внутри сетевого моста, поддерживает протокол STP и пр. Кроме того, стек сетевых протоколов ядра Linux на базереального сетевого порта реализует стек протоколов 802.1Q; создание виртуального сетевого порта позволяет обрабатывать пакеты данных с тэгами 802.1Q, используется для добавления и удаления тэгов и в то же время позволяет осуществлять приоритетную обработку согласно 802.1р в теге.
Но стек сетевых протоколов Linux не поддерживает функцию VLAN, а от сетевых мостов и другого сетевого оборудования обычно требуется поддержка функции VLAN, поэтому в программном мосту стека сетевых протоколов Linux существует функциональный недостаток.
Суть изобретения
Настоящее изобретение предназначено для решения технической проблемы, которая состоит в том, что программный мост Linux не поддерживает функцию VLAN.
Техническое решение, используемое для решения вышеупомянутой технической проблемы состоит в предоставлении определенного способа поддержки VLAN программным мостом Linux, включающего следующие этапы:
этап А10: в ядре Linux создается сетевой мост br0 и сетевой VLAN порт, сетевой порт и сетевой VLAN порт добавляются на сетевой мост br0, образуя соответствующий порт сетевого моста, который осуществляет обслуживание в форме группы списков ссылок порта VLAN;
этап А20: настраивается порт сетевого моста на сетевом мосту br0, создается или обновляется соответствующий список ссылок порта VLAN;
этап А30: с помощью сетевого моста br0 осуществляется переадресация данных на базе VLAN.
В вышеупомянутом способе обслуживание списка ссылок порта VLAN сетевого моста на этапе А10 заключается в следующем:
(1) Одна группа портов сетевого моста с аналогичным VLAN ID образуется посредством списка ссылок одного порта VLAN;
(2) В число элементов структуры каждого порта сетевого моста входит информация заголовка списка ссылок, указывающая на принадлежащий список ссылок порта VLAN, которая используется для обхода всех портов во VLAN при лавинной адресации пакетов данных;
(3) При создании нового сетевого VLAN порта на сетевом мосту требуется создать новый список ссылок порта VLAN;
(4) При добавлении сетевого порта или сетевого VLAN порта на сетевой мост осуществляется поиск в соответствующем списке ссылок порта VLAN в соответствии с PVID или VLAN ID порта сетевого моста, и порт сетевого моста добавляется в конец списка ссылок данного порта VLAN;
(5) При удалении сетевого порта или сетевого VLAN порта из сетевого моста осуществляется поиск в соответствующем списке ссылок порта VLAN в соответствии с VLAN ID порта сетевого моста и обход элементов, соответствующих поиску в списке ссылок порта VLAN, эти элементы удаляются.
В вышеупомянутом способе этап А20 включает следующие этапы:
этап А21: настройка сетевого порта и VLAN ID сетевого VLAN порта, создание виртуального порта на базе 802.1Q, настройка свойств PVID сетевого порта;
этап А22: определение, является ли вновь добавленный порт сетевого моста сетевым портом, и если он является сетевым портом, то происходит получение PVID этого порта сетевого моста, после чего происходит переход к этапу А23; если он является сетевым VLAN портом, то происходит получение VLAN ID этого виртуального порта, после чего происходит переход к этапу А23;
этап А23: с VLAN ID или PVID в качестве индекса происходит поиск наличия соответствующего списка ссылок порта VLAN, и если он отсутствует, то создается новый список ссылок порта VLAN; если он существует, то на вновь добавленный порт сетевого моста добавляется соответствующий список ссылок порта VLAN.
В вышеупомянутом способе этап А30 включает следующие этапы:
этап A31: получение сетевым портом пакета данных;
этап A32: проверка данного пакета данных на наличие прикрепленного тэга 802.1Q, при этом если типом протокола пакета данных является 802.1Q, то происходит переход к этапу А33; в противном случае происходит переход к этапу А34;
этап А33: выделение из пакета данных поля 802.1Q, исправление порта получения пакета данных на сетевой VLAN порт, переход к этапу A34;
этап A34: определение, является ли порт получения пакета данных портом сетевого моста, и если он является, то происходит переход к этапу А35; в противном случае происходит передача на стек протоколов второго уровня Linux для обработки, после чего процедура заканчивается;
этап A35: пакет данных попадает на стек протоколов моста для обработки, и создается или обновляется список переадресации;
этап A36: определение, является целевой МАС-адрес пакета данных широковещательным или индивидуальным адресом, если он является широковещательным адресом, то происходит переход к этапу А39; в противном случае происходит переход к этапу A37;
этап А37: поиск списка переадресации в соответствии с целевым МАС-адресом пакета данных и информацией VLAN;
Этап A38: если в списке переадресации содержится сетевой VLAN порт, аналогичный целевому МАС-адресу, то происходит переход к этапу А40; при отсутствии происходит переход к этапу A39;
этап A39: в соответствии с информацией VLAN ID получающего пакет данных сетевого порта происходит получение списка ссылок VLAN порта сетевого моста, принадлежащего данному порту сетевого моста, и происходит лавинная адресация в направлении других сетевых портов в списке ссылок VLAN порта;
этап А40: определение местоположения сетевого VLAN порта, аналогичного целевому МАС-адресу, переадресация посредством порта сетевого моста;
этап А41: определение, является ли порт моста сетевым VLAN портом, если является, то происходит переход к этапу А42; в противном случае происходит переход к этапу А43;
этап А42: посредством стека протоколов 802.1Q добавляется соответствующий тэг 802.1Q, после чего происходит переход к этапу А43;
этап А43: пакет данных отправляется посредством сетевого порта;
этап А44: конец.
Настоящее изобретение позволяет на основе стэка протокола программного моста Linux во время осуществления обучения пунктам списка переадресации осуществлять обновление пунктов списка переадресации на основе информации и VLAN ID порта пакета данных; при решении о переадресации на целевой порт для принятия решения, кроме запрашиваемого целевого порта, также сравнивается информация VLAN пунктов списка и VLAN ID пакета информации, тем самым осуществляя VLAN функцию программного моста Linux.
Краткое описание изображений
Фигура 1 представляет собой схему последовательности процесса способа поддержки VLAN программным мостом Linux;
Фигура 2 представляет собой список ссылок порта VLAN сетевого моста ядра Linux;
Фигура 3 представляет собой схему последовательности поддержки программным мостом Linux настройки VLAN порта VLAN;
Фигура 4 представляет собой схему последовательности процесса поддержки программным мостом переадресации данных VLAN.
Конкретные варианты осуществления
Ниже приводится подробное объяснение настоящего изобретения, сопровождаемое изображениями и конкретными вариантами осуществления.
Средой осуществления настоящего варианта является сетевое оборудование со строенной системой Linux. Предположим, что сетевыми портами сетевого оборудования являются соответственно eth0, eth1, eth2, eth3, eth4, …, настройка VLAN показана ниже:
eth0: PVID составляет 100, в то же время он относится к VLAN 101, 102, 103, 104;
eth1: PVID составляет 101, в то же время он относится к VLAN 100, 102, 103, 104;
eth2: PVID составляет 102, в то же время он относится к VLAN 101, 100, 103, 104;
eth3: PVID составляет 103, в то же время он относится к VLAN 100, 102, 100, 104;
eth4: PVID составляет 104, в то же время он относится к VLAN 101, 102, 103, 100;
…
Как показано на Фиг. 1, способ поддержки VLAN программным мостом Linux, обеспечиваемый настоящим изобретением, включает следующие этапы:
этап А10: в ядре Linux сетевого оборудования создается сетевой мост br0 и сетевой порт VLAN (виртуальный порт ethx.xxx); сетевой порт (физический порт ethx, обладающий свойствами PVID) и сетевой VLAN порт добавляются на сетевой мост br0, образуя соответствующий VLAN порт сетевого моста (кратко называемый "порт сетевого моста"), который, как показано на Фиг. 1, осуществляет в ядре Linux обслуживание в форме группы списков ссылок порта VLAN. Например, в первой строке на Фиг. 1: VLAN 100 обозначает порт сетевого моста с VLAN ID=100, eth0 обозначает сетевой порт, eth1.100, eth2.100, eth3.100, eth4.100 обозначают сетевые VLAN порты, аналогичные портам сетевого моста.
Способ обслуживания списков ссылок порта VLAN осуществляется следующим образом:
(1) Одна группа портов сетевого моста с аналогичным VLAN ID образуется посредством списка ссылок одного порта VLAN, как показано в каждой строке на Фиг. 1;
(2) В число элементов структуры каждого порта сетевого моста входит информация заголовка списка ссылок, указывающая на принадлежащий данному порту сетевого моста список ссылок порта VLAN, которая используется для обхода всех портов во VLAN при лавинной адресации пакетов данных;
(3) При создании нового сетевого VLAN порта на сетевом мосту требуется создать новый список ссылок порта VLAN;
(4) При добавлении сетевого порта или сетевого VLAN порта на сетевой мост осуществляется поиск соответствующего списка ссылок порта VLAN в соответствии с PVID или VLAN ID порта сетевого моста, и порт сетевого моста добавляется в конец списка ссылок порта VLAN;
(5) При удалении сетевого порта или сетевого VLAN порта с сетевого моста осуществляется поиск соответствующего списка ссылок порта VLAN в соответствии с VLAN ID порта сетевого моста и обход элемента, соответствующего поиску списка ссылок порта VLAN, а также удаление его из списка ссылок порта VLAN.
этап А20: настраивается порт сетевого моста на сетевом мосту br0, создается или обновляется соответствующий список ссылок порта VLAN;
Порт сетевого моста содержит информацию сетевого порта и сетевого VLAN порта, при этом сетевой порт обладает свойствами PVID, a PVID представляет собой VLAN ID порта сетевого порта.
Как показано на Фиг. 2, этап А20 включает следующие этапы:
этап А21: посредством локальной страницы управления WEB сетевой порт (ethx) и VLAN ID вновь добавленного сетевого VLAN порта настраиваются в качестве виртуального порта (ethx.xxx) на базе 802.1Q, при этом сетевой VLAN порт настраивается на базе реального сетевого порта с диапазоном VLAN от 1 до 4095; посредством локальной страницы управления WEB настраиваются свойства PVID сетевого порта (ethx), в условиях отсутствия настройки PVID всех сетевых портов является 1;
этап А22: после добавления сетевого порта и вновь созданного сетевого VLAN порта на сетевой мост br0 (вновь добавленный порт сетевого моста) происходит определение, является ли данный порт сетевого моста сетевым портом, и если он является сетевым портом, то происходит получение PVID этого сетевого моста, после чего происходит переход на этап А23; если он является сетевым VLAN портом, то происходит получение VLAN ID этого сетевого VLAN порта и переход на этап А23;
этап А23: с VLAN ID или PVID в качестве индекса происходит поиск наличия соответствующего списка ссылок порта VLAN, и если он отсутствует, то создается новый список ссылок порта VLAN; если он существует, то к новому порту сетевого моста добавляется соответствующий список ссылок порта VLAN для осуществления обслуживания.
этап А30: с помощью сетевого моста br0 осуществляется переадресация данных на базе VLAN.
Как показано на Фиг. 3, этап А30 включает следующие этапы:
этап A31: получение сетевым портом ethx пакета данных;
этап A32: функция перехвата в ядре Linux проверяет, прилагается ли к данному пакету данных тэг 802.1Q, и если типом протокола пакета данных является 802.1Q, то происходит переход к этапу А33; если тип пакета данных не является 802.1Q, то происходит переход на этап А34;
этап А33: посредством стека протокола 802.1Q осуществляется обработка пакета данных и выделение из пакета данных поля 802.1Q, исправление порта получения пакета данных на сетевой VLAN порт (ethx.xxx), переход к этапу А34;
этап А34: определение, является ли порт получения пакета данных портом сетевого моста, если является, то происходит переход к этапу А35; в противном случае происходит передача на стек протоколов второго уровня Linux для обработки, после чего процедура заканчивается;
этап A35: пакет данных попадает на стек протоколов моста для обработки, и внутри сетевого моста br0 происходит поиск списка переадресации на основе изначального МАС-адреса пакета данных и информации VLAN; если он отсутствует, то происходит добавление пункта списка переадресации, если он существует, то происходит обновление отметки времени пункта списка переадресации;
этап A36: определение, является целевой МАС-адрес пакета данных широковещательным адресом или индивидуальным адресом, если он является широковещательным адресом, то происходит переход к этапу А39; если целевой МАС-адрес пакета данных является индивидуальным адресом, то происходит переход к этапу A37;
этап A37: поиск списка переадресации в соответствии с целевым МАС-адресом пакета данных и информацией VLAN;
Этап A38: если в списке переадресации содержится сетевой VLAN порт, аналогичный целевому МАС-адресу, то происходит переход к этапу А40; при отсутствии происходит переход к этапу A39;
этап А39: в соответствии с информацией VLAN ID получающего пакет данных сетевого порта происходит получение списка ссылок VLAN порта сетевого моста, принадлежащего данному порту сетевого моста, и происходит лавинная адресация в направлении других сетевых портов в списке ссылок VLAN порта;
этап А40: определение местоположения сетевого VLAN порта, аналогичного целевому МАС-адресу, переадресация посредством порта сетевого моста;
Благодаря созданию списка ссылок порта VLAN диапазон лавинной адресации широковещательного пакета ограничивается между портами программного моста с аналогичным разграничением VLAN;
Этап А41: определение, является ли порт сетевого моста сетевым VLAN портом, и если является, то происходит переход к этапу А42; в противном случае происходит переход к этапу А43;
этап А42: посредством стека протоколов 802.1Q добавляется соответствующий тэг 802.1Q, после чего происходит переход к этапу А43;
этап А43: пакет данных отправляется посредством сетевого порта;
этап А44: конец.
Настоящее изобретение не ограничивается описанным выше предпочтительным вариантом осуществления, и каждый человек должен знать, что изменения конструкции, вдохновленные настоящим изобретением, и любые аналогичные или близкие к настоящему изобретению технические решения также попадают в диапазон защиты настоящего изобретения.