Граничный роутер 6LoWPAN

6LBR — граничный роутер 6LoWPAN

В предыдущей статье мы рассмотрели основные характеристики и особенности сетей 6LoWPAN и ZigBee. Сейчас же рассмотрим более подробно одну из основных составляющих 6LoWPAN — граничный роутер, позволяющий подключить беспроводные узлы к традиционной IP-сети. Рассмотрим более подробно одну его реализацию — 6LBR.

Проект 6LBR (акроним от 6LoWPAN Border Router) был разработан бельгийским исследовательским институтом CETIC, как ответвление проекта Contiki OS. Скачать последнюю версию (на момент написания статьи 1.4.0), а также ознакомится с документацией в соответствующей wiki можно на GitHub, также как и его родителя.

Принцип работы

Граничный роутер должен включать 2 среды передачи данных для обеспечения возможности передачи данных и непосредственно само приложение обеспечивающее передачу данных между ними. Для работы приложения требуется вычислительное ядро. В итоге можно выделить следующие составляющие необходимые для аппаратной реализации (рассмотрим их последовательно для случая передачи данных из традиционной IP-сети в сеть 6LoWPAN):

  • контроллер/приёмопередатчик Ethernet,
  • вычислительное ядро для обработки пакетов,
  • контроллер/приёмопередатчик сети 802.15.4,

6lbr-top-medium

Аппаратная релиазация

Т.к. практически не существует одночиповых решений включающих все три основных составляющих, то приходится реализовывать систему на отдельных компонентах. При этом традиционно используется подход при котором контроллер Ethernet включён в один кристалл с вычислительным ядром (в качестве примеров можно назвать множество представителей МК и СнК из семейств Cortex-M/A/R, а также ряд других архитектур). В ряде случаев это достигло таких масштабов, что некоторые семейства процессоров уже практически не воспринимаются без сетевых контроллеров. Себестоимость и габариты при этом также постоянно снижаются, а производительность растёт. Также последнее время явно заметна тенденция, по которой происходит объединение ядра МК и беспроводного приёмопередатчика. В значительной степени это также объясняется технологическим процессом. В текущий момент производительность, энергопотребление, габариты и цена достигли таких значений, что позволяют реализовать на таких СнК каждый отдельный узел беспроводной сети в массовых масштабах. Этот же самый подход может быть применим и к граничным роутерам. В результате встаёт вопрос о распределение ролей в общем функционале.

CETIC 6LBR использует 2 уровень модели OSI/ISO (Ethernet и 802.15.4), 3 уровень (IPv6/6LowPAN) и 4 уровень (ICMPv6/RPL) для маршрутизации пакетов. Ранее часто применялся подход при котором за каждую функцию отвечал отдельный компонент. Например, контроллер Ethernet мог быть выполнен в виде отдельной микросхемы (MAC+PHY), основное ядро маршрутизатора было реализовано на процессоре (МК), передачей данных в радиоэфир занимался приёмопередатчик, а его управлением занимался ещё один  МК, традиционно предоставляемый фирмой производителем приёмопередатчика. Итого 4 микросхемы. Сейчас же по вышеописанным причинам возможна ситуация когда вся система строится на 2 микросхемах (МК/МП с Ethernet + приёмопередатчик). Возможно, что приёмопередатчик строится на СнК включающей МК обрабатывающий определённые уровни сети, в частности это могут быть 802.15.4 (2 ур.) и 6LowPAN (3 ур.). В этом случае значительно упрощается работа для основного ядра системы. Ему достаточно только передавать/принимать данные в/из порта СнК беспроводного приёмопередатчика. Для управления физическим уровнем Ethernet может применяться дополнительная микросхема, т.к. зачастую контроллер не встраивается в МК/МП (встраивают только MAC-уровень). Но всё равно решение получается более простое и компактное.

В настоящий момент поддерживается порядка 30 различных платформ, среди которых есть как наиболее универсальные и распространённые , так и новые системы на кристалле. Т.к. исходные коды открыты, то можно портировать проект на интересующую платформу. Видно, что интерес к этому есть не только со стороны сообщества, но и со стороны разработчиков и производителей электроники. В качестве примера можно назвать новое поколение CC13xx/CC26xx от Texas Instruments и поддерживающего их отладочного комплекта SmartRF06 EVK. Официальная поддержка их проектом 6LBR появилась практически с выходом продукта на рынок в прошлом году. Как следствие, можно сделать вывод, что была произведена предварительная работа по портированию.

Программная реализация

Уже сейчас 6LBR пригоден для промышленного внедрения. Существуют сборки под множество платформ. При этом нет необходимости быть экспертом в Contiki-OS, которая, стоит отметить, не столь проста для понимания неподготовленными лицами. Для запуска граничного роутера 6LBR достаточно базовых навыков в linux (работа в консоли, установка пакетов, правка текстовых конфигурационных файлов). Процедуру запуска роутера 6LBR мы рассмотрим позднее (в статье). Пока же обратим своё внимание на другие аспекты.

6LBR может работать в качестве моста, просто добавляя все подключённые к нему беспроводные узлы в ту же сеть, что и Ethernet, или же в режиме маршрутизатора организуя дополнительную сеть для беспроводных узлов и управляя всеми пакетами проходящими между этими сетями. Более подробно ознакомиться в режимами работы сети можно в соответствующем разделе wiki.

Структурная схема сети с граничным роутером в режиме моста

Структурная схема сети с граничным роутером в режиме маршутизатора.

6LBR построен на стеке uIP (micro IP) оптимизированном с точки зрения выделяемой оперативной памяти под портативные применения и в оригинале был разработан под 8 и 16 битные архитектуры МК. В настоящий момент поддерживается в рамках Contiki OS. Кроме непосредственно службы маршрутизатора, работающей по RPL,  в состав 6LBR входит также и web-сервер позволяющий конфигурировать граничный роутер в удобном графическом режиме через браузер.

В заключении можно отметить, что 6LBR представляет собой достаточно простое законченное решение для реализации граничного роутера в сети 6LoWPAN. Данное решение построено на открытых стандартах и протоколах, оптимизированных под малое потребление энергии и ресурсов.