OpenWrt

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
OpenWrt
Изображение логотипа
Разработчик Gábor Juhos[d], Florian Fainelli[d], Hauke Mehrtens[d][2] и Jo-Philipp Wich[d]
Первый выпуск 6 января 2004
Последняя версия
Метод обновления opkg[d]
Менеджеры пакетов opkg[d]
Поддерживаемые платформы x86, AVR32, ARM, ETRAX CRIS[d], Motorola 680x0, MIPS, PowerPC, SPARC, SuperH, Ubicom[d] и x86-64
Лицензия GNU GPL 2[3]
Репозиторий исходного кода git.openwrt.org
Веб-сайт openwrt.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

OpenWrt (Open Wireless router) — встраиваемая операционная система, основанная на ядре Linux, предназначенная, в первую очередь, для домашних маршрутизаторов (роутеров, от англ. router). Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl[4] и BusyBox. Размер всех компонентов оптимизирован в связи с тем, что в большинстве домашних маршрутизаторов сильно ограничен объём памяти.

Исторически для настройки OpenWrt используется интерфейс командной строки, однако одной из опций является веб-интерфейс (он включен для большинства устройств в стандартном дистрибутиве OpenWrt), также предоставляющий возможности по настройке OpenWrt, хотя и менее полные. Техническая поддержка традиционно осуществляется с помощью форума и IRC-канала.

История[править | править код]

Проект OpenWrt был начат в 2004 году после того, как Linksys создала прошивку для своих беспроводных маршрутизаторов популярной в то время серии WRT54G с открытым исходным кодом, лицензированным по Стандартной общественной лицензии GNU. В соответствии с условиями этой лицензии Linksys должна была сделать исходный код своей модифицированной версии доступным по той же лицензии, что позволило независимым разработчикам создавать свои производные версии.

Изначально поддержка ограничивалась серией Linksys WRT54G (англ. Linksys WRT54G series), но постепенно расширилась и включает в себя чипсеты других производителей, в том числе и x86. Наиболее популярными в рамках проекта долгое время являлись серии Linksys WRT54G и Asus WL500G.

LEDE[править | править код]

В 2016 году восемь активных разработчиков OpenWrt вышли из проекта и создали собственный форк LEDE (англ. Linux Embedded Development Environment). Это решение было ими принято из-за нерешённых проблем управления в проекте OpenWrt, накопившихся за долгое время[5]. В 2017 году вышел первый релиз LEDE, а в 2018 году оба проекта (OpenWrt и LEDE) объединились на принципах разработки, отработанных в LEDE: предсказуемый цикл разработки, более либеральные по сравнению с прежним OpenWrt правила приёма изменений в код, прозрачный и публичный процесс принятия решений[6].

Особенности[править | править код]

Главной отличительной особенностью OpenWrt является полная поддержка файловой системы JFFS2, которая позволила устанавливать дополнительное программное обеспечение из репозитория OpenWrt (для этого ранее использовался менеджер пакетов ipkg[en], ныне — opkg[en]). Это позволило сделать OpenWrt легко настраиваемой операционной системой, адаптируемой для конкретного применения. В версиях для маршрутизаторов, имеющих объём флеш-памяти 4 Мб и больше, обычно используется и файловая система SquashFS для хранения неизменной системы, и оверлей на файловой системе JFFS2 (оверлей — совмещение изменяемых и неизменяемых файлов в одном каталоге). В таком случае менее эффективно используется пространство, так как изменения хранятся в отдельном разделе, но оверлей позволяет легко произвести откат к настройкам по умолчанию.

Стандартная прошивка предоставляет базовый набор функций, а в постоянно разрабатываемой версии «trunk» отсутствует предустановленный веб-интерфейс. Для расширения функциональности используются (дополнительные) пакеты. В обзорах отмечается неудобство веб-интерфейса для неопытных пользователей[7][8].

Настройка OpenWrt производится с помощью командной строки (с оболочкой ash), набора скриптов UCI (Unified Configuration Interface — унифицированный интерфейс конфигурирования), или основанного на нём веб-интерфейса LuCI Архивная копия от 6 октября 2014 на Wayback Machine. В репозитории доступно более 3500 пакетов программ, доступных для установки с помощью системы управления пакетами opkg[en].

Типы поддерживаемых подключений[править | править код]

