OpenWRT. Настройка сети
- Подробности
- Опубликовано 22.08.2016 06:45
Маршрутизатор мы перепрошили в прошлой статье, а теперь давайте рассмотрим, что из себя представляет сама OpenWRT.
В качестве командной оболочки, ввиду предположительно малого количества встроенной памяти, используется ash (вместо привычного многим bash). Ash имеет 24 встроенные команды, 10 опций командной строки, и является одной из самых маленьких оболочек для Unix.
В качестве пакетного менеджера, для загрузки и установки пакетов из репозитория OpenWRT, используется легковесный opkg (форк ipkg), вместо привычных apt-get, pacman, yum и т. д.
О команднах opkg можно почитать здесь: http://wiki.openwrt.org/doc/techref/opkg
В качестве редактора по умолчанию, используется vi, который довольно непривычен для начинающих (например, для выхода нужно ввести :q! , для выхода с сохранением :wq ). Прежде чем работать с vi, ознакомьтесь с данной статьей:
http://docs.altlinux.org/archive/2.3/junior/alt-docs-extras-linuxnovice/ch02s10.html
Если вам привычней работать с более простым nano — установите его, он не так много весит. Для начала обновим список пакетов:
:~# opkg update
И установим nano:
:~# opkg install nano
Работать с OpenWRT, как вы уже догадались, можно через командную оболочку, подключаясь по ssh, или же через веб-интерфейс LuCI — второй гораздо проще и интуитивно понятней, отлично подходит повседневной работы, но не имеет всей гибкости, достигаемой правкой конфига.
Настройка Wi-Fi
По умолчанию, в OpenWRT отключает Wi-Fi передатчик, так что подключим и настроим, для начала, его.
Перейдите на вкладку Network → Wi-Fi.
На вкладке «scan» доступны все найденные в области доступа сети. Таким образом, марщрутизатор на OpenWRT можно использовать как клиент, подключающийся к другой сети, и раздающий трафик на ваши устройства (в базовой прошивке TP-Link такой функции нет).
На вкладке «Add» - создадим собственную сеть:
Channel — канал по умолчанию. Если вкратце: на частоте 2.4GHz, имеется 11 каналов, и если, к примеру, ваш сосед замет 1-й канал, то работая на первом канале, вы получите куда худшее качество связи, чем при работе на 6-м. Полностью непересекающихся каналов только три — 1/6/11. Лучше выбрать режим auto — тогда роутер будет анализировать качество связи на каждом канале, и сам выбирать оптимальный вариант.
Transmit Power — мощность передатчика. Для такого бюджетного роутера, как у нас, рекомендуется понизить её с 27dBm до, хотя-бы, 24-25dBm, в особенности при обслуживании большого количества Wi-Fi клиентов, иначе он будет перегреваться и может периодически зависать.
ESSID — имя вашей сети.
Mode — режим работы (в большинстве случаев вам нужен Access Point, если же вы организуете mesh-сеть или большую домашнуюю Wi-Fi сеть из нескольких взаимных устройств, то вы и так знаете, какой режим вам нужен).
WMM — протокол QoS для обеспечения лучшего качества передачи мультимедийных файлов (распознавая трафик, в режиме WMM маршрутизатор будет присваивать файлам потокового видео/голоса высокий приоритет, что повысит их качество).
В Advanced Settings вы можете выбрать протокол, в котором работает ваш передатчик, а также ширину канала. Современные устройства работают на 802.11n, те что постарее — на b/g, так что выбирайте 802.11g+n, и ширину канала 40MHz.
На вкладке Wireless Security вы найдете настройки шифрования. Желательно выбрать WPA-PSK/WPA2-PSK Mixed Mode, а во вкладке Key — ваш пароль от сети.
Вот и все базовые настройки — жмите «Save & Apply» и в вашем доме вновь заработает Wi-Fi.
UCI
В OpenWRT есть собственная централизованная система для управления всеми элементами системы, также она имеет свой, довольно простой синтаксис. То есть вместо привычных конфигов Linux, используются файлы конфига UCI, в целом похожие на конфиги в вашем Linux. Стоит разобраться с UCI, и работать с OpenWRT станет гораздо легче.
Файлы конфигурации UCI лежат в /etc/config:
Для примера, настроим беспроводную сеть, конфиг которой лежит в файле wireless:
rm -f /etc/config/wireless
wifi detect > /etc/config/wireless
rm -f — удаляет имеющийся файл с настройкой.
Wifi detect — определяет информацию по железу (все авто-детектируемые опции файла wireless) и создает такой же файл, какой был у нас изначально, до настойки в веб.
Откроем /etc/config/wireless:
На примере этого файла, рассмотрим синтаксис uci.
config wifi-device radio0
option type mac80211
option channel 11
option macaddr b0:f3:c1:7e:4e:30
config — обозначает начало секции.
Wifi-device — тип объясняющий uci что что именно мы редактируем.
radio0 — имя, или идентификатор (то, какое именно устройство/интерфейс мы редактируем)
option — тип настроек, в данном случае опция. Также может быть list — составные настройки, в которые могут быть включены опции с множественными значениями
type/channel/macaddr — всё это типы настройки, которые входят в блок опций wi-fi-device.
Опции могут быть заключены в кавычки, двойные и одинарные (заключающая кавычка должна быть такой же, как и начинающая). И даже должны быть заключены, если в имени опции имеется пробел.
Теперь редактирует сам файл wireless:
Первый блок настроек отвечает за физическую составляющую, такую как mac-адрес, канал и его ширину, используемый стандарт и т. д. Все они детектируются автоматически, и большинство из них, кроме mac-адреса, можно поменять.
Option channel 11 — используемый канал. Допустимые значения — от 0 до 11, или «auto» (желательно) для автоматического определения канала.
Option hwmode 11ng — используемый стандарт, оставим без изменений. Допустимые значения: 11b, 11g, 11a и 11ng.
option htmode HT20 — ширина канала. В особо зашумленных сетях (в многоквартирном доме, например) не рекомендуется использовать широкий канал, но если ваша сеть единственная в округе, то можете сменить на HT40 — канал шириной 40MHz. Для стандартов 802.11ac (не в нашем случае) допустмы значения VHT80 / VHT160.
option disabled 1 — по умолчанию радиопередатчик заблокирован. Смените значение на 0, или просто удалите строку, чтобы его разблокировать.
Добавим также строку:
option txpower 25 — txpower принимает как аргумент численное значение равное мощности вашего передатчика в dBm.
Блок config 'wifi-iface' — задает настройки интерфейса, такие как режим работы, имя устройства и пароль:
option device radio0 — указывает, для какого устройства мы настраиваем интерфейс.
option mode ap — задает режим работы. Допустимые значения: ap — точка доступа / sta — клиент / adhoc / wds / monitor / mesh)
option ssid OpenWrt — задает имя (SSID) сети. Смените на желаемое (не забывая про кавычки)
option encryption none — настройки шифрования, по умолчанию отключены. Допустимые значения - wep для WEP, psk для WPA-PSK, или psk2 для WPA2-PSK. Желательно выбрать psk2.
option key 'пароль' — в режиме WPA2-PSK, задает пароль для сети.
Вот мы и настроили сеть также, как и настроили её ранее в веб-интерфейсе. Теперь, сохраните файл и примените настройки:
uci get wireless
И перезагрузить демон настройки сети:
/etc/init.d/network restart
После, беспроводная сеть вновь должна заработать.
Надеемся, на этом примере вы поняли базовые принциапы работы с UCI и настройки путем правки конфига. Выше, перечислены далеко не все функции, но многие из них специфичны и требуют особых драйверов. Больше о настройке файла wireless и полный список опций:
http://wiki.openwrt.org/doc/uci/wireless
Больше о работе и функций самой подсистемы UCI:
http://wiki.openwrt.org/ru/doc/uci