wi-fi

Программное обеспечение с открытым исходным кодом и беспроводное оборудование SOHO-сегмента

№ 4’2011
PDF версия
Статья посвящена роли программного обеспечения с открытым исходным кодом в развитии бюджетного беспроводного оборудования на основе технологии Wi-Fi.

Введение

Ориентированный на массового потребителя (Small Office/Home Office, SOHO) сегмент рынка беспроводного оборудования основан на устройствах для сетей Wi-Fi (стандарты IEEE 802.11a/g/n). При этом для удовлетворения самых разнообразных запросов пользователей производители часто дополняют базовую возможность развертывания Wi-Fi такими функциями, как поддержка технологий ADSL и 3G, подключение принтера и другой периферии к порту USB и т. д.

В настоящее время беспроводные точки доступа, маршрутизаторы, интернет-центры, WEB/IP-камеры и другие мультимедиа-гаджеты с поддержкой Wi-Fi выпускаются как брендовыми компаниями, так и менее известными. Для последних возможности организации такого производства связаны, прежде всего, с дешевизной и простотой соответствующих электронных компонентов. Еще одним важным фактором, обусловившим «бум» беспроводного оборудования класса SOHO, стало появление доступного программного обеспечения (ПО): большинство подобных устройств используют прошивки (firmware) на основе открытого и бесплатного ядра Linux [1] и сопутствующих утилит и программ.

 

О свободном ПО и Linux

Как известно, концепция свободного ПО (OpenSource, ПО с открытым исходным кодом) получила широкое развитие в середине 80-х гг. в рамках проекта GNU [2], а в начале 90-х началась разработка ядра Linux. В настоящее время это ядро перенесено на многие современные аппаратные платформы, поддерживает работу в Сети и на уровне исходных кодов совместимо с ПО других Unix-систем.

Дистрибутивы Linux не следует рассматривать как панацею и универсальное средство для решения всех проблем. Бесплатность ПО не отменяет расходы на его внедрение и сопровождение, в некоторых случаях превышающие стоимость собственно ПО. Совместимость Linux с различными микропроцессорами предполагает определенные компромиссы в вопросах быстродействия. Разработки ПО в духе OpenSource часто представляют собой процесс плохо формализуемый и слабо согласуемый с существующими стандартами качества в этой сфере и т. д.

Но несмотря на все недостатки, продукты с открытым исходным кодом вполне конкурентоспособны, и многие компании успешно строят бизнес на OpenSource-технологиях. В частности, успех Linux как системной платформы определяется перспективами его использования в качестве бесплатной альтернативы проприетарному ПО.

 

История и текущее состояние

В начале 2003 г. компания Linksys (подразделение корпорации Cisco Systems) представила свой очередной продукт — беспроводной маршрутизатор WRT45G. Данное устройство имело типичную функциональность для своего класса: входящее интернет-соединение (непосредственно по Ethernet-кабелю или от DSL-модема) распределялось на четырехпортовый коммутатор и антенну для отправки радиосигнала беспроводным клиентам [3].

Вскоре энтузиасты обнаружили в прошивке WRT54G компоненты ядра Linux. В том же году под давлением OpenSource-сообщества компания Linksys опубликовала исходные коды системного ПО этого беспроводного маршрутизатора в соответствии с требованием лицензии GPL, по которой распространяется Linux. Независимые разработчики, получив доступ к «исходникам», стали создавать альтернативные прошивки, существенно расширяющие программную функциональность аппаратного обеспечения WRT54G. Ввиду большого интереса пользователей к такому «открытому» подходу, в 2005 г. компания специально выпустила версию данного маршрутизатора (WRT45GL), полностью поддерживающую сторонние прошивки на основе Linux [4].

Вдохновленные успехом Linksys [5], многие производители стали использовать Linux в системном ПО сетевого оборудования [6, 7, 8, 9, 10]. Кроме того, в настоящее время существует определенное количество независимых проектов, предлагающих альтернативные прошивки для беспроводных устройств, такие как OpenWRT [11], DD-WRT [12] и т. д.

 

Открытая модель ПО для беспроводного оборудования

Типичное ПО для бюджетного беспроводного устройства может включать в себя:

  • функциональность точки доступа с возможностью шифрования WEP/WPA/WPA2;
  • клиент протокола RADIUS для режима аутентификации Enterprise;
  • сервер DHCP для автоматической настройки сетевых параметров клиентов (как проводных, так и беспроводных); также в некоторых случаях необходим DHCP-клиент;
  • возможности маршрутизации трафика и трансляции сетевых адресов (NAT);
  • межсетевой экран;
  • возможности создания клиентских VPN-туннелей (PPPoE, PPTP, L2TP);
  • DNS-клиент и DNS-сервер, работающий в режиме пересылки пакетов;
  • поддержку устройств, подключаемых по USB (3G-модема, принтера, накопителя и т. д.);
  • возможности создания беспроводной системы распределения (WDS, Wireless Distribution System) [13];
  • реализацию сервисных функций: интерфейса командной строки по протоколам Telnet/SSH, веб-интерфейса администрирования, поддержки протоколов SNMP и Syslog, возможности замены прошивки, синхронизацию времени и т. д.

