Моноблок

Опыт создания моноблока для несимметричного спутникового доступа с использованием GPRS/EDGE канала в качестве запросного под Linux. Это не инструкция по настройке, автор описал некоторые этапы сосздания устройства для доступа в Интернет и уточнил некоторые детали, которые у других авторов не встречаются.

[Ю.О.Босько (boel at yandex dot ru, www.boel.ru)]

Лирическое вступление

Вот, скажет искушенный читатель, еще один нашелся, который что-там настроил и теперь публикуется.

Ну да, нашелся. Если кто сам не ходил этой дорогой, то не поймет, какие трудности поджидают на пути.

Во-первых, это следует отметить, большинство "руководств" по данной тематике грешат большими неточностями, откровенными опечатками, не хочется показывать пальцем. Исключение составляет информация от S.O.V.A. , но публикуемое этим автором (-ами?), вообще говоря, полностью понятно только специалистам (читай, системным программистам). На руководства других авторов, которые были также найдены интересными, даны ссылки.

Во-вторых, это, конечно, ограниченность во времени задачи. От идеи воспользоваться Linux до полного запуска устройства имелась всего-то пара-тройка месяцев, включая ознакомление с Linux в принципе.

Когда и до наших родных пенатов докатилась волна компьютеризации, а по большому счету она началась только во второй половине 80-х прошлого столетия, то ситуация была по-своему уникальна.

Вдруг, в один прекрасный день появилось это чудо техники, цвета слоновой кости. И никакого программного обеспечения практически не было, кроме MS-DOS версии 2.21, кажется. Зато была куча документации, включая справочник по командам 86 процессора. Все было, как на ладони. И каждый считал свом долгом лазать куда-то в системные области на диске и что-то там пробовать править или читать. Чуть ли не каждый второй пробовал писать что-нибудь на Assembler. Просто сказочные времена. Каждый, кто что-то писал для PC, был сам себе системным программистом.

Попробуйте сегодня хотя бы даже под Windows 98 послать один байт, ну, скажем, на принтер. Комедия будет. Каков размер программы получится!

И вот от MS-DOS пришли к монстрам типа Windows Vista. Говорят, очень удобно пользоваться... Вспомним только, что MS-DOS помещалась на одной дискете стандартного объема.

Поэтому, конечно, многочисленны попытки, существенно сократить в прикладных задачах эти колоссальные объемы ненужной шелухи с сохранением приемлемого интерфейса. Имеется, например, Puppy Linux , который занимает в полной конфигурации всего 90 Мбайт максимум. Это, конечно, не одна дискета, но по сравнению с Windows Vista... ;-)

Операционная система для локальных задач должна сочетать компактность с развитым современным интерфейсом.

Предыстория создания моноблока

Идея создания моноблока, как знает искушенный читатель, не нова. Многочисленны попытки создания такого устройства. Например, компания SatDream выпустила программное обеспечение для DreamBox, которое позволяет подключать для исходящего трафика сотовый телефон, а входящий трафик принимать через сам ресивер с выводом данных через Ethernet-порт. Всем хороша такая штука, да что-то, говорят, с быстродействием не очень.

Компания Greenteleprom упорно продвигает устройство под названием <GPRS Sky-Itnernet приставка>. Автор этих строк держал эту штуку в руках и даже пытался что-то через нее передавать и получать, но остался в полном недоумении, что же это такое.

Ну и, наконец, вполне логично подумать: <А не взять ли просто системный блок, инсталлировать туда все устройства, которые необходимы, и запустить все это под Windows без монитора и клавиатуры?>.

Действительно, очень логичное решение. Если Вы это делаете для себя, то флаг Вам в руки. Но если Вы делаете на продажу, то придется вспомнить, что, во-первых, Windows - это коммерческая ОС, т.е. покупка ее и продажа сопряжена с рядом формальных мероприятий, во-вторых, в эти Windows заложен механизм autoupdate, который страшно досаждает в несимметричных подключениях. Windows знать ничего не хочет про хитрые настройки типа отключения spoof-фильтрации и запускает свои update по <земле>. "Земной" трафик растет как на дрожжах, полезный обмен замедляется. Пользователь бросается отключать эту опцию, а количество вредоносных программ никак не хочет падать (это же популярный Windows!). В задаче спрашивается, сколько времени такая система может продержаться до заражения каким-нибудь троянцем, я не говорю про вирусы?

