РеFEрат
Лининиана
ГЕОРГИЙ БАШИЛОВ
gbash@computerra.ru

История, которую я хочу рассказать, началась довольно давно, и события, в ней изложенные, заняли продолжительный отрезок времени - около полугода. До этого для доступа в Интернет из дома я использовал бесплатный академический dial-up. Звонить приходилось на пул, состоящий из двух модемов; с течением времени число счастливых владельцев домашних компьютеров, пытающихся до него дозвониться, выросло неимоверно... Нет, в городе были и коммерческие провайдеры, знал я и о наличии свободной пары, связывающей мой дом с "Троицк-Телеком" (www.ttk.ru) - телефонной компанией, альтернативной городской АТС. Впрочем, напробовавшись коммутируемого доступа, предпринимать дальнейшие усилия в этом направлении не хотелось. А организовывать выделенный канал, лишая себя перспективы обзавестись еще одним телефоном, не хотелось тем более.

Лента событий начала раскручиваться на прошлогоднем "Интернеткоме", где компания "Гранч" (www.granch.ru) представила образец надтонального модема SBNI12-11. Пара таких модемов, установленных на разных концах телефонной линии, позволяла передавать данные поверх телефонных соединений: для передачи "цифры" использовался диапазон частот выше 3,5 кГц, разделение сигналов осуществлялось частотными фильтрами-сплиттерами, в общем, те же принципы, что и в ADSL, но с оглядкой на отечественную специфику и элементную базу.

Вместо DMT (или 2B1Q, нашедшей применение в других разновидностях xDSL) модемы "Гранч" используют более простой в реализации метод биполярного кодирования с альтернативной инверсией (Bipolar Alternate Mask Inversion, AMI). При передаче чередующихся единиц и нулей основная гармоника такого сигнала расположена на частоте, численно равной одной четвертой скорости передачи данных (выраженной в битах на секунду). То есть при скорости передачи 1 Мбит/с максимум энергии сигнала сосредоточен на частоте 250 кГц. Постоянная же составляющая спектра равна нулю, что и позволяет реализовать такой симбиоз выделенной и телефонной линии [1].

Впрочем, разработка, находившаяся на проектной стадии, прошла тогда для меня практически незамеченной - мало ли бывает разных полезных начинаний... Однако меньше чем через два месяца, на "ВКСС-99", "Гранч" объявила, что начинает производство нового устройства, а московское представительство компании любезно предоставило пару надтональных модемов на тестирование.

Площадкой для испытаний стала та самая свободная пара, связывающая мой дом с "Троицк-Телеком", а необходимым условием, определившим тестовую конфигурацию, - возможность использования модема для подключения других пользователей, буде таковые появятся. Пару отслуживших свое компьютеров Aptiva (486SX-25, 8 Мбайт RAM) предоставил издательский дом "Компьютерра", после чего дело оставалось за малым - "собрать и запустить".

Отсутствие на одном из компьютеров жесткого диска поставило дополнительное условие: программное обеспечение должно помещаться на одну дискетку. Еще одно требование сформулировала техслужба "Троицк-Телеком" - подключение пользователей должно осуществляться прозрачным образом, через Ethernet-бридж.

Модемы "Гранч" используют формат кадра, сходный с эзернетовским, что упрощает реализацию такого моста, но не сводит ее к тривиальной процедуре [2]. В принципе, в Сети можно найти массу программных пакетов, способных удовлетворить поставленным требованиям: GNU Zebra (www.zebra.org), Linux Router Project (LRP, www.linuxrouter.org), PicoBSD (people.freebsd.org/~picobsd) и другие. Однако несмотря на поддержку передовых протоколов маршрутизации, все они требуют дополнительной настройки и изучения многочисленных HowTo. Мне же хотелось реализовать тиражируемое решение, которое было бы доступно даже неподготовленному пользователю, - и здесь весьма кстати пришелся пакет FREESCO [3], разработанный Сергеем Сторожевым.

В небольшой дистрибутив Linux, свободно доступный на сайте www.freesco.org, вместилась богатая функциональность. С помощью экранного меню компьютер под FREESCO можно настроить для работы в качестве моста, (статического) маршрутизатора, сервера печати и единого сетевого времени (time server), DNS-, DHCP- и HTTP-сервера. Как утверждается в описании, ПО поддерживает работу трех Ethernet-интерфейсов и двух модемов [4]; минимальные требования к конфигурации компьютера - 386-й процессор и 6 мегабайт памяти [5], а инсталляция и настройка софта - дело 10-15 минут.

Правда, мои первые эксперименты заняли гораздо больше времени: для включения поддержки модемов "Гранч" пришлось перекомпилировать ядро (2.0.38), сетевые карточки Intel EtherExpress 16 оказались несовместимы с Linux, пришлось заменить их на клон NE 2000 и, вдобавок, изучить конфигурационные скрипты FREESCO.

Замечу, FREESCO легко переносится вместе со всеми своими настройками с гибкой трехдюймовой дискеты на винчестер (для этого предусмотрена команда move2hdd) и уже оттуда может загружаться из DOS, что, несомненно, является дополнительным преимуществом: конфигурационные и тестовые утилиты сетевых устройств зачастую поставляются в DOS-вариантах, и модемы SBNI не являются исключением. Не говоря уже о том, что жесткий диск по определению более надежен, чем "мягкий".

Предварительная конфигурация FREESCO сводится к выбору пункта меню "Ethernet bridge", после чего остается ввести данные о числе сетевых адаптеров, используемых ими адресах и прерываниях. В моем случае интерфейсов было три: два эзернетовских, eth0 и eth1, и один - модемно-эзернетовский, sbni0

Модем SBNI 12-11. ISA-исполнение. По окончании ввода данных настройка сохраняется в скриптах; правда, в этот момент FREESCO еще не подозревает о том, что в ее составе появились надтональные модемы, - необходимо немного поработать ручками. Для того чтобы изменения были минимальны, номер прерывания и адрес модема лучше вводить в последнюю очередь, так чтобы в скриптах они были зарезервированы за eth2.

В простейшем случае изменения затронут лишь один файл - system.cfg - из директории /mnt/router/etc. С помощью встроенного редактора edit заменяем название сетевого интерфейса eth2 на sbni0 [6] и добавляем соответствующий драйвер (sbni.0 теперь можно взять с www.freesco.org, скачав файл modules.tgz) в директорию /mnt/router/drv (или \router\drv - под DOS). И все! Правильность настроек можно проверить с помощью команды ifconfig.

После проверки работоспособности системы в домашних условиях, где на расстоянии десять метров была зарегистрирована наибольшая скорость передачи - 2 Мбит/с (притом - редкий случай - безошибочная), настал черед полевых испытаний: один из компьютеров был перенесен в аппаратную "Троицк-Телеком", с кросса на сплиттер была заведена телефонная пара, а с компьютера - выход модема SBNI12-11; со сплиттера высокочастотный сигнал поступал в телефонную пару, ведущую к абоненту; далее в обратном порядке.

Амплитудно-частотная характеристика сплиттера. ВЧ-тракт. Для тестирования линии, общая длина которой составила 1200 метров, и определения скорости передачи данных использовалась программа sbopt [7], предложившая установить скорость передачи данных 1 Мбит/с (рекомендованная, она же максимальная на этой линии; на 2 Мбит/с связь установить не удалось).

Для того чтобы изменить скорость, пришлось немного повозиться. В принципе, модемы SBNI поддерживают передачу данных на скоростях от 62,5 кбит/с до 2 Мбит/с - в двух аппаратно устанавливаемых поддиапазонах: от 62,5 до 500 кбит/с и от 250 до 2000 кбит/с. По умолчанию устанавливаются скорости, максимальные для каждого из этих диапазонов - 2000 или 500 кбит/с. Для их изменения можно использовать программу sbniconfig, входящую в комплект поставки (предварительно ее откомпилировав). Еще один способ - установить желаемые параметры на этапе загрузки драйверов и инициализации адаптеров.

Sbniconfig как универсальное решение использовать не получилось просто из-за недостатка места на дискетке. Пришлось, опять же ручками, редактировать файл rc_ini, добавив в него непосредственно перед инициализацией сетевых устройств строку

insmod -fs -o sbni0 /mnt/router/drv/sbni.o io=0x210 irq=9 baud=2,

установив адрес, прерывание и скорость передачи (baud=2) данных равной 500 кбит/с (для верхнего диапазона).

Как видите, я решил немного перезаложиться, и, как оказалось, не зря. На 500 кбит/с модем работал неустойчиво, связь иногда отсутствовала часами и даже сутками. В некоторых случаях после перезагрузки внешне работоспособного компьютера связь восстанавливалась. В общем, вместо рекомендуемого 1 Мбит/с в результате мне пришлось установить 250 кбит/с. Ошибки на этой скорости перестали носить системный характер, став случайными и, по двухмесячному опыту эксплуатации, вполне приемлемыми.

Между тем, эксперименты мои заняли довольно много времени: версия FREESCO 0.2.3 успела смениться версией 0.2.5, в которую, среди прочего, была добавлена поддержка модемов "Гранч". За ней пришла версия 0.2.6, на этот раз, в отличие от 0.2.5, стабильная [8]: процедура инсталляции теперь действительно занимает 10-15 минут, не надо перекомпилировать ни ядра, ни драйверы, не надо перезагружать...