Благодаря возможности самостоятельной компиляции прошивки (в том числе и ядра), использование OpenWrt позволяет реализовать практически все известные методы организации сетей. По умолчанию в готовых официальных дистрибутивах возможно использование следующих подключений:

  • Static IP
  • DHCP Client
  • PPTP
  • PPPoE (в том числе и DualAccess PPPoE[9])

UCI и LuCI[править | править код]

Для традиционной настройки Unix-подобных систем необходимо заполнение большого количества текстовых файлов конфигурации, большинство которых имеет различный синтаксис, и вызов большого количества утилит командной строки с разнообразными параметрами, что требует создания и отладки достаточно сложных скриптов (сценариев).

Вместо этого OpenWrt предлагает унифицированный интерфейс конфигурации UCI Архивная копия от 7 ноября 2017 на Wayback Machine (англ. Unified Configuration Interface), позволяющий управлять большинством системных параметров с помощью единого синтаксиса файлов конфигурации и командной строки.

Файлы конфигурации UCI находятся в ветке /etc/config и в общем случае не предназначены для редактирования человеком. Для просмотра и изменения параметров конфигурации служит утилита uci. При выполнении команд uci set создаётся временная конфигурация, рабочая же конфигурация не изменяется. Команда uci revert отменяет изменения, сделанные во временной конфигурации, что также не затрагивает рабочей. Фактическое применение конфигурации происходит только по команде uci commit, которая переводит унифицированное описание конфигурации во взаимно-связанное, непротиворечивое состояние традиционных файлов конфигурации и сценариев.

Стандартный web-интерфейс LuCI Архивная копия от 27 октября 2017 на Wayback Machine (англ. Lua Configuration Interface — интерфейс конфигурации на Lua) использует UCI для получения сведений о системе и внесения изменений в её конфигурацию.

X-Wrt[править | править код]

Родственный проект X-Wrt является расширением OpenWrt для конечного пользователя[7][10]. OpenWrt является базовой системой с минимальным веб-интерфейсом для настройки опций. Основным расширением X-Wrt является webif²[11], веб-интерфейс, имеющий около 40 страниц с опциями настройки маршрутизатора. Webif² включает в себя графики сетевого трафика и системного мониторинга, страницы настройки и контроля сети, беспроводного соединения и безопасности. Настройки предусмотрены для следующих сервисов: ведение логов, загрузка, cron, NVRAM, редактирование текста, управление ipkg[en], SNMP, резервное копирование и восстановление, обновление прошивки, WAN, VLAN, Wi-Fi, WEP, WPA, WDS, MAC filtering, Firewall, Port forwarding, DHCP, Dnsmasq, Hostnames, IP control, Routing, UPnP, QoS, DynDNS, Wake-on-LAN, OpenVPN, PPTP и точка доступа Wi-Fi.

Примечания[править | править код]

  1. OpenWrt 23.05.3 - Service Release - 25. March 2024 — 2024.
  2. https://openwrtsummit.files.wordpress.com/2018/11/hauke-mehrtens.pdf
  3. https://github.com/openwrt/openwrt/blob/master/COPYING
  4. Felix Fietkau. OpenWrt switches to musl by default. OpenWrt Development List (16 июня 2015). Дата обращения: 16 июня 2015. Архивировано из оригинала 17 июня 2015 года.
  5. Активные разработчики OpenWrt основали форк дистрибутива : [арх. 5 мая 2016] // OpenNET. — 2016. — 3 мая.
  6. Проекты OpenWrt и LEDE объявили о слиянии : [арх. 6 января 2018] // OpenNET. — 2018. — 3 января.
  7. 1 2 Осколков И. Просто добавь функционал : Альтернативные прошивки для роутеров : [арх. 14 июня 2012] // 3DNews. — 2011. — 5 мая.
  8. Эдвардс Дж. По беспроводным волнам : [арх. 4 января 2014] // WindowsIT PRO/RE. — Открытые Системы, 2006. — № 4.
  9. OpenWRT — Настройка Dual Access (Russian) PPPoE Архивная копия от 1 августа 2013 на Wayback Machine Денис Юрьев, Блог? Не-не-не.., 28 июня 2013 года.
  10. Linux Format, 2007.
  11. Process Lasso. Архивировано из оригинала 13 октября 2007 года.

Ссылки[править | править код]