В общем, без пристального присмотра такой модуль не может нормально функционировать.

Если же поставить вместо Windows версию достаточно компактного Linux, то убивается несколько зайцев. Во-первых, Linux - это некоммерческая ОС, можно ставить сколько угодно экземпляров куда угодно. Во-вторых, без вашего желания ОС не полезет на сайт производителя ни за update, ни за какой другой надобностью (говорят, Б.Гейтс решил посмотреть, какими версиями Windows народ пользуется, и посмотрел; спросите его, как). Ну и гадости всякой по Инету под Linux бродит существенно меньше.

Кроме того, в сети, под которую модуль и предназначен, скорее всего, используются компьютеры под Windows, а это значит, что модуль не будет служить рассадником вирусов и троянцев, он ведь с другой ОС.


Создание моноблока

Моноблок proxy-шлюза для спутникового доступа в ИнтернетАвтор прошел через описанные в предыдущей главе стадии, включая версию под Windows.

В качестве базовой платформы для создания моноблока была выбрана платформа Foxconn 661_X (micro ATX), в качестве процессора был выбран скромный Intel Celeron D. На данной материнской плате уже встроена видеокарта, у нее присутствуют все необходимые для моноблока интерфейсы ( + ненужные :-) ), т.е. стандартная конфигурация Linux работает без проблем.

В качестве ОС была выбрана Linux Freespire 1.0. Почему именно эта версия?

Сразу отмечу, что до применения Puppy нужно дорасти. А так на выбор были (в буквальном смысле): Ubuntu, Mandriva и Freespire. Первая версия забастовала где-то в самом начале конфигурирования. Вторая всем хороша, да разительное несоответствие между тем, что показывает графический интерфейс, и что в действительности работает. Да и нагромождено в ней много ненужного для данной задачи. А Freespire на тот момент оказалась тем самым компромиссом, который устроил и по объему, и по функциональности, и по возможностям загрузки дополнительных модулей и обновлению. А системные требования для нее просто смешны на сегодняшний день: 64 Мбайт ОЗУ, 1 Гбайт дискового пространства.

Вид первого моноблока спереди показан на рис. 1.

Вид того же моноблока сзади показан на рис. 2.

Моноблок был собран в корпусе от InWin. Черный цвет улучшает теплоотдачу, и в наличии все атрибуты для воздушного охлаждения. Конечно, корпус великоват для столь узкой задачи, как Интернет-шлюз, но для отработки идеи лучше брать корпуса побольше. В следующей версии был использован уже более маленький корпус, как будет показано далее.

Спутниковый канал был реализован на SkyStar2, а обратный канал на Wavecom WismoQuik 2406A. Для упрощения преодоления нештатных ситуаций на заднюю панель был выведен разъем для дистанционного RESET.

Настройка

Настройка GPRS

Почему-то все описатели процесса настройки спутникового Интернета начинают с настроек непосредственно спутниковой карты.

Это, мягко говоря, странно. Без наличия канала запросов с помощью спутникового канала можно заниматься разве что "рыбалкой". Из этих же описаний следовало, что настройка pppd - это раз плюнуть. Однако это оказалось далеко не так.

Если речь идет об индивидуальном компьютере, то процесс отображения текущего состояния - это не самый важный элемент конкретного приложения. В конце концов можно и в файл лога слазить. Но если необходимо осуществлять дистанционный контроль, то лучшее решение - это то, которое позволяет выводить данные о текущем состоянии и ошибках на экран. Соответственно, эти данные можно перехватывать и выводить на экран удаленнного компьютера.

Учитывая, что Freespire - это и Linspire, и Debian, была опробована методика, описанная в "Два шага к мобильному интернет (gprs и cdma) для Debian GNU/Linux". Это очень наглядная методика подключения GPRS. На экран выводится все: от команд, посылаемых на порт до сообщений от удаленного сервера. Но все же оказалось, что Freespire не вполне Debian. Процедура pon, хотя и запускалась, но со странными стартовыми сбоями, природу которых понять не удалось. А впоследствии, после ряда доработок системы, процедура вообще перестала запускаться.

Но есть в составе Freespire утилита KPPP, она в принципе предназначена для обычного dialup, и как-то в голову не приходит, что ее можно использовать для GPRS. Статья "GPRS через KPPP" вкратце описывает процедуру подключения.