Схема подключения к АТС.
И главное: в "Троицк-Телеком" появился портативный цифровой рефлектометр. Прибор российского производства с прозаическим названием "Рейс-105" (www.debryansk.ru/~stell) показал наличие на линии большой неоднородности, расположенной в трехстах метрах от аппаратной, на промежуточном кроссе: уровень отраженного сигнала достигал 30 процентов величины зондирующего импульса. Разные задержки распространения (и затухания) переотраженных сигналов привели к тому, что линия оказалась несимметричной - уровень ошибок у клиентского модема (расположенного заметно дальше от кросса, чем аппаратная) был существенно выше.

После устранения неоднородности (заделали контакты, сменили телефонную пару на участке от аппаратной до кросса с ТПП 0,4 на ТПП 0,5 и т. д.) уровень отраженного сигнала стал измеряться единицами процентов, ошибки исчезли, и я попробовал поднять скорость передачи до рекомендованной 1 Мбит/с.

На новой скорости линия, тоже без ошибок, проработала чуть меньше суток, после чего клиентский модем впал в ступор, зациклившись на определении оптимального коэффициента усиления: о происходящем можно было судить с помощью программы sbniconfig. После горячей перезагрузки [9] связь восстановилась, но с тем же результатом: рано или поздно модем становился слишком интеллектуальным и излишне самостоятельным.

В результате, строка инициализации драйвера пополнилась еще одним параметром - rxl=13, устанавливающим фиксированный коэффициент усиления, после чего уже неделю линия работает без ошибок (число дефектных кадров на уровне тысячных долей процента) и зависаний на скорости 1 Мбит/с. Максимальная зарегистрированная скорость загрузки данных с российских сайтов - 90 Кбайт/с (www.download.ru), коннект - постоянный.

Итак, сухой остаток: без дополнительной адаптации далеко не идеальной линии модемы SBNI12-11 показали удовлетворительную работу на расстоянии 1200 метров лишь на скорости 250 кбит/с. Наличие телефонной связи (за все время она не прерывалась ни разу) не позволяет судить о качестве линии, для его определения нужны приборы, определяющие ее высокочастотные свойства, после чего комплекс несложных мер позволяет реализовать паспортные характеристики. Полезной была бы и чуть большая интеллектуальность самих модемов, например, постоянный мониторинг соединения (через стандартную диагностику Linux) и адаптивно изменяемая скорость передачи данных. Тем более что обмен между модемами осуществляется пакетным образом, и "договариваться" между собой они могли бы на минимальной скорости.

И, наконец, теперь уже по собственному опыту и - результатам первых майских гроз: при воздушной прокладке телефонной линии просто необходимо использовать грозозащиту.



1 (обратно к тексту) - Напомню, спектр телефонного сигнала ограничен сверху частотой 3,5 кГц.

2 (обратно к тексту) - В принципе, в ассортименте "Гранч" имеются аппаратные мосты, но надтональные мосты во время моих экспериментов не производились.

3 (обратно к тексту) - Или, в одной из нотаций, FREEciSCO.

4 (обратно к тексту) - Я так и не нашел видимых ограничений, кроме тех, что заложены в конфигурационные скрипты. Драйвер sbni.c поддерживает работу до восьми модемов.

5 (обратно к тексту) - Естественно, чем больше реализуемая функциональность, тем выше аппаратные требования.

6 (обратно к тексту) - В строке INTNAME2=eth2, или сколько там у вас сетевых интерфейсов? Кстати, не стоит пытаться вводить изменения в конфигурационные файлы с помощью DOS-утилит: Linux и DOS (Windows) используют разные символы конца строки, в результате FREESCO не сможет прочитать подготовленный таким образом файл.

7 (обратно к тексту) - Входившая в комплект поставки.

8 (обратно к тексту) - Версия 0.2.3 на одном из мостов проработала два месяца без единой перезагрузки.

9 (обратно к тексту) - Как вариант, исполнения последовательности ifconfig sbni0 down / ifconfig sbni0 up.



Ваши предложения и замечания ждем по адресу: tails@computerra.ru

ГЕОРГИЙ БАШИЛОВ
gbash@computerra.ru

Заместитель главного редактора "Компьютерры", постоянный ведущий рубрики "Хвосты", участник 33 Советской Антарктической экспедиции, выпускник МФТИ.
Область интересов: - телекоммуникации, экономика, финансы, обработка данных.

http://members.tripod.com/~gbash/

Предыдущий материал | Оглавление номера | Следующий материал

Предыдущая рубрика: ТЕМА НОМЕРА
Следующая рубрика: FEрмата

Текущая рубрика: РеFEрат