Ядро Linux версии 2.6.x является мощным инструментом, содержащим необходимые средства поддержки проводных, беспроводных и туннельных сетевых интерфейсов, маршрутизации и межсетевого экранирования. Режим точки доступа (Master) обычно обеспечивается службой hostapd [14], которая реализует управление точкой доступа 802.11, аутентификацию IEEE 802.1X/WPA/WPA2/EAP, клиента и сервера протокола RADIUS, а также сервера EAP. Мост между сетевыми интерфейсами может быть создан средствами пакета Bridge-utils [15]. Для управления сетевыми возможностями используется ряд дополнительных утилит: Wireless Tools (беспроводная сеть) [16], iproute2 (маршрутизация) и iptables (трансляция сетевых адресов и межсетевое экранирование).

Открытые продукты ISC DHCP [17], udhcp [18] применяются для обеспечения работы протокола DHCP. Поддерживает функции DHCP-сервера также DNS-прокси Dnsmasq [19]. VPN-подключения обеспечиваются стандартными пакетами PPP, PPTP-client, PPPOE, L2TP. Легковесным средством интерфейса командной строки с функциональностью, заменяющей типичные Unix-утилиты, является BusyBox [20]. Другие сервисные задачи, работа с периферийными устройствами и т. д. также могут быть реализованы средствами свободного ПО.

Важным компонентом прошивки является также загрузчик (Bootloader), который выполняет функции инициализации оборудования при включении, загрузке и передаче управления основному ПО [21]. Используя средства загрузчика, можно восстановить работоспособность устройства в тех случаях, когда прошивка повреждена, несовместима с данным аппаратным обеспечением или в ней есть программные ошибки. Разумеется, существуют загрузчики, распространяемые в рамках свободных лицензий.

Фактически разработчики ПО для беспроводного оборудования могут выбирать из существующего разнообразия OpenSource-продуктов те, которые соответствуют их требованиям. Собственные разработки вполне реально ограничить оригинальным веб-интерфейсом администрирования и средствами взаимодействия ядра операционной системы с аппаратным обеспечением.

Последняя задача, связанная с переносом Linux на специализированное «железо», является в определенной степени трудоемкой. В отличие от универсальных Intel-совместимых персональных компьютеров/ноутбуков, альтернативные аппаратные платформы более разнообразны и их спецификации отличаются от производителя к производителю. Так, в беспроводном оборудовании используется широкий спектр микропроцессорных платформ, таких как MIPS, ARM, AVR32, PowerPC и т. д. В проектировании бюджетных Wi-Fi-устройств часто используются «системы-на-кристалле» (System-on-a-Chip, SoC) [22] — микросхемы, совмещающие в одном корпусе микропроцессор, сигнальный процессор, микросхемы памяти, модули ADSL, Ethernet, Wi-Fi и т. д. Чипы SoC предлагают компании Atheros, Realtek, Broadcom и др.

 

Альтернативные прошивки

Следует отметить, что системное ПО, созданное независимыми разработчиками, имеет ряд особенностей, связанных с повышенными требованиями к аппаратуре и ограниченным количеством поддерживаемых устройств. Например, на некоторых устройствах с 2 Мбайт постоянной памяти можно установить лишь «микро» версию DD-WRT; похожая ситуация с совместимостью у OpenWRT. Тем не менее конечный пользователь в совокупности с достаточно мощным оборудованием (в рамках рассматриваемого сегмента), поддерживающим одну из независимых прошивок, получает в свое распоряжение гибкое и расширяемое сетевое решение.

Проект OpenWRT имеет базу более чем из двух тысяч дополнительных приложений и собственную систему управления пакетами ipkg (в новых версиях opkg). ПО содержит расширенные возможности управления сетью: подключение нескольких интернет-каналов, балансировка нагрузки между ними, средства получения подробной сетевой статистики. Имеются также средства прикладного программирования (OpenWRT SDK). Стандартный административный веб-интерфейс можно заменить одной из альтернативных версий (X-Wrt [23] или Gargoyle [24]). Аналогичные возможности присутствуют и у проекта DD-WRT. К особенностям DD-WRT следует отнести поддержку «из коробки» режима Hotspot на основе HTTP-аутентификации.

 

Заключение

Сегмент SOHO беспроводного оборудования является одним из примеров положительного влияния OpenSource. Решения на основе Linux позволили производителям снизить себестоимость своих продуктов. Конечные пользователи получили возможность расширять функциональность беспроводных точек доступа и маршрутизаторов за счет использования альтернативного ПО. Дальнейшие перспективы развития программного обеспечения с открытым исходным кодом в данной области напрямую зависят от желания и усилий компаний — производителей перспективного аппаратного обеспечения (IEEE 802.11n, WiMAX, 3G и т. д.) по продвижению открытых решений и сотрудничеству с OpenSource-сообществом.

Литература
  1. Linux kernel.
  2. GNU Operating System.
  3. Weiss A. The Open Source WRT54G Story // Wi-Fi Planet. Nov. 2005.
  4. Linksys WRT54G series.
  5. LinkSys by Cisco GPL Code Center.
  6. D-Link GPL Source Code Support.
  7. TP-Link GPL Code Center.
  8. TrendNet Downloads.
  9. Netgear GPL Open Source Code for Programmers.
  10. Zyxel GPL-OSS Software Notice.
  11. OpenWRT — Wireless Freedom.
  12. DD-WRT.
  13. Wireless distribution system.
  14. IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator.
  15. Bridge utils.
  16. Wireless Tools for Linux.
  17. ISC’s DHCP software.
  18. Udhcp.
  19. Dnsmasq.
  20. BusyBox: The Swiss Army Knife of Embedded Linux.
  21. The Bootloader.
  22. System-on-a-chip.
  23. OpenWrt for end users. /какой-то китайский сайт/
  24. Gargoyle: A free firmware upgrade for your wireless router.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *