В условиях загородного дома тоже хочется иметь качественный и быстрый доступ в интернет.
К сожалению, проводной интернет за городом не всегда возможен ввиду отсутствия проводов (телефонных и/или сетевых от провайдера интернета). А даже при наличии телефонных проводов в доме и установленного на АТС оборудования ADSL, состояние «последней мили» таково, что передача данных по технологии ADSL невозможна (или возможна на таких низких скоростях, что провайдеру ADSL это совершенно не интересно).
В такой ситуации на выручку приходит беспроводной доступ в интернет.
Но и с ним не так все оказывается просто, как того бы хотелось.
Некоторое время назад в нескольких километрах от моего загородного дома Yota установила свою базовую станцию и, судя по карте охвата, мой дом оказался в «зоне уверенного приема» этой сети.
Попытки использования USB-модема от Yota показали неудовлетворительный результат: даже на балконе третьего этажа обращенного к базовой станции уровень сигнала чрезвычайно мал, скорости обмена данными 100-200 килобит в секунду (то есть меньше 25 килобайт в секунду).
Как раз в это время Yota начала продажи своего нового устройства — уличного модема «Yota Street».
Плюсы этого устройства:
Казалось бы, просто сказка. Включил и наслаждайся. Но, коротким было счастье.
Как только устройство появилось в продаже, оно было приобретено и водружено на крышу дома.
Новое устройство показало себя не с самой лучшей стороны: соединение с сетью Yota периодически обрывалось и для его восстановления приходилось лезть в вэб-интерфейс роутера и до остервенения кликать по кнопке «Подключиться». Иногда соединение возобновлялось, иногда нет. Приходилось на 15-30 минут отключать питание и модему и роутеру.
Все обращения в техподдержку Yota заканчивались предложением показать модем в сервис. Некоторые владельцы соглашались и им иногда даже меняли устройство целиком. Однако, потом выяснялось, что и совершенно новое устройство ведет себя в точности так же.
Потом стали появляться слухи о том, что Yota готовит обновление прошивки «Yota Street», однако, этому так никогда и не суждено было сбыться. Yota просто свернула продажи «Yota Street» и владельцы сего чудесного устройства остались наедине со своими проблемами.
Однако, покуда немалые деньги были потрачены на модем и безлимитный тариф Yota меня более чем устраивал, я решил своими силами постараться наладить работу своего модема.
Мой опыт использования «Yota Street» и обсуждения на форуме YotaTester привели меня к следующим 2-м заключениям:
Первая задача решается просто: покупаем электрический таймер и программируем его на отключение питание ночью с 3-00 до 3-15.
Вторая задача решается несколько сложнее. К счастью роутер у меня оказался не простой, а хорошо известный в узких кругах Asus Wl-500gp. Уже некоторое время он работал под управлением «прошивки от энтузиастов».
Поиски в интернете показали, что в данной прошивке (впрочем, как и во многих других альтернативных прошивках) возможно подключение скриптов для набора событий:
Мне как раз и была нужна возможность запускать свой скрипт после полного «нормального» старта роутера.
Осталось написать скрипт, следящий за соединением.
И снова поиски в интернете принесли результат: скрипт «always_on» с сайта DD-WRT оказался именно тем, что я искал.
Роутер пингует default gateway и в случае отсутствия ответа, посылает новые запросы discovery от DHCP клиента.
Однако, я немного доработал скрипт с тем, чтобы случайные потери пакетов пинга не приводили к сбросу соединения: только N подряд неудачных пинга ведут к переподключению.
Результат оказался весьма обнадеживающим — доступ в интернет есть практически всегда, лишь порой соединение пропадает с тем чтобы через пару минут восстановиться.
Ну и уж коли я занялся скриптописательством, я добавил еще 2 простых, но весьма полезных скрипта:
Итак, у меня получилось 3 «боевых» скрипта и один сервисный.
Для большей гибкости и возможности в дальнейшем модифицировать набор запускаемых скриптов, я реализовал систему наподобие обычных стартовых скриптов в Linux: сложил все скрипты для запуска после загрузки в одну папку "/usr/local/sbin", назвал их с префиксами «SXX» и еще одним скриптом запускаю их в порядке возрастания индекса в префиксе.
Если коротко, то теперь настройка роутера сводится к следующему:
Вуаля, интернет работает и радует пользователей!
К сожалению, проводной интернет за городом не всегда возможен ввиду отсутствия проводов (телефонных и/или сетевых от провайдера интернета). А даже при наличии телефонных проводов в доме и установленного на АТС оборудования ADSL, состояние «последней мили» таково, что передача данных по технологии ADSL невозможна (или возможна на таких низких скоростях, что провайдеру ADSL это совершенно не интересно).
В такой ситуации на выручку приходит беспроводной доступ в интернет.
Но и с ним не так все оказывается просто, как того бы хотелось.
Некоторое время назад в нескольких километрах от моего загородного дома Yota установила свою базовую станцию и, судя по карте охвата, мой дом оказался в «зоне уверенного приема» этой сети.
Попытки использования USB-модема от Yota показали неудовлетворительный результат: даже на балконе третьего этажа обращенного к базовой станции уровень сигнала чрезвычайно мал, скорости обмена данными 100-200 килобит в секунду (то есть меньше 25 килобайт в секунду).
Как раз в это время Yota начала продажи своего нового устройства — уличного модема «Yota Street».
Плюсы этого устройства:
- Направленная антенна — высокий коэффициент усиления и чувствительность на порядки превосходящие USB-модем (зимой, когда листва на деревьях не встает на пути радиоволн, скорость на прием бывает до 5-6 мегабит в секунду, а на передачу чуть меньнее того, летом стабильно держится 2 мегабита в обе стороны).
- Уличное исполнение — то есть можно и нужно вынести антенну на мачту высоко над крышей.
- Питание «Power Over Ethernet» — всего один провод для данных и питания.
- Подключается в порт WAN любого роутера, роутер по DHCP получает всю необходимо информацию о внешней сети.
Казалось бы, просто сказка. Включил и наслаждайся. Но, коротким было счастье.
Как только устройство появилось в продаже, оно было приобретено и водружено на крышу дома.
Новое устройство показало себя не с самой лучшей стороны: соединение с сетью Yota периодически обрывалось и для его восстановления приходилось лезть в вэб-интерфейс роутера и до остервенения кликать по кнопке «Подключиться». Иногда соединение возобновлялось, иногда нет. Приходилось на 15-30 минут отключать питание и модему и роутеру.
Все обращения в техподдержку Yota заканчивались предложением показать модем в сервис. Некоторые владельцы соглашались и им иногда даже меняли устройство целиком. Однако, потом выяснялось, что и совершенно новое устройство ведет себя в точности так же.
Потом стали появляться слухи о том, что Yota готовит обновление прошивки «Yota Street», однако, этому так никогда и не суждено было сбыться. Yota просто свернула продажи «Yota Street» и владельцы сего чудесного устройства остались наедине со своими проблемами.
Однако, покуда немалые деньги были потрачены на модем и безлимитный тариф Yota меня более чем устраивал, я решил своими силами постараться наладить работу своего модема.
Мой опыт использования «Yota Street» и обсуждения на форуме YotaTester привели меня к следующим 2-м заключениям:
- Нужно периодически, например раз в сутки, перезагружать модем чтобы у него не образовывался слишком большой uptime в результате которого устройство переставало адекватно работать.
- Нужно заставить роутер обнаруживать обрыв связи и пытаться восстановить соединение (как ранее я делал это руками из вэб-интерфейса роутера).
Первая задача решается просто: покупаем электрический таймер и программируем его на отключение питание ночью с 3-00 до 3-15.
Вторая задача решается несколько сложнее. К счастью роутер у меня оказался не простой, а хорошо известный в узких кругах Asus Wl-500gp. Уже некоторое время он работал под управлением «прошивки от энтузиастов».
Поиски в интернете показали, что в данной прошивке (впрочем, как и во многих других альтернативных прошивках) возможно подключение скриптов для набора событий:
- pre-boot — выполняется до начала загрузки
- post-boot — выполняется после окончания загрузки
- … и так далее...
Мне как раз и была нужна возможность запускать свой скрипт после полного «нормального» старта роутера.
Осталось написать скрипт, следящий за соединением.
И снова поиски в интернете принесли результат: скрипт «always_on» с сайта DD-WRT оказался именно тем, что я искал.
Роутер пингует default gateway и в случае отсутствия ответа, посылает новые запросы discovery от DHCP клиента.
Однако, я немного доработал скрипт с тем, чтобы случайные потери пакетов пинга не приводили к сбросу соединения: только N подряд неудачных пинга ведут к переподключению.
Результат оказался весьма обнадеживающим — доступ в интернет есть практически всегда, лишь порой соединение пропадает с тем чтобы через пару минут восстановиться.
Ну и уж коли я занялся скриптописательством, я добавил еще 2 простых, но весьма полезных скрипта:
- Установка MTU равное рекомендованному Yota 1400 байт. Сложно сказать, повлияло ли это и как сильно на скорость и стабильность работы, но хочется верить, что хуже не стало.
- Проброс вэб-интерфейса Yota-street в локальную сеть. Дело в том, что этот самый веб-интерфейс изначально доступен при непосредственном подключении к устройству по фиксированному адресу: 192.168.1.1. При этом по DHCP роутер от модема получает адрес в совершенно другой подсети (внутренней подсети Yota), то есть из локальной сети за роутером вэб-интерфейс модема недоступен. Однако, iptables позволяют решить и эту проблему.
- И в довершение для своего удобства я оформил в виде скрипта команды для сохранения изменений файловой системы во внутреннюю flash-память.
Итак, у меня получилось 3 «боевых» скрипта и один сервисный.
Для большей гибкости и возможности в дальнейшем модифицировать набор запускаемых скриптов, я реализовал систему наподобие обычных стартовых скриптов в Linux: сложил все скрипты для запуска после загрузки в одну папку "/usr/local/sbin", назвал их с префиксами «SXX» и еще одним скриптом запускаю их в порядке возрастания индекса в префиксе.
Если коротко, то теперь настройка роутера сводится к следующему:
- Логинимся на роутер через telnet и переходим в папку "/usr/local/sbin"
- Кладем в папку "/usr/local/sbin/" «боевые скрипты»: S10setmtu, S20alwayson и S30yotadmin
- Туда же кладем 2 сервисных скрипта: post-boot, который и запускает «боевые скрипты»; и flash.sh, при помощи которого мы сохраняем изменения файловой системы во flash-память роутера.
- Запускаем flash.sh: ./flash.sh
- Перезагружаем роутер: либо командой reboot в терминале, либо передергиваем питание.
Вуаля, интернет работает и радует пользователей!