Как подключится к другой вышке
Выжимаем максимум интернета из деревенских сот
На кануне новогодних праздников понадобилось пораньше покинуть столицу, покинуть ее в направлении таких мест, в которых интернет бывает довольно редко. На период отсутствия на работе я обещал напарникам быть на связи. А так как мой род деятельности напрямую связан с web, то я решил поэкспериментировать с доступностью интернетов в планируемом месте пребывания.
Суть задачи сводился к следующему:
Из небходимого у меня было:
Сборка конструктора
USB порт на TP-Link у меня был один, и он уже был занят накопителем под корневую файловую систему, плюс ко всему вызывал подозрение длиный провод у антенны. Меня терзали сомнения, что точка доступа сможет запитать модем через 3-х метровый провод, поэтому подключение через USB hub было единственным решением.
В качестве хаба использовал старый добрый D-Link Dub-104 (красивый компактный хаб с невероятно здоровенным блоком питания).
Установка необходимого ПО на точку доступа
Так как направлялись мы в деревню, в которой все телефоны еле работали в режиме GPRS, все ПО я решил поставить еще будучи в большом городе, поэтому ставил по-максимуму, чтобы на месте ловить уже минимум приключений. Познания по настройке черпал из этой статьи: https://wiki.openwrt.org/doc/recipes/3gdongle.
В целом, после этого можно пробовать вставить модем и смотреть, появились ли устройства типа /dev/ttyUSB*. В моем случае usb_modeswitch сделал всю работу и устройства появились. Если это не ваш случай, стоит подробно почитать статью на тему usb_modeswitch.
Настройка параметров соединения
Настроим параметры wan:
В моем случае симка была от Мегафона, поэтому параметры подбирались специально под него.
Еще я добавил строчку в chatscript, чтобы видеть уровень сигнала от вышки при подключении:
Подключение
Теперь делаем ifup wan, смотрим logread ииии… Если вам повезло, то вы увидете нечто вроде такого:
Если же нет и ваш оператор Мегафон, то идем дальше.
Пляски с бубном
У меня при выполнении модемом команды ATD происходила ошибка. Немного пошерстив форумы, обнаружил интересную особенность оператора Мегафон. На одном из форумов предлагалось вручную отключить на модеме все лишнее и оставить только функции самого модема и возможно sd карты. На другом — перепрошить модем с заводской (не брендированной) прошивкой (в моем случае прошивка тоже была от Мегафона).
Удивительным был тот факт, что при подключении к ноутбуку с ОС Windows, модем работал исправно. Стоило подключить к Linux — получал ошибку.
Сперва я решил проверить, действительно ли это связано с Мегафоном. Я взял из запасов симку с Tele2, чутка подправил конфигурацию подключения:
Ииии, все заработало. Сразу. Окей, пойдем сперва наиболее простым путем и поотключаем все лишнее на модеме:
Теперь выключаем usb_modeswitch за ненадобностью:
Перевтыкаем модем, ждем пока загрузится и поднимаем wan интерфейс:
В моем случае теперь все заработало. Ура!
Оптимизация
Первичная настройка проводилась без подключения антенны, теперь было интересно посмотреть, будет ли от нее эффект.
Уровень сигнала без антенны:
А теперь с антенной:
Выглядело так круто, что я почуял подвох. И подвох действительно был. Для меня стало открытием, что хороший сигнал от базовой станции еще ничего не значит.
Ниже пинги для первого и второго варианта:
1.
2.
И тут для меня открылся новый дивный мир мобильной связи.
Я открыл, что мой модем поддерживает сканирование местности на предмет базовых станций, причем необязательно того оператора, чья сим карта внутри него установлена.
Делалось это следующей командой:
20 — сколько вышек выводить
-110 — минимальный уровень сигнала
0/1 — 0 — 2G вышки, 1 — 3G вышки. С LTE пока никак.
Список отсортирован по уровню сигнала и выглядит следующим образом:
1e7e — LAC станции
250 — MCC (Россия)
02 — MNC (В данном случае — МТС)
-78 — уровень сигнала данной базовой станции
8b77 — CID станции
400000 — диапазон, в котором принимается сигнал базовой станции (как в команде ^syscfgex)
Теперь, имея эти данные, можно зайти на сайт http://xinit.ru/bs/ и посмотреть, где эти вышки расположены относительно себя.
Как правило, если есть направленная антенна, то ее следует направлять на ближайшую базовую станцию, — я так думал. Тут меня ждало следующее открытие. Даже если мы направим на нее антенну, далеко не факт, что пройдет регистрация на этой базовой станции. А если и пройдет, то не факт, что скорость передачи данных будет выше, чем через вышку, находящуюся вдвое дальше нее. Так я прошелся по ближайшим станциям в радиусе от 1.5 километров до 3-х и все они при хорошем сигнале передавали данные с большой задержкой. Пинг в среднем был
Экспериментируя, я случайно попал на вышку, которая находилась на расстоянии 6-7 километров от меня. Подключившись к ней, время пинга упало до
90ms, при том, что уровень сигнала упал вместе с ним.
Для сравнения, уровень сигнала от:
близлежащих вышек: 13-20
от удаленной вышки: 5-12
Тем не менее я провел скоростные тесты на самой лучшей ближней вышке и на удаленной, результаты:
одна из ближайших станций — 2/0.35 Мбит.
Удаленная станция — 4.28/1.68 Мбит.
Честно говоря, я и от двух мегабит обалдел, т.к. при использовании обычного телефона даже Google Play Market не открывался. А тут, оказывается, можно еще и до 4-х разогнаться!
Таких результатов для меня оказалось достаточно. Я оставил антенну смотреть в направлении самой удаленной вышки в надежде всегда держать с ней связь, но надежды мои оказались наивны. Возникла новая и пока нерешенная проблема. Состоит она в том, что время от времени происходит регистрация на другой базовой станции, даже если она расположена в противоположной стороне относительно направления антенны. В такие моменты задержки при передаче данных возрастают, и как это побороть — я пока не нашел.
В интернетах на вопрос типа: “можно ли модему указать, с какой вышкой работать” отвечают, что не вы выбираете вышку, а она вас. Быть может знающие люди подскажут, есть ли решения для таких ситуаций?
На этом все. Спасибо всем тем, кто прочел до конца.