ПАВЕЛ ЗАКЛЯКОВ, ГЕОРГИЙ ПАХОМОВ
Доступный WiMAX
Подключение USB-модема Samsung SWC-U200 к маршрутизатору Asus WL-500gP
Мировое стремление развивать WiMAX-сети дошло и до России. Конечно, покрытие WiMAX-сетей по России далеко от GSM-покрытия «большой тройки», но сети развиваются, растёт интерес и к устройствам, поддерживающим WiMAX. В статье будет рассказано о том, как к многофункциональному маршрутизатору фирмы Asustek со встроенной ОС Linux подключить WiMAX-модем.
Не успели ещё внедрить стандарт 3G, как на рынке уже появился 4G – WiMAX. Его распространение не обошло стороной и Россию. Зона покрытия пока невелика – Москва, Санкт-Петербург, а с недавнего времени Уфа.
С одной стороны, предложение протестировать сеть WiMAX бесплатно до 31 марта [3] или 31 мая [2] заманчиво, с другой, цена «входного билета» достаточно высока – не у всех найдутся лишние 4-5 тысяч рублей для покупки WiMAX-модема.
Не спешите перелистывать страницу, не найдя свой город в списке городов, охваченных WiMAX, ведь стандарт может завтра прийти и в ваш город.
Возможно, вам будет интересно узнать и про то, что внутри маршрутизатора Asus WL-500gP [1] используется Linux, а опыт подключения модема Samsung SWC-U200 удастся перенести на другие полезные вам устройства.
Есть спрос – будет предложение. Не успели оглянуться, как количество домашних устройств с сетевыми интерфейсами увеличилось, а их подключение к глобальным сетям свелось к использованию недорогих маршрутизаторов, сочетающих в себе ещё и функции коммутатора, межсетевого экрана, точки доступа, DHCP-сервера, сервера печати, файлового сервера и пр. Однако до сих пор найти недорогую точку доступа, поддерживающую подключения по WiMAX, довольно сложно из-за новизны стандарта.
Тут-то и пришла на помощь русская смекалка. Если у вас есть маршрутизатор Asus WL-500gP с USB-портами, а в руках вы держите USB WiMAX-модем Samsung SWC-U200, то что мешает соединить эти два устройства?
Оказалось, что ничто не мешает, только в штатном режиме работать вместе эти два устройства не хотят.
Дальше будет описано техническое решение по сопряжению указанных устройств.
Если же у вас есть только интерес в использовании WiMAX и нет желания заниматься настройкой оборудования, то спешим сообщить, что в продаже уже имеются готовые решения на базе Asus WMVN25E2+, а также готовые решения по сопряжению упомянутых нами устройств. Например, компания «ГНУ/Линуксцентр» предлагает не только купить адаптированные маршрутизаторы ASUS WL-500gP или D-Link DIR-320, но и предоставляет возможность взять эти устройства на тестирование [6]. Не отстаёт по предложениям и WiMAXstore [7]. Мы же рассмотрим вопрос самостоятельной перепрошивки и настройки.
Взгляд внутрь
Получив в руки маршрутизатор и модем (см. рис. 1) для экспериментов, было очень сложно удержаться от того, чтобы не раскрутить их первым делом и не посмотреть, что же там находится внутри.
Рисунок 1. Маршрутизатор Asus WL-500gP и USB-модем Samsung SWC-U200
Для этого переворачиваем маршрутизатор и отклеиваем ножки, под которыми находятся 4 винта (см. рис. 2).
Рисунок 2. Вид маршрутизатора снизу. Отклеиваем ножки для разбора
Разворачиваем устройство, переворачиваем и снимаем крышку (см. рис. 3). Довольно много места, отключаемый Wi-Fi-модуль, чипсет (см. рис. 4) и процессор Broadcom с памятью под экраном (см. рис. 5).
Рисунок 3. Вид маршрутизатора внутри
Рисунок 4. Чипсет маршрутизатора
Рисунок 5. Вид платы с памятью и процессором без экрана
Если выполнить команды:
$ cat /proc/cpuinfo
... system type : Broadcom BCM4704 chip rev 9 pkg 0 cpu model : BCM3302 V0.6
|
$ cat /proc/meminfo
total: used: free: shared: buffers: cached: Mem: 30887936 18956288 11931648 0 1871872 6782976
|
то увидим, что информация о процессоре и памяти совпала с тем, что можно увидеть в устройстве.
Выбор прошивки
Изучив обсуждения на форумах, можно прийти к выводу, что лучшим решением является использование прошивки от Олега Вдовикина. Судя по исходным кодам (изученным позже), где можно найти e-mail-адреса всех авторов, это выпускник МГУ с немалым стажем администрирования. Прошивки распространяются по лицензии GPL и доступны по адресу [9], там же можно найти ссылки на форум с предложением присоединиться к обсуждению маршрутизаторов http://wl500g.info.
Лицензия GPL не только обязывает авторов оcтавлять cвои координаты, но и делать доcтупными иcходные коды. Так, пытаяcь найти корни, откуда взялась первоначальная прошивка, логичнее иcкать на cайте Asus, но что побудило Олега внести в неё правку? Ответ не ясен, так как связаться по указанному в исходных кодах адресу не получилось, но ясно одно, – Open Source-решения предоставляют энтузиастам возможности улучшения исходного кода. Из информации, предоставленной на сайте [9], можно предположить, что некая фирма hornington выложила исходные коды неофициальной прошивки 1.7.5.9 от Asustek (кстати, по лицензии GPL можно было бы их и затребовать), после чего улучшения кода не заставили себя долго ждать.
Изучая исходные коды версии 1.9.2.7-10 (март 2008 года), можно заключить, что она основана на версии ядра 2.4.20:
$ uname -a
Linux WL-001FC660E3C3 2.4.20 #18 Sun Mar 30 13:13:29 MSD 2008 mips unknown |
а поддержка обновлений прекратилась полтора-два года назад. При последней версии ядра 2.4.37.1 из серии 2.4.x на момент написания статьи следует сделать соответствующие выводы. Конечно, основные ошибки и критические уязвимости в версиях ядра и программного обеспечения на тот момент закрыты соответствующими патчами, которых на одно ядро накладывается около полусотни, но мысль о том, что жизнь не стоит на месте и новые версии могут быть чем-то лучше старых, промелькивает. Скорее всего, падение интереса к этой модели маршрутизатора связано с появлением новых.
Мы же, следуя [8], скачиваем последнюю прошивку из http://oleg.wl500g.info/1.9.2.7-9 (или http://code.google.com/p/wl500g) и устанавливаем её. Эта прошивка или другая нужны для того, чтобы ядро поддерживало модули и TUN/TAP-устройства, коим будет WiMAX-модем.
Замена прошивки
Существует два варианта прошивки модема [18]: через веб-интерфейс (см. рис. 6) и через утилиту восстановления. В обоих рекомендуется использовать только проводное подключение (не используя Wi-Fi и промежуточные сетевые устройства), отключить различные межсетевые экраны и обеспечить бесперебойное питание компьютера и маршрутизатора. С одной стороны, эти требования разумны, чтобы избежать лишних вопросов, но с другой стороны, они могут показаться чрезмерными и выставляющими читателей как не понимающих суть происходящих процессов. Например, логично спросить, а зачем отключать персональный межсетевой экран при прошивке через веб-интерфейс?
Рисунок 6. Обновление программного обеспечения через веб-интерфейс
Ведь если я сам создавал правила пакетной фильтрации и соединение с маршрутизатором через браузер, установлено к моменту начала прошивки, то значит и во время перепрошивки соответствующие пакеты по протоколу TCP будут передаваться на 80-й порт маршрутизатора и приходят обратно без проблем. С надёжностью радиоканала и электропитания сложнее, но если у вас нет источника бесперебойного питания, то вы можете не расстраиваться и не тратить часы на его поиски.
В случае сбоя устройство всегда можно вернуть к заводским установкам, используя соответствующие кнопки, либо перепрошить с помощью утилиты восстановления. Можно предположить, что именно поэтому в веб-интерфейсе маршрутизатора нет функции сохранения старой прошивки (именно прошивки, а не настроек). Если ваш маршрутизатор будет находиться в общественном месте, то во избежание возможности восстановления заводских настроек без вашего участия следует выпаять кнопки (см. рис. 7).
Рисунок 7. Выпаянные кнопки
При желании восстановить заводские настройки можно будет замкнуть контакты на плате (ведь такая необходимость возникает очень редко). Если всё же вам не доступен веб-интерфейс или произошёл сбой, то о втором способе перепрошивки с помощью утилиты восстановления коротко написано тут [15], для чего следует выполнить следующие шаги:
- Убеждаемся, что маршрутизатор, как и компьютер, через который мы будем им управлять, подключены к исправному источнику бесперебойного питания и ёмкости аккумуляторов которого хватит на время прошивки (обычно не более 10 минут).
- Убеждаемся, что маршрутизатор и компьютер соединены патч-кордом, либо промежуточные сетевые устройства между ними надёжны и обеспечены бесперебойным электропитанием.
- Нажимаем и держим кнопку перезагрузки на задней стенке маршрутизатора.
- Обесточиваем на несколько секунд маршрутизатор и снова его включаем.
- Дожидаемся мигания индикатора питания, после чего отпускаем кнопку перезагрузки.
- На компьютере пользователя запускаем ASUS Firmware Restoration Application (поставляется на диске вместе с маршрутизатором).
- В программе выбираем распакованную прошивку (файл .trx).
- Жмём Upload (загрузить).
Старая прошивка, как было отмечено выше, пропадает.
Драйверы от модема
Скачиваем уже скомпилированные модуль libusb и драйвер madwimax [11]. Если вас интересуют исходные коды, то их можно найти в [12] и на сайте проекта wimax [10].
Чтобы не отставать от жизни, рекомендуем посетить форум http://www.wl500g.info/showthread.php?p=119756&page=1, где ведётся практически ежедневная дискуссия, обсуждаются проблемы и появляются новые решения.
Также необходимые файлы можно найти и тут: http://lvk.cs.msu.su/~lasaine/madwimax/wl500g.
Рисунок 8. USB WiMAX-модем Samsung SWC-U200
Рисунок 9. USB WiMAX-модем Samsung SWC-U200 в разборе
Загрузка файлов в маршрутизатор
Для загрузки файлов из-под ОС Linux можно воспользоваться штатной программой scp.
Но предполагая, что данная ОС может оказаться не у всех читателей, предложим и другое решение. Для этого нам понадобится утилита WinSCP [14] или одноимённый plugin к Far. Также может подойти pscp [13]. Если с утилитой для загрузки файлов вопросов быть не должно, то вопрос «куда загружать?» подразумевает два ответа.
Первый – во внутреннюю память маршрутизатора. В этом случае следует помнить, что она не резиновая и от каких-то функций, возможно, придётся отказаться. Все продаваемые решения используют этот подход.
Второй – подключить внешнюю USB-флешку, размер которой ограничен вашей фантазией, и использовать её. Конечно, занятый USB-порт и ещё одно устройство – плохо, но указанный путь наиболее прост для самостоятельной реализации, поэтому мы его и рассмотрим.
Для подключения USB-флешки лучше выбрать нижний порт маршрутизатора, так как верхний позже будет занят WiMAX-модемом.
Поддержка файловых систем FAT или NTFS в ядре маршрутизатора, скорее всего, будет отключена, поэтому флешку с большой вероятностью придётся переформатировать под файловую систему ext2 или ext3. Для тех, у кого есть ОС Linux под рукой и некоторый опыт работы с этой ОС, проблем быть не должно, остальным проще будет воспользоваться возможностями самого маршрутизатора [9], имеющего команды fdisk и mke2fs.
Отформатированную флешку монтируем в директорию /opt маршрутизатора, после чего создаём директорию /tmp/mnt/disc0_1/bin и осуществляем монтирование директории /tmp/mnt/disc0_1 в /opt. Объяснить, зачем выполняются такие операции, а не используются мягкие ссылки, сложно. Вполне возможно, что внутреннее программное обеспечение маршрутизатора может обращаться к файлам по определённому пути, но не может следовать по ссылкам (устройство может работать и как FTP/SAMBA-файловый сервер).
Так как команды, на наш взгляд, не являются потенциально опасными, мы их оставили без изменений:
# mount -o sync,noatime,rw /dev/scsi/host0/bus0/target0/lun0/part1 /opt
# mkdir /tmp/mnt/disc0_1/bin
# mount –o bind /tmp/mnt/disc0_1 /opt
Создаём временную директорию:
# mkdir -p /opt/tmp/ipkg
Упрощаем жизнь
Для того чтобы упростить себе жизнь, установим дополнительное программное обеспечение, для этого подключаем маршрутизатор через порт WAN к Интернету (после настройки WiMAX можно использовать и этот канал) и устанавливаем программы от суперпользователя. Для того чтобы устанавливались последние версии, следует выполнить команду обновления:
$ ipkg.sh update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages.gz Inflating http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages.gz Updated list of available packages in /opt/lib/ipkg/lists/optware Successfully terminated.
|
Если не сделать обновления списка доступных пакетов для установки, то при последующих шагах может появиться информация о том, что существует более новая версия устанавливаемого вами пакета и надо выполнить команду «ipkg update» перед установкой.
Для установки пакета screen (ссылка на него будет в конце статьи) выполнить команду:
$ ipkg install screen
Installing screen (4.0.3-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/screen_4.0.3-2_mipsel.ipk Installing termcap (1.3.1-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/termcap_1.3.1-2_mipsel.ipk Configuring screen chown: unknown user name: root Configuring termcap Successfully terminated.
|
Аналогично с командами:
- ipkg install ipkg-opt
- ipkg install mc
- ipkg install gzip
- ipkg install bzip2
После того как программное обеспечение установлено либо внесены правки в конфигурационные файлы, следует сохранить изменения во внутреннюю flash-память маршрутизатора, для этого выполняем следующие три команды:
$ flashfs save
tar: Removing leading "/" from member names tmp/local/ tmp/local/etc/ tmp/local/etc/dropbear/ tmp/local/etc/dropbear/dropbear_rsa_host_key tmp/local/etc/dropbear/dropbear_dss_host_key tmp/local/sbin/ tmp/local/sbin/pre-shutdown tmp/local/sbin/post-mount tmp/local/sbin/post-firewall tmp/local/sbin/post-boot tmp/local/root/ tmp/local/root/.mc/ tmp/local/root/.mc/Tree tmp/local/root/.mc/filepos tmp/local/root/.mc/ini tmp/local/root/.mc/history tmp/local/root/.mc/cedit/ -rw-r--r-- 1 gp root 3081 May 8 19:03 /tmp/flash.tar.gz Check saved image and type "/sbin/flashfs commit" to commit changes
|
$ flashfs commit
$ flashfs enable
Последняя команда ничего не выводит.
Для простоты эти три команды можно написать и в одну строчку в виде «flashfs save && flashfs commit && flashfs enable», что нередко можно увидеть на форумах, описаниях и в howto.
Для корректной работы в mc надо выполнить ещё две команды, устанавливающие переменные TERMINFO и TERM.
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
Поддержка WiMAX-модема
Далее, небходимо перейти к тому, с чего начался раздел, и переписать скачанные ранее файлы liveusb и madwimax, распаковав liveusb в директорию /opt, а madwimax в /opt/sbin. Как вариант это можно сделать через файловые менеджеры Far+WinSCP и mc. После необходимо проследить, чтобы файл /opt/sbin/madwimax имел установленным атрибут выполнения.
Например, командой:
ls –l /opt/sbin/madwimax
если права на запуск не выставлены, то их стоит установить командой:
chmod +x /opt/sbin/madwimax
Либо можно скачать файлы заново из консоли и там же распаковать:
cd /tmp
wget http://lvk.cs.msu.su/~lasaine/madwimax/wl500g/libusb-1.0-mipsel.tgz
wget http://lvk.cs.msu.su/~lasaine/madwimax/wl500g/madwimax-latest-mipsel.tgz
cd /
tar -xzf /tmp/libusb-1.0-mipsel.tgz
tar -xzf /tmp/madwimax-latest-mipsel.tgz
По завершению распаковки скачанные архивы можно удалить.
rm /tmp/libusb-1.0-mipsel.tgz /tmp/madwimax-latest-mipsel.tgz
В этом случае атрибуты должны быть настроены правильно после распаковки архива.
Сами файлы теперь находятся на флешке, подключенной к маршрутизатору, но далее необходимо, чтобы кто-то после перезагрузки устройства монтировал флешку, подгружал модуль tun.o, запускал madwimax, настраивал сетевой интерфейс, перепрописывал маршрутизацию. Для того чтобы не выполнять эти все функции вручную, создадим два скрипта, которые позволят автоматизировать вышеописанную работу.
Автоматизация загрузки
Из консоли запускаем mc и дописываем в файл /usr/local/sbin/post-boot две строчки:
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
Также редактируем /usr/local/sbin/post-mount и записываем в него:
#!/bin/sh
mount -o sync,noatime,rw /dev/scsi/host0/bus0/target0/lun0/part1 /opt
mount –o bind /tmp/mnt/disc0_1 /opt
insmod tun.o
/opt/sbin/madwimax --device 04e9:6761
sleep 45
/opt/etc/madwimax/event.sh if-up tap0
Значение 04e9:6761 идентифицирует вставленный в маршрутизатор WiMAX-модем. Если у вас имеется дополнительный компьютер с ОС Linux и свободным USB-портом, то вставьте в него модем и посмотрите файл /var/log/messages, где вы сможете увидеть примерно следующее:
May 8 21:46:57 notebook kernel: usb 1-7: new high speed USB device using ehci_hcd and address 2 May 8 21:46:57 notebook kernel: usb 1-7: configuration #1 chosen from 1 choice May 8 21:46:57 notebook kernel: usb 1-7: New USB device found, idVendor=04e9, idProduct=6761 May 8 21:46:57 notebook kernel: usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0 May 8 21:46:57 notebook kernel: usb 1-7: Product: Samsung USB mWiMAX Modem.. May 8 21:46:57 notebook kernel: usb 1-7: Manufacturer: SAMSUNG ELECTRONICS Co.Ltd. May 8 21:46:57 notebook kernel: Initializing USB Mass Storage driver... May 8 21:46:57 notebook kernel: scsi6 : SCSI emulation for USB Mass Storage devices May 8 21:46:57 notebook kernel: usbcore: registered new interface driver usb-storage May 8 21:46:57 notebook kernel: USB Mass Storage support registered. May 8 21:47:02 notebook kernel: scsi 6:0:0:0: CD-ROM Samsung Install Disk 0.10 PQ: 0 ANSI: 0 CCS May 8 21:47:02 notebook kernel: sr1: scsi3-mmc drive: 48x/48x xa/form2 cdda tray May 8 21:47:02 notebook kernel: sr 6:0:0:0: Attached scsi generic sg2 type 5 May 8 21:47:02 notebook kernel: sr1: Hmm, seems the drive doesn"t support multisession CD"s
|
Как легко заметить, указанные значения – это idVendor и idProduct. Интересно отметить, что модем на самом деле является и вторым устройством, а именно моделирует работу USB CD-ROM со вставленным компакт-диском с драйверами модема. Поэтому для ОС Windows драйверы на компакт-диске, как это бывает обычно, не поставляются.
Также ID устройства можно узнать и из команды lsusb:
Bus 001 Device 002: ID 04e9:6761 PC-Tel, Inc. |
К сожалению, в маршрутизаторе используется урезанный комплект программного обеспечения, и поэтому команды lsusb там нет. Если следовать [8], значение бывает или 04e9:6761, или 04e8:6761 и определяется перебором. С неправильным значением модем просто не заработает. В новых прошивках маршрутизатора предусмотрена возможность посмотреть ID подключенных к USB-порту устройств через веб-интерфейс: Status & Log, Diagnostic Info, USB Devices, в прошивке, используемой авторами, такой возможности нет.
Строчки sleep 45 и /opt/etc/madwimax/event.sh if-up tap0 прописаны авторами для поднятия сетевого интерфейса модема (tap0) после загрузки маршрутизатора. Значение задержки установлено опытным путём и может варьироваться. Обычно 45 секунд хватает для того, чтобы модем успел установить связь с сетью WiMAX. Предполагается, что расположение модема выбрано оптимально. Подробнее как это сделать будет рассказано в конце статьи.
Ещё один вариант загрузки модуля поддержки WiMAX-модема предложен в [15], где вместо строчек:
insmod tun.o
/opt/sbin/madwimax --device 04e9:6761
используются:
insmod /lib/modules/tun.o
(while true; do /opt/sbin/madwimax -qof; sleep 10; done) &
Так как авторам вариант с бесконечным циклом не понравился, мы от него отказались.
Замечание: если файл /usr/local/sbin/post-mount отсутствовал у вас изначально, то создать его можно командой:
touch /usr/local/sbin/post-mount
или нажатием + в mc. После завершения редактирования необходимо файлу присвоить атрибут исполняемости командой:
chmod +x /usr/local/sbin/post-mount
При создании (редактировании) файла /usr/local/sbin/post-mount мы указали команды для монтирования флешки, загрузки модуля поддержки TUN/TAP-устройств, инициализации модема и в конце предусмотрительно обратились к программе event.sh для поднятия сетевого интерфейса и присваивания ему сетевых настроек.
Получение сетевых настроек
Создадим файл event.sh, который будет отвечать за получение IP-адреса и других сетевых параметров по протоколу DHCP от Yota. Файл udhcpc.script сохранит полученные параметры в систему и изменит таблицу маршрутизации так, чтобы внешним интерфейсом считался не WAN Enternet-модем, а WiMAX USB-модем.
Создаём файлы с установленным разрешением на запуск:
touch /opt/etc/madwimax/event.sh
touch /opt/etc/madwimax/udhcpc.script
chmod +x /opt/etc/madwimax/event.sh
chmod +x /opt/etc/madwimax/udhcpc.script
И наполняем следующим содержимым.
Файл event.sh:
#!/bin/sh
# Usage: event.sh
case "$1" in
start)
;;
end)
;;
if-up)
/sbin/udhcpc -i "$2" -p /var/run/udhcpc1.pid -s /opt/etc/madwimax/udhcpc.script -b
iptables -A INPUT -i "$2" -m state --state NEW -j SECURITY
iptables -A FORWARD -i "$2" -m state --state NEW -j SECURITY
iptables -t nat -A POSTROUTING -o "$2" ! -s `ifconfig "$2" | grep "inet addr" | tr ":" " " | awk "{print $3}"` -j MASQUERADE
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
;;
if-down)
cat /var/run/udhcpc1.pid | xargs -i kill -TERM {}
;;
*)
echo "Usage: $0 {start|end|if-up|if-down}" >&2
exit 3
;;
esac
#!/bin/sh
RESOLV_CONF=/tmp/resolv.conf
case "$1" in
bound|renew)
ifconfig $interface up
ifconfig $interface $ip netmask $subnet
route add default gw $router
for ii in $dns; do
echo nameserver $ii >> $RESOLV_CONF
done
# trigger dnsmasq restart
kill -s SIGHUP `pidof dnsmasq`
;;
deconfig)
ifconfig $interface 0.0.0.0
echo deleting $RESOLV_CONF
echo -n > $RESOLV_CONF
kill -s SIGHUP `pidof dnsmasq`
;;
esac
http://lvk.cs.msu.su/~lasaine/madwimax/wl500g/udhcpc-script.tgz и по аналогии с командами выше для liveusb и madwimax скачать и распаковать.
Сохраним изменения во flash-памяти маршрутизатора:
# flashfs save && flashfs commit && flashfs enable
Можно попробовать выполнить команды, указанные в /usr/local/sbin/post-boot, вручную, после чего, в случае обнаружения сети WiMAX, у модема изменится цвет индикатора на синий и оба устройства будут работать, как мы этого ожидаем. Если это для вас сложно или подключение таким способом не получилось, перезагрузите маршрутизатор командой:
# reboot
После перезагрузки маршрутизатор автоматически подмонтирует USB-флешку, загрузит с неё модуль TUN/TAP-устройств, драйвер модема, после чего, если модем обнаружит сеть, будут получены сетевые настройки и перепрописана маршрутизация внутри устройства.
На этом моменте настройку маршрутизатора можно считать законченной и переходить к использованию. Однако есть ряд вещей, о которых лучше знать читателям.
Диагностика сети WiMAX
Рекомендуем запустить в консоли команду madwimax с ключом -help и узучить назначение ключей.
Например, madwimax с ключом -f может выводить различную диагностическую информацию в консоль, либо при запуске как «madwimax -fvvd» записывать всю информацию в syslog, что не очень удобно на устройстве с ограниченным размером диска, либо через команду:
madwimax -fvvd -l /tmp/mnt/disc0_1/madwimax.log
переопределить вывод на флешку. Постоянно работать в таком режиме не рекомендуется, так как лог-файл быстро пополняется.
Проблема отключения
Когда вы долго не передаёте данные в сети, провайдер вас отключает из-за бездействия, после чего необходимо переподключение. Эту проблему, по аналогии с GPRS и EVDO от операторов сотовой связи, можно решить периодической посылкой пакетов. Самое простое решение, предложенное на форуме, – «пинговать» DNS-сервер провайдера. Для этого предлагается установить утилиту screen (выше по тексту указано, как её установить) и после дописать в файл /opt/etc/madwimax/event.sh в конце секции if-up) строчку /opt/bin/screen -dm ping ip_адрес_dns_провайдера, к указанному решению можно ещё дописать ключ -s 0, минимизирующего размер поля данных отправляемых пакетов, например:
/opt/bin/screen -dm ping -s 0 94.25.208.74
После запуска команды можно увидеть её в списке процессов:
$ ps | grep ping
571 gp 764 S /opt/bin/SCREEN -dm ping -s 0 94.25.208.74 572 gp 404 S ping -s 0 94.25.208.74
|
а также с помощью tcpdump зарегистрировать исходящие и входящие пакеты:
$ tcpdump -i tap0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on tap0, link-type EN10MB (Ethernet), capture size 68 bytes 20:05:30.915018 IP 10.129.27.141 > yota.ru: icmp 28: echo request seq 54 20:05:31.019343 IP yota.ru > 10.129.27.141: icmp 28: echo reply seq 54 20:05:31.915008 IP 10.129.27.141 > yota.ru: icmp 28: echo request seq 55 20:05:32.109125 IP yota.ru > 10.129.27.141: icmp 28: echo reply seq 55
|
Многие заметят, что хорошо бы использовать ключ -i для задания интервала посылки ICMP-пакетов в секундах, чтобы уменьшить нагрузку на сеть, но, увы, так сделать не получится, так как в программе busybox, установленной в модеме, используется урезанная функциональность утилиты ping. Решить проблему можно установкой полнофункциональной версии ping либо hping [19]. Последняя утилита обладает большими возможностями и рекомендуется авторами.
Несколько слов о сети Yota
Для того чтобы работать в WiMAX-сети провайдера Yota, следует не только зарегистрироваться, но и найти оптимальную точку приёма сигнала. Далее в статье рассказываются технические вопросы подключения модема Samsung SWC-U200 к маршрутизатору со встроенной ОС Linux, подразумевая, что читатель уже подключён к этой сети. Желая расширить аудиторию читателей, статью можно трактовать и как отдалённое пособие по настройке WiMAX в Linux, а также добавить немного полезной информации, интересной не только системным администраторам, но и будущим пользователям WiMAX.
Полезная информация о сети и о модеме
Подключить модем в ОС Windows несложно. Как было описано выше, на тот момент, когда драйверы не установлены, модем определяется как обычный USB CD-ROM, к которому в операционной системе должны быть штатные драйверы. В случае если у вас не запрещён запуск из Autorun.inf, установка начнётся автоматически. Несмотря на то что модем был куплен в начале мая, в его «USB CD-ROM»-памяти были драйвера версии 1.9.6, когда на сайте yota.ru доступна для скачивания версия 1.2.0 [20].
Лучше отключить автозапуск и установить драйверы вручную. После установки программы Yota Access и подключения модема запустилось обновление (см. рис. 10). Другой вариант обновления и более «тонкой настройки» модема описан в [26].
Рисунок 10. Обновление программного обеспечения модема
После завершения обновления в результате перемещения модема в пространстве удалось обнаружить сеть, хотя, судя по карте покрытия, в месте расположения модема сигнала быть не должно. Вывод: для нахождения сети подключите модем с использованием USB-удлинителя, что даст возможность гибко перемещать модем в пространстве. Поворот работающего модема на 90 градусов, как и смещение на 5-10 см могут привести к потери модемом сигнала и отключению от сети, как и наоборот.
Поиск сигнала
Для поиска сигнала или точки наилучшего приёма лучше всего воспользоваться утилитой DebugScreen. В директории с установленной программой Yota Access можно найти одноимённый exe-файл, но запуск утилиты производится более хитрым образом. На форумах можно найти информацию о том, как её запустить, но на практике это не получилось. Не долго думая, мы позвонили по телефону, указанному на модеме. На удивление техническая поддержка компетентно ответила на все наши вопросы и даже подсказала, как запустить DebugScreen, что стало приятной неожиданностью. Для этого надо щёлкнуть на индикатор приёма в окне Yota Access (см. рис. 11).
Рисунок 11. Окно Yota Access после подключения
И нажать + + + , после чего появится окно для ввода пароля, где ввести «1234». В появившемся окне Debug Screen нажать меню File > Start. После этого появится окно диагностики (cм. рис. 12).
Рисунок 12. Утилита Debug Screen
Наиболее интересный параметр это RSSI – уровень сигнала. Ещё можно обратить внимание на параметр BSID, чем-то напоминающий по форме записи MAC-адрес, – это ID базовой станции, с которой вы работаете.
Замечание: по адресу[ 21] содержатся не только наблюдения за данными, выводимыми утилитой Debug Screen, но и ещё один способ её запуска. Для этого необходимо создать ярлык для DebugScreen.exe на рабочем столе, после на нём правой кнопкой мыши выбрать «Свойства» и в поле «Обьект» после последней кавычки через пробел дописать параметр 0x12345678. После сохранения изменений ярлык для запуска утилиты готов. Пароль тот же, что и при запуске через программу Yota Access, – 1234.
Сложно сказать, где ещё можно использовать информацию, полученную из программы отладки, но два применения можно найти сразу: первое – это позиционирование модема относительно базовых станций, например, когда сигнал Глонасс или GPS не принимается, (в тоннелях, зданиях и пр.), как альтернатива сотовому и Wi-Fi позиционированию. А второе применение – создание любительских общественных карт покрытия сети, например [22].
Ошибки регистрации
После подключения к сети можно зайти только на сайт yota.ru. Для того чтобы получить доступ дальше сайта провайдера (даже на момент тестирования), следует зарегистрироваться. Регистрация может производиться с любого компьютера. Но после, чтобы привязать WiMAX-модем к вашему личному кабинету, всё равно придётся зайти в кабинет через сеть Yota. «Логин или номер лицевого счёта» и «пароль», указанные на пластиковой карточке, приложенной к модему, не подходят для входа в личный кабинет. Данная информация понадобится лишь на последнем шаге регистрации. То есть логин и пароль у вас будут собственные, не привязанные к карте и счёту. После регистрации модема в личном кабинете следует переподключиться к сети, причём сделать это надо с физическим отключением модема от компьютера.
Улучшение приёма
Если вы посмотрите внимательно на рис. 8, то увидите, что модем имеет два разъёма для подключения внешней антенны. У вас эти разъёмы будут заклеены белой наклейкой, которая на фотографии переклеена правее. Есть разъём – будет переходник для внешней антенны (см. рис. 13). В комплекте переходник не поставляется, но его можно спаять самостоятельно либо купить, например на сайтах [23-25].
Рисунок 13. Переходник для антенны
Используя направленные антенны, вполне возможно добиться приёма сигнала там, где для работы через встроенную антенну не достаёт мощности сигнала.
А можно без флешки?
В нашем примере мы устанавливали midnight commander и другие программы – удобные, но не нужные для непосредственной работы модема и маршрутизатора. Логично предположить, что если мы не будем поднимать FTP-сервер и использовать другие программы, то можно всё лишнее стереть и обойтись минимумом файлов. Возникает вопрос: если файлы уместятся по объёму, то можно ли записать их во внутреннюю flash-память маршрутизатора и обойтись без USB-флешки? Ответ – можно! Как раз вышла статья о том, как это сделать [27].
А можно подключить два WiMAX-модема?
Логично предположить, что если у устройства два USB-порта, то даже без использования USB-разветвителей можно подключить второй WiMAX-модем. А можно ли настроить два модема на одновременную работу? Учитывая, что внутри маршрутизатора имеется пакет iproute2, можно не только подключить одновременно два WiMAX-модема, но и обеспечить балансировку нагрузки штатными средствами маршрутизатора. Правда для этого потребуется некоторое знание ОС Linux и утилиты ip из вышеуказанного пакета. Читатели могут заметить, что два модема, подключенные к одной базовой станции одного провайдера, повысят скорость, но не повысят надёжность. Но не забывайте, что сеть активно развивается, и у жителей столицы уже сейчас есть возможность выбора между сетями «Комстар-ОТС» и Yota.
Нужен com-порт?
На плате маршрутизатора имеется нераспаянный разъём, который можно распаять и использовать (см. рис. 14).
Рисунок 14. Подключение COM-порта: слева - нераспаянная площадка для подключения контактов; справа - контакты для подключения разъёма COM-порта
Заключение
Сеть WiMAX развивается, растёт число устройств – это приятный факт. Даже есть официальный драйвер для MacOS. Обидно лишь одно, что драйверы под Linux идут не изначально с устройствами, как было бы правильнее, а получены с помощью исследования двоичных файлов и восстановления исходного алгоритма [10].
Приложение
«Поднимаем» SSH
Если вы планируете использовать локальное администрирование в доверенной сети, то можно вполне обойтись программой telnet и протоколом FTP либо флешкой для переноса файлов. Но если вы планируете настраивать ваш модем через Интернет либо ваша локальная сеть не является доверенной, то лучше потратить несколько минут и настроить SSH-сервис, использование которого предпочтительнее с точки зрения безопасности.
Подключаемся по протоколу telnet к адресу маршрутизатора. По умолчанию это 192.168.1.1. Логин и пароль по умолчанию – admin/admin.
Замечание: предполагая, что статью могут читать не только администраторы и продвинутые пользователи, предложим таким читателям несколько советов.
- Совет 1. Если вы используете Windows Vista, то telnet-клиент по умолчанию отсутствует в системе. Включить его можно через «Панель управления -> Программы и компоненты ?> Включение и отключение компонентов Windows -> Клиент Telnet».
- Совет 2. Используйте лучше утилиту PuTTY [13].
- Совет 3. Запуск сервиса ssh и его использование позволяют защититься от угрозы конфиденциальности, но не приводит к отключению сервиса telnet. Поэтому, если вы хотите избежать других атак на маршрутизатор через telnet, то следует дополнительно позаботиться об этом.
Начиная с версии 1.7.5.9-4 в комплект поставки программного обеспечения маршрутизатора уже входит ssh-демон dropbear поддерживающий как RSA- так и DSS-ключи. Наша задача – сгенерировать пару ключей и запустить демон. Для этого после подключения создадим директорию, где будут храниться ключи.
# mkdir -p /usr/local/etc/dropbear
Сгенерируем DSS- и RSA-ключи:
# dropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key
# dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key
После того как ключи созданы, вы можете запустить ssh-демон, просто набрав dropbear, но в случае перезагрузки маршрутизатора запуск придётся повторить. Чтобы осуществлять запуск сервиса каждый раз вручную, пропишем его в авторазгрузку (файл post-boot) и сохраним настройки во флеш-память (flashfs). Для этого вначале проверим наличие файла post-boot командой:
# ls /usr/local/sbin/post-boot
В случае ошибки «No such file or directory» (файла нет) его надо создать. Для этого создадим, при необходимости, вышестоящие директории, запишем имя командного интерпретатора первой строчкой и изменим атрибуты файла командами:
# mkdir -p /usr/local/sbin/
# echo "#!/bin/sh" >> /usr/local/sbin/post-boot
# chmod +x /usr/local/sbin/post-boot
После, когда файл уже создан (или существовал ранее), допишем в конец строчку запуска ssh-демона dropbear:
# echo "dropbear" >> /usr/local/sbin/post-boot
После сохраним изменения во флеш-память и активируем работу с сохранёнными настройками:
# flashfs save && flashfs commit && flashfs enable
Выйти из telnet-сессии можно командой «exit».
- Страница маршрутизатора Asus WL-500gP – http://www.asuscom.ru/products.aspx?l1=12&l2=43&l3=0&l4=0&model=1712&modelmenu=1.
- WiMAX-провайдер Yota – http://www.yota.ru/ru.
- WiMAX-провайдер «Комстар» – http://wimax.comstar.ru.
- Yota Egg – автономный WiMax-роутер – http://wimax.livebusiness.ru/tags/WIMAX_router.
- Готовое WiMAX-решение на базе Asus WL 500gP – http://www.linuxcenter.ru/shop/wimax/devices/asus_wl500gpv2.
- В Москве появились WiMax-роутеры – http://wimax.livebusiness.ru/news/5806.
- WiMAX-оборудование – http://wimaxstore.ru/shop/wimax/devices/asus_wl500gpv2.
- Инструкция: как раздавать Интернет от Yota через WiMAX-модем Samsung SWC-U200 и роутера ASuS WL-500gP – http://www.wimaxinfo.ru/?q=node/201.
- Страница альтернативных прошивок для Asus WL-500g от Олега Вдовикина – http://oleg.wl500g.info.
- madwimax A reverse-engineered Linux driver for mobile WiMAX devices based on Samsung CMC-730 chip – http://code.google.com/p/madwimax.
- Драйверы для модема WiMAX – http://files.linux.ru/index.php?dir=wimax/asus-500gP.
- Библиотека libusb – http://libusb.wiki.sourceforge.net/Libusb1.0.
- PuTTY: A Free Telnet/SSH Client – http://www.chiark.greenend.org.uk/~sgtatham/putty.
- WinSCP Plugin to FAR File Manager – http://winscp.net/eng/docs/far.
- Yota-роутер или wimax2wifi за 15 минут – http://www.rusdoc.ru/articles/yota-router_ili_wimax2wifi_za_15_minut/18369/print.
- Информация о ASUS WL-500g Premium – http://oldwiki.openwrt.org/OpenWrtDocs(2f)Hardware(2f)Asus(2f)WL500GP.html.
- Сравнительная таблица маршрутизаторов Asus WL-500 и других – http://notepad.timyou.com/page/Router+Hacks?t=anon.
- Firmware upgrading HOWTO WL-500g/WL-500gx Tutorials – http://www.wl500g.info/showthread.php?t=1329.
- Hping – Active Network Security Tool – http://www.hping.org.
- Последняя версии программы Yota Access, май 2009 – http://www.yota.ru/downloads/YotaAccess_v.120_BL22.exe.
- Ветка форума «Как правильно тестить Йоту + софт для этого» – http://forum.yotatester.ru/showthread.php?t=51.
- Карта покрытия WiMAX – http://www.wimaxmonitor.ru.
- Переходник для внешней антенны для модема WiMAX YOTA – http://www.radioport.ru/index.cgi/shop?id=2207&dir=13.
- Антенный переходник – http://www.yota-shop.ru/index.php?go=goods&cat=10&gid=119.
- Антенный переходник – http://forwimax.ru/show_good.php?idtov=90025.
- Обновление прошивки и «тонкая настройка» модема Samsung SWC-U200 – http://yota-wimax.ru/category/yota-firmware.
- Делаем WiMAX-роутер (Wl500gP+SWC-U200) без флешки – http://yota-wimax.ru/wimax-device/delaem-wimax-router-wl500gpswc-u200-bez-fleshki.