Небольшой скриптик, состоящий из одной команды KPPP "nameGPRS", где "nameGPRS" - это название настройки на конкретного GPRS-провайдера, позволяет запускать подключение. Этот скриптик запускается при старте ОС путем помещения ссылки на него в папку "Programs to autostart" (Settings -> Additional Options -> Programs to Autostart).

Настройка спутникового канала

Драйверы для SkyStar2 вкомпилированы в ядро Freespire и автоматически подключаются при загрузке операционной системы. Настройки подключения хорошо описаны в "Спутниковый интернет на SkyStar1 и SkyStar2 под Linux" в той части, где описываются именно настройки карты на транспондер и формирование сетевого интерфейса. Вся остальная часть про установку драйверов не требуется.

Но основная проблема, как водится, невнятно оговорена и в указанной статье. SkyStar2, по-умолчанию, выключается при отсутствии обмена, причем никто толком не пишет, каков критерий этих отключений. Это основной бич, с которым сталкиваются все те, кто пытается запустить эту карту под версиями Linux с вкомпилированными в ядро драйверами. Решается эта проблема не просто установкой параметра dvb_shutdown_timeout=0. Драйверы SkyStar2 необходимо полностью выгружать после загрузки операционной системы и снова загружать с новыми параметрами, если не перекомпилировать ядро.

После правильного конфигурирования спутниковой карты сам интерфейс и все настройки появляются в графическом интерфейсе (Control Center), т.е. становятся доступными для дистанционного контроля.

Настройка адаптера Ethernet

Настройка данного адаптера позволяет другим компьютерам сети подключаться к модулю, как к серверу и получать доступ в Интернет без каких-либо сложных настроек в каждом клиентском компьютере.

В разделе Network, Network Settings & Profiles прописан статический адрес, который соответствует диапазону адресов конкретной локальной сети.

Firewall установлена в режим "Open to local network".

В разделе Samba пропиывается имя рабочей группы, а Security level установлен строго в Share.

Настройка других параметров

Настройка других параметров описана здесь.

Управление модулем с клиентского компьютера ведется с помощью бесплатной утилиты VNCviewer.

Boot level

Почему-то ни у одного "описателя" не написано, что поскольку Linux является Unix-подобной системой, то у него имеется несколько уровней загрузки. Так куда же уважаемые господа, спрашивается, прописывали свои скрипты? Почему об этом не упоминали вообще?

Для работы в сети в многопользовательском режиме необходимо установить по загрузке level 3 (а лучше 5), а по-умолчанию сама операционная система устанавливает 2.

Скрипт для инициализации SkyStar2 записан в каталог /etc/init.d, а соответствующая ссылка прописана в каталоге /etc/rc.d/rc3.d (или rc5.d).

Об уровнях запуска можно прочитать в статье Без init'а Linux невозможен:

Что дальше?

Искушенный читатель рассмеется, поскольку в описании нет самого главного, а именно привязки запросного канала к каналу спутниковому. Это не сделано по одной простой причине.

В данном случае модуль был настроен на работу с провайдером SatGate, использовался специфический клиент под названием SlonAx, осуществляющий квазитуннельное соединение при динамическом адресе со стороны клиента.

Моноблок proxy-шлюза для спутникового доступа в ИнтернетВозможно использование туннельного соединения. Подключение по VPN не рекомендуется, покольку очень большой трафик идет по "земле", и скорость оставляет желать лучшего.

В случае использования модуля для подключения к другому провайдеру должны использоваться настройки, специфичные для этого конкретного провайера.

Вскоре после выхода первой (1.0) версии модуля была создана новая версия 1.1, отличающаяся от предыдущей более компактным корпусом от YeongYang и встроенным PCI модемом от Teltonika, который уже работает в стандарте EDGE, что реально увеличивает пропускную способность запросоного канала.

На рис.3 показана задняя панель, на которой видны разъем для подключени яспутниковой антенны, разъем для подключения антенны GSM, слот для установки SIM-карты.

Моноблок proxy-шлюза для спутникового доступа в ИнтернетОбщий вид модуля показан на рис. 4.

На очереди замена механического винчестера на флеш-версию, установка устройства в 19' корпус и, наконец, оснащение устройства небольшим мониторчиком для визуального контроля процессов без подключения клиентского компьютера.

Ваши замечания и пожелания просьба отсылать через форму.

[ опубликовано 27/04/2007 ]

Ю.О.Босько (boel at yandex dot ru, www.boel.ru) - Моноблок   Версия для печати