Роутер TP-Link TL-W841N/ND в качестве ретранслятора Wi-Fi сигнала

Router

Для меня кухня является местом приёма пищи и не более того. И даже то, что Wi-Fi моей локальной сети не добивает до кухни, которая расположена к кирпичной вставке панельного дома, меня ничуть не расстраивает. Но моя жена не разделяет мои взгляды, потому что для неё кухня — это то самое место, где она любит проводить время, и отсутствие там Интернета доставляет ей определённые неудобства. И если, например, телефон в каком-то месте на кухне еле-еле ловит сигнал, то поработать на ноутбуке уже не представляется возможным. В общем-то, не составляет труда настроить на кухне ещё один роутер, но основная проблема заключается в трудности прокладки кабеля. Собственно, именно по этой причине я до сих пор и не обеспечивал кухню Интернетом. Но тут, видимо, у жены чаша терпения переполнилась, и она открытым текстом потребовала Интернет на кухне. А так как кабель протянуть на кухню затруднительно, я решил попробовать выкрутиться из положения иначе. Я предположил, что если на полпути к кухне поставить Wi-Fi ретранслятор, то ситуация будет спасена. Наверное, в природе существуют специализированные устройства для этих целей, но у меня такого устройства «под рукой» не было, зато был роутер TP-Link TL-W841N, который по акции мне любезно предоставил мой провайдер — компания VladLink, и который почти год лежал и ждал своего звёздного часа. И вот этот час наступил…

В общем-то, с самого начала на стандартную прошивку я не возлагал никаких надежд и первым же делом решил залить в роутер OpenWRT — продвинутую прошивку, базирующуюся на Linux’е. То, что OpenWRT под эту модель существует, я уже знал заранее, так как интересовался данным вопросом. И вот настало время залезть на сайт проекта OpenWRT и скачать нужную прошивку. Скачал, и уже довольный приготовился прошивать её в роутер, да не тут-то было! Во VladLink’е тоже не дураки сидят — зачем раздавать чуть ли не задаром устройства, которые потом можно задействовать ещё где-то или перепродать! В роутере была залита специальная версия прошивки, которая сделана по заказу компании VladLink, из неё были вырезаны все протоколы, кроме одного, используемого в сети VladLink, а заодно заблокирована всяческая возможность залить в роутер любую другую прошивку, включая заводскую. Погуглив, я нашёл статью, которая должна была мне помочь. Но, к сожалению, этот способ на моём роутере не прошёл, так как там использовалась прошивка более свежей версии, в которой, очевидно, возможность прошивания через TFTP заблокирована. С помощью программы Wireshark, прослушав интерфейс, я удостоверился, что TPFP на этой прошивке не запускается.

Что ж, значит нужно прошиваться через COM-порт, расположенный на плате роутера. Благо, что у меня для подобных целей был припасён преобразователь USB-COM:

Converter

Но для того, чтобы добраться до этого порта необходимо прежде всего разобрать корпус, а на нём визуально никаких болтов не видно. Как и ожидалось, болты расположены под резиновыми ножками, при чём только под двумя:

Back

Открутив болты я понял, что детали корпуса по-прежнему плотно прикреплены друг к другу. По сути, болты и не нужны вовсе чтобы обеспечить цельность всей конструкции. То, что там используются защёлки, было понятно изначально, но не было понятно сколько их, в каких местах они расположены, и какая у них конструкция. Мне совсем не хотелось применить излишнюю силу и ломать корпус, но, помучившись, я всё-таки справился с защёлками — их оказалось семь штук:

Mainboard

Cover

Я начал отщёлкивать их, начиная с тех, которые расположены около антенн. Для этого верхнюю крышку нужно как бы вжимать к центру корпуса и одновременно тянуть вверх. После этих двух защёлок, через образовавшуюся щель, я тонкой и длинной отвёрткой отщёлкнул и остальные. Должен сказать, что этот роутер совсем не предназначен для разборки. Не уверен, что если я в следующий раз буду разбирать этот или аналогичный роутер, то я не отломаю 1-2 защёлки.

Zaschelki

И вот плата лежит передо мной. Разъём СОМ-порта, конечно же, не распаян — на плате вместо разъёма только зияют аккуратные дырочки. Я решил не лезть с паяльником в роутер и подключил преобразователь, вставив в отверстия небольшие отрезки от канцелярской скрепки:

Pins

Обращаю внимание, что для подключения преобразователя используются только три контакта GND, Rx и Tx. Причём Rx и Tx подключаются с перехлёстом:

wr841nv8_serial_usb_link

Я не буду в подробностях описывать процесс прошивания через СОМ-порт, так как инструкций в Интернете предостаточно, например, вот одна из них с официального сайта OpenWRT. Единственное, я замечу, что я делал всё под Ubuntu с помощью программы gtkterm, подключившись к /dev/ttyUSB0 и, предварительно, настроив и запустив TFTP-сервер. Обе программы есть в стандартном репозитории Ubuntu.

И вот, наконец, у меня на руках роутер с полноценной прошивкой. Осталось лишь настроить её нужным мне образом. И вот тут мне пришлось помучиться. Чего я только не делал, но настроить именно так, как было изначально запланировано, у меня никак не получалось. Я сходу и без проблем настроил TL-W841N в качестве роутера со своей подсетью, то есть он принимал сигнал по Wi-Fi и потом раздавал Интернет по всем интерфейсам, включая Wi-Fi, в свою собственную подсеть, которую сам же и организовал. В общем-то, главная цель была достигнута — Интернет на кухне появился. Но при таком раскладе, устройства, подключенные к этому роутеру, не видели ресурсы локальной сети и должны были довольствоваться только Интернетом. Однако такой результат меня не удовлетворил, и я продолжил изыски, которые, в конечном итоге, увенчались полным успехом. Оказалось, что ключевым моментом в этой затее является пакет relayd, который нужно устанавливать на роутер дополнительно.

Итак, для начала нужно добиться, чтобы на самом роутере появился Интернет. Для этого роутер нужно подключить привычным образом к сети, то есть источник Интернета подключить к WAN-порту, а компьютер, с помощью которого будет производиться настройка роутера, к одному из LAN-портов. Необходимо это для того, чтобы установить тот самый пакет, даже два, без которых Wi-Fi-ретранслятор работать не будет:

Packages

Заодно можно поставить и русский перевод для интерфейса:

Packages_Rus

То же самое можно сделать, подключившись через SSH и дав следующие команды:

opkg update
opkg install relayd luci-proto-relay luci-i18n-russian
/etc/init.d/relayd enable

Теперь всё готово к дальнейшей настройке ретранслятора. Но для начала нужно определиться и выделить два IP-адреса из диапазона, который не раздаётся по DHCP. Эти адреса в процессе настройки будут присвоены разным интерфейсам нашего ретранслятора.

Далее я буду приводить реальные настройки моего ретранслятора, исходя из следующих данных:

  • Мой основной роутер (на самом деле это сервер) расположен по адресу 10.0.0.1
  • Адреса по DHCP выдаются в диапазоне 10.0.0.100-10.0.0.199, поэтому для моего ретранслятора я выбрал два адреса 10.0.0.4 и 10.0.0.5
  • Имя основной Wi-Fi точки доступа — Speccy
  • Имя точки доступа, которая будут раздавать Интернет на кухне — Speccy-Kitchen

Начинать нужно с настройки двух Wi-Fi-интерфейсов. Один является клиентом и подключается к точке Speccy, а второй работает в режиме точки доступа и имеет имя Speccy-Kitchen. Это всё можно настроить через web-интерфейс, а проконтролировать настройки — в файле /etc/config/wireless:

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11g'
	option path 'platform/ar934x_wmac'
	option disabled '0'
	option channel '7'
	option htmode 'HT40'
	option country 'RU'
	option txpower '20'

config wifi-iface
	option network 'wwan'
	option ssid 'Speccy'
	option encryption 'psk2'
	option device 'radio0'
	option mode 'sta'
	option bssid 'C0:4A:22:85:58:AE'
	option key 'PasswordForSpeccy'

config wifi-iface
	option device 'radio0'
	option mode 'ap'
	option ssid 'Speccy-Kitchen'
	option network 'lan'
	option encryption 'psk-mixed'
	option key 'PasswordForSpeccy-KitchenAccess'

Далее настраиваем сетевые интерфейсы. Чтобы не ошибиться их проще прописать прямо в конфиг, через SSH. Для этого нужно подать команду:

vim /etc/config/network

В открывшемся окне необходимо отредактировать файл настроек следующим образом:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'lan'
	option ifname 'eth1 eth0'
	option type 'bridge'
	option proto 'static'
	option ipaddr '10.0.0.4' #Первый выделенный адрес
	option gateway '10.0.0.1' #Адрес основного роутера
	option netmask '255.255.255.0'
	option dns '10.0.0.1' #Адрес основного роутера
	option delegate '0'
	option broadcast '10.0.0.255' #Адрес основного роутера, но на конце 255

config interface 'wwan'
	option proto 'static'
	option ipaddr '10.0.0.5' #Второй выделенный адрес
	option netmask '255.255.255.0'
	option delegate '0'

config interface 'stabridge'
	option proto 'relay'
	option ipaddr '10.0.0.5' #Второй выделенный адрес
	option delegate '0'
	list network 'lan'
	list network 'wwan' 

Для тех, кто впервые видит редактор vim, я сообщу, что для сохранения изменений и выхода, необходимо нажать клавишу ESC и после этого набрать :wq, завершив ввод клавишей Enter.

Теперь нужно отключить на роутере DHCP, для этого редактируем файл /etc/config/dhcp:

config dhcp 'lan'
	option interface 'lan'
	option ignore '1'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

Ну и напоследок отключаем Firewall:

/etc/init.d/firewall stop
/etc/init.d/firewall disable

После всех настроек интерфейсы через web должны выглядеть приблизительно так:

Interfaces

По идее всё должно заработать, возможно, даже не потребуется перезагрузка роутера. Однако у меня после таких настроек сам роутер потерял Интернет. Это значит, что исчезла возможность синхронизировать время по NTP, а также загружать и устанавливать дополнительные пакеты. Выяснилось, что проблема в DNS — не резолвятся имена. Проблема решилась удалением dnsmasq:

rm /etc/init.d/dnsmasq

Стоит отметить, что ретранслятор доступен через web и SSH по двум выделенным адресам с любого устройства, подключенного непосредственно к этому роутеру по Wi-Fi или кабелем. Но первый адрес (в моём случае 10.0.0.4) становится недоступен для устройств, которые находятся в той же сети, но не имеют непосредственного подключения к данному роутеру.

Ну вот и всё — моя цель достигнута. Роутер принимает Wi-Fi сигнал, после чего передаёт его дальше. Теперь на кухне, где ранее Интернет совсем не ловился, есть связь на вполне приличной скорости, которая позволяет смотреть даже 720p рипы с сервера, расположенного в локальной сети. При этом я обошёлся без прокладки кабеля.

Ну и напоследок результаты SpeedTest, полученные на ноутбуке, стоящем на кухне:

4335615707

Оставить ответ

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

Защита от спама * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.