Fido over IP: FidoNet и Internet

Человек с компьютером и модемом

(Статья Эмира Шабашвили для журнала "ComputerWorld-Казань")

"Я английский бы выучил только за то
Что на нем разговаривал Дженнингс!"
(фольклор FidoNet)

FidoNet - это архаика. Сеть, успешно работавшая на ХТшках и модемах 1200, работает сейчас на P200 MMX и модемах 33600, но идеологически она та же - как и ее Полиси образца 1989 года, как убогий текстовый интерфейс ее программ. Та же доморощенная, рукодельная технология, рассчитанная на использование только коммутируемого соединения, те же протоколы передачи - Z-modem, Hydra, Janus. Где еще вы найдете примеры программ, успешно работающих и широко использующихся на протяжении десятилетия? Только в FidoNet! Сегодня сеть, так много давшая столь многим, бывшая притчей во языцах и светочем в ночи, стремительно вымирает. Статистика убывания нодлиста - списка узлов сети - говорит сама за себя. Ежемесячно вымирают сети (города), исчезают регионы (читай - страны). Только что исчезла из FidoNet Исландия - вот обреченное письмо "последнего из могикан":

Date: 10 Nov 97  22:56:40
From: Jon Leosson on 2:391/29  Men-At-Work BBS in Njardvik
To: Ward Dossche on 2:292/854  Many Glacier in Mortsel
Subj: Resignation
___________________________________________________________________________
Hello, Ward!
  I've got some bad news. It seems that my situations have changed a bit, I
just don't have anymore time for Fidonet because my wife gave birth to our
first a few weeks ago, therefore I'm gonna have to resign myself as region
coordinator of fidonet in Iceland. And since there are no BBSs left here in
Iceland, there isn't anybody here to follow my footsteps, therefore I'm 
gonna have to ask you to remove Region 39 from the nodelist.

I'm sorry.

best regards,
Jon Leosson
jarl@islandia.is

Что же заставляет FidoNet, сеть необычную, романтическую, разделить участь Атлантиды? Причины лежат на поверхности. Все то, что некогда делало сеть привлекательной, сегодня отвращает от нее. Итак, по пунктам:
- FidoNet была единственным источником свежей неофициальной компьютерной информации. Два-три дня, максимум неделя - и вы получаете ответ на свой вопрос. Сегодня уже Internet предоставляет нам поистине неограниченные возможности для поиска и мгновенного получения такой информации.
- FidoNet была самой дешевой сетью. За ее услуги не надо платить, телефон, компьютер, модем - и все! Но - стремительно падает цена услуг Internet, пользоваться ей гораздо выгоднее и дешевле чем висеть на телефоне часами, перекачивая Fido-почту из другого телефонного региона.
- FidoNet была сетью избранных, сетью анархической, всемирным компьютерным братством. Сегодня же споры и склоки раздирают местные сети и регионы FidoNet, уходят из сети люди много для нее сделавшие, известные, уходят нехорошо, разочарованные и обиженные. Последние примеры: NEC2 - Эхо-Координатор второй зоны Steve Woodmore (Вторая зона - материк Европа, в нее по традиции входит и Россия) и RC50 - координатор региона 50 (Россия и некоторые страны бывшего СССР) Дмитрий Завалишин.
Справедливости ради отметим, что наш 50-й регион - один из немногих, где рост FidoNet продолжается. Но уже очевидно что явление это временное. Будет и у нас Internet, будет и у нас повременная оплата телефонных переговоров, не будет и у нас FidoNet. Можно ли сделать что-нибудь, чтобы сохранить эту уникальную компьютерную субкультуру, этот стиль общения? Многие задаются этим вопросом и многие находят ответ на него в использовании возможностей Internet для транспорта почты FidoNet. В этой статье, мой читатель, я постараюсь дать тебе общее представление о технологии Fido-over-IP, использовании Internet'a в Fido. Итак, мой любознательный читатель, посмотрим из чего состоит программное обеспечение узла (node) FidoNet.

Технология FTN (FidoNet Technology Network).

"...Направляющая своими цапфами с помощью
наметок крепится к лодыгам вертлюга."
(Из наставления по устройству пусковой
установки тактического ракетного комплекса)

FidoNet росла как придорожный куст - сама собой. Никто не вкладывал в нее больших денег, не создавал как единый проект. И тем не менее к началу 90-х годов оформилось то, что называют FTN-технологией. Это стандарты и рекомендации, написанные участниками сети на основании их личного опыта и прошедшие что-то вроде экспертной оценки в специальном комитете, работающем на общественных началах. Большинство их использовано при написании реальных программ. Часть документов имеет статус действующих стандартов и обязательна к исполнению разработчиками программного обеспечения - эти документы называются FTS (FidoNet Technical Standarts). Другие (их большинство) существуют в виде рекомендаций. Все стандарты можно получить в Internet с адреса ftp://ftp.z2.fidonet.org

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

FidoNet имеет свою систему адресации, не совпадающую ни с какой другой. Например, мой адрес в Fido выглядит как:

2:5049/12.0@fidonet

Это так называемая 5-D запись - в ней пять полей, разделенных спец. символами. Первое поле, цифра два, определяет номер зоны; всего их в FidoNet шесть, по числу материков. Цифра два означает принадлежность к европейской зоне FidoNet.

Второе поле, отделенное от первого двоеточием и содержащее число 5049, дает нам номер сети. Сеть 5049 - это наша сеть, TartarNet, Fido в Республике Татарстан.

Третье поле, отделенное наклонной чертой и содержащее цифру 12 - это номер узла, то есть личный адрес Системного Оператора. Отделенный точкой ноль означает что адрес узловой. Ненулевое значение в этом поле означало бы что это адрес Пойнт-системы, формально участником Fido не являющейся и включенной в сеть через узловой адрес, приведенный в предыдущем поле.

Пойнт - это начальная стадия подключения к FidoNet, все начинают с получения пойнтового адреса у какого-нибудь из узлов. Как правило, если речь идет об адресе узла и значение этого поля равно нулю, его просто опускают, то есть записывают адрес в виде 2:5049/12@fidonet. Последнее поле означает организационную принадлежность к адресному пространству сети Fidonet - есть и другие сети, работающие на FTN-технологии, и используется это поле при маршрутизации почты между FTN-сетями. Поэтому при использовании адреса внутри FidoNet последнее поле также часто опускают. Все эти формы записи - 2:5049/12.0@fidonet, 2:5049/12@fidonet и 2:5049/12 - эквивалентны.

Адреса FidoNet используются при написании двух основных типов писем. Личная почта (netmail) и письма в телеконференции (echomail), составляют ту среду общения, ради которой существует FidoNet. Для того, чтобы понять, как может использоваться Internet в FTN-сетях, нужно иметь хотя бы самое общее представление о функционировании Fido-системы:

Fidonet software scheme

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

После написания письма системным оператором в программе-редакторе фидо-почты оно попадает либо в базу личных писем (netmail message base), либо в базу эхо-почты, если это письмо в эхо-конференцию.

Затем письмо подготавливается к отправке либо упаковщиком личной почты (netmail packer), либо эхопроцессором в случае обработки эхо-почты. После этого в дело вступает центральная программа FTN - почтовая программа или Fido Mailer (попросту мейлер на привычном фидо-жаргоне).

Это наиболее сложная программа во всем наборе FTN-программ, мы не будем останавливаться подробно на ее устройстве и функционировании, отметим только что она взаимодействует с коммуникационным портом компьютера (и через него - с модемом) через отдельную программу, коммуникационный драйвер FOSSIL. Посредством этого драйвера устанавливается соединение с другой аналогичной fido-системой, через него проходит весь поток передаваемой информации. Наименование FOSSIL является аббревиатурой и составлено из начальных букв некогда популярных FTN-программ.

Виртуальный модем Реймонда Гвина

"...Несмотря на формальную правильность, это мне неприятно,
потому что я не люблю, когда из пушки стреляют по воробьям,
вне зависимости от того, насколько эффективно пушка может
справляться с такой работой"(Э.Дейкстра)

Счастливая мысль избавить авторов FTN-мейлеров от написания интерфейса взаимодействия с модемом оказалась плодотворной, и именно она подсказала несколько лет назад автору популярного FОSSIL-драйвера идею замены FOSSIL 'a интерфейсным модулем взаимодействия с другим FTN-мейлером через Internet.

Действительно, пусть мейлер "думает" что он по-прежнему взаимодействует с модемом и телефонной линией, можно легко воспроизвести весь набор функций FOSSIL-драйвера, имитировать стандартные ответы модема на выдаваемые команды и ситуации, возникающие в процессе установления соединения. Например, при обрыве связи передавать мейлеру "NO CARRIER" - стандартный ответ модема при обрыве соединения и "BUSY" ("занято") если от противоположной стороны приходит сигнал "перегрузка". На самом же деле мы будем устанавливать соединение по одному из распространенных Internet-протоколов, и самым удобным и простым для этой цели является известный протокол Telnet, образующий прозрачный символьный канал от одной системы до другой. Телнет использует в свою очередь протокол с устранением ошибок TCP и таким образом не требует дополнительной коррекции ошибок.

Так или приблизительно так рассуждал вероятно Рeймонд Гвин (Raymond Gwinn), создавая программу-драйвер, названную им Vmodem - Virtual Modem Driver, надолго ставшую стандартом де-факто при передаче Fido-почты через Internet. Многие FidoNet-системы и BBS и до сих пор используют его, однако этот подход не лишен недостатков:

- Во-первых, не существует бесплатных программ с аналогичными Vmodem функциями (сам Vmodem распространяется автором как shareware и бесплатное использование его незаконно). Vmodem существует только в версии для операционной системы OS/2 . Драйверы, функционально ему аналогичные, написаны для DOS (например, RLFOSSIL) и Windows (COMT и другие), но не все они соответствуют стандарту FOSSIL и работают в целом хуже чем Vmodem.

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

Поэтому бывает что Fido-мейлер отказывается устанавливать соединение через Vmodem, или установленное соединение неустойчиво, быстро разрывается. Если вы подключены к Internet через proxy-шлюз - приготовьтесь, ваш fido-мейлер через Vmodem работать вернее всего не будет.

Поэтому, несмотря на широкую распространенность и известность в FidoNet, Vmodem так и не стал основой "Fido-over-IP".

FidoNet в мире Unix

"Тильки москаль кохае Паскаль,
Мы же уси пишем на Си!"
(фольклор FidoNet)

Если у вас есть Internet on-line - не поленитесь, зайдите на страничку http://www.average.org/~crosser. Автор ее человек разносторониий, страничка интересная - авторская песня, глобальные сети, и, конечно же, программирование. Евгений Черкашин, более известный в сети как Eugene Crosser, разработал и написал "с нуля" функционально полный комплект программного обеспечения FidoNet - комплекс программ под общим названием ifmail.

От многих других программ FidoNet, продаваемых как shareware, эта программа отличается тем, что распространяется в соответствии со стандартной лицензией GNU - бесплатно, вместе с исходными текстами.

Ifmail - большая программа, около 50 тысяч строк исходного текста. Она включает в себя FTN-совместимый мейлер (ifcico), работающий с модемом, и эхо-процессор (ifgate), использующий при обработке эхо-конференций FidoNet известный протокол Internet, предназначенный для обработки телеконференций - NNTP.

Последняя особенность позволяет применять ifmail как универсальный шлюз между сетью Fidonet и Internet. Почти все эхо-конференции региона 50 FidoNet, известные и популярные в Internet'e как иерархия Fido7, проходят через ifmail.

С самого зарождения сети FidoNet стояла задача передачи почты в сети, основанные на другой технологии, с другим форматом адреса - прежде всего в Internet. Для обеспечения этого в сети установлены системы, называемые шлюзами (gateway), определены правила преобразования адресов FidoNet в символьные адреса Internet, и зарегистрирован специальный домен (выделенное адресное пространство) Internet - fidonet.org.

Приведенный выше адрес 2:5049/12 однозначно преобразуется в символьный адрес Internet как f12.n5049.z2.fidonet.org. И если вы захотите написать письмо на мой Fido-адрес из Internet'a, можете смело отправлять письмо на адрес Amir.Shabashvili@ f12.n5049.z2.fidonet.org - пройдя ряд межсетевых шлюзов, письмо дойдет до моего компьютера. И вернее всего, пройдет при этом через одну или две системы, на которых установлен ifmail.

Ifmail также позволяет устанавливать соединения с другой аналогичной программой через Internet, используя стандартный Internet-протокол TCP, решая таким образом задачу полноценного использования Internet для нужд Fido.

Последние версии ifmail могут производить соединение и с системами, использующими Vmodem.

Вы можете легко скачать в Intenet'e ifmail вместе с исходными текстами, например, с этого адреса: http://www.average.org/ifmail/, или получить его в составе расширенного дистрибутива бесплатной операционной системы Linux, но необходимо помнить, что эта прекрасная и действительно работоспособная почтовая система создана и оттестирована только для Unix.

Перенести (или, как говорят, "портировать") ifmail под другие операционные системы возможно - для того и существует проект GNU, для этого (в частности) и распространяются программы в исходных текстах - да только вот пока никто этого в полной мере не сделал. Есть попытки переноса ifcico под OS/2, но распространенного и широко используемого варианта - нет.

Итак, ifmail используется по всему миру немногочисленными энтузиастами, рискующими пускаться в плавание по могучей реке с названием Unix. Здесь ему конкурентов нет. Но не у всех хватает решимости на такое (по выражению Горького) "большое, важное, но никому не нужное дело", как изучение и использование Unix. Fidonet - домашняя сеть. Дома удобно иметь что-нибудь поспокойнее Unix .

Программа из Гипербореи

"Магадан, Магадан, Магадан
Дaвний символ беды и ненастья,
Может быть, не на горе - на счастье
Ты однажды судьбою мне дан?.."
(А.Жигулин)

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

Однако, как выясняется, исключения случаются и здесь. Приглашаю вас посетить страничку по адресу http://rat.tts.magadan.su/~maloff/, поддерживаемую программистом из Магадана Дмитрием Маловым. Им создана программа Binkd, всего за год после выпуска первой версии ставшая самой распространенной ftn-программой, используемой для проброса fido-прочты через Internet.

Binkd, как и ifmail, написан и распространяется вместе с исходными текстами под бесплатной лицензией GNU. Но в отличие от ifmail программа эта не является заменой всему набору ftn-софта, она берет на себя только почтовые функции. Как следствие, ее легче портировать под основные операционные системы (исходно Binkd, как и ifmail, создан для Unix'a). Существуют работоспособные варианты binkd для OS/2, Windows 95, Windows NT. Нет вариантов под DOS и Windows 3.11 - что ж, рискните, попытайтесь перенести - программа небольшая, всего 11 тысяч строк.

На binkd стоит остановиться подробнее, поскольку именна эта программа, возможно, станет той панацеей, которая спасет FidoNet от вымирания. Название программы - binkd - подчеркивает ее связь со старой, хорошо себя зарекомендовавшей программой - мейлером Binkley Term, используемым в FidoNet более пяти лет.

От большинства остальных программ Binkley Term отличался тем, что распространялся он в исходных текстах и ввел новый стандарт на формат подготовленной к отправке информации - binkley-style outbound.

С его появлением почтовые программы FidoNet разделились на AMA (arc-mail attach) и binkley-style мейлеры. Есть также мейлеры, поддерживающие оба режима - например, известный в народе (и в Мин. Обороны) T-Mail, автором которого является Андрей Елкин из Петербурга.

Итак, binkd рассчитан на работу в паре с binkley-совместимым мейлером, либо, если вам нужна только Internet-система, с binkley-style упаковщиком почты. Изображенная ниже схема показывает, как встраивается binkd в систему программного обеспечения узла FidoNet.

Обычный Fido-мейлер и binkd имеют один общий outbound-директорий. При появлении в нем почты для узла, описанного в конфигурационном файле binkd, последний немедленно выставляет флаг "занято" для этого узла, и делает попытку отправки почты через Internet. При отсутствии соединения через Internet почта отправляется как обычно.

Fidonet software scheme with binkd

Отличительной особенностью bind является использование собственного протокола установления соединения, названного автором binkp. Протокол binkp учитывает особенности cреды передачи Internet и устойчиво работает на любых скоростях передачи, в отличие от связки Fido Mailer-Vmodem.

Почтовая сессия binkd может тянуться сутками, если скорость соединения низка, и тем не менее завершаться успешно, или продолжаться пару секунд, если вы связываетесь с компьютером в одной сети ethernet.

Впечатляют и другие характеристики binkd. Например, размер программы. Мы привыкли к многомегабайтным текстовым редакторам, процессорам электронных таблиц - так вот, версия binkd для OS/2, которой я пользуюсь (так называемая EMX-версия), имеет размер 35 килобайт! К ней нужен только крошечный конфигурационный файл с описаниями нескольких очевидных параметров и списком Internet-адресов систем, с которыми вы хотите установить соединение, - и этого достаточно.

Binkd - истинно Unix-программа. От привычных нам DOS/Windows монстров ее отличает и полное отсутствие интерфейса взаимодействия с пользователем. Единственное, что вы можете сделать после запуска программы - так это нажать пару раз Control+Break для ее прерывания. Это программа из разряда тех, что в мире Unix называют "Демон" (Daemon) - невидимый дух, молча делающий свою работу. Вся необходимая отчетная информация записывается в файл протокола, хотя при желании можно настроить binkd и на одновременный вывод текста отчета на экран, но как правило это не делается - ни к чему.

Замечательной особенностью Binkd является его многопоточность. В конфигурационном файле определяется количество серверных ("вам звонят" и клиентских "звоните вы") соединений-нитей, и можно не заботиться как прежде о занятости вашего телефона - binkd потянет столько сеансов связи, сколько вы описали.

Появление описанных выше способов проброса Fido-over-Internet поставило дополнительную задачу распознавания Internet-адреса компьютера по его Fido-адресу. Суть проблемы заключается в следующем. Вот как выглядит описание адреса одной из систем, с которыми я обмениваюсь почтой, в конфигурационном файле моего binkd:

2:5049/64@fidonet 194.186.108.130 <пароль>

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

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

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

Для решения этой проблемы системными операторами Региона 50 FidoNet был зарегистрирован Internet-домен fidonet.net. Теперь все компьютеры, использующие технологию binkd для передачи почты Fido, регистрируются в домене fidonet.net стандартным образом, например мой компьютер - как f12.n5049.z2.fidonet.net .

В последнюю версию binkd встроено распознавание адресов в домене fidonet.net, и строка, приведенная выше, упростилась:

2:5049/64@fidonet <пароль>

Теперь, когда binkd пытается отправить почту для узла 2:5049/64, он самостоятельно строит символьный интернет-адрес вида f12.n5049.z2.fidonet.net и получает через службу имен Internet (DNS) цифровой Internet-адрес, который и используется при установлении соединения. Появление binkd и протокола binkp вызвало желание разработчиков почтовых программ использовать эту новую технологию. Как минимум еще две почтовых shareware-программы (Argus и BBBS), используют протокол binkp.

Свобода Internet и Закон FidoNet

"...Personally, I consider "policy4"
to be a smelly old crock of shit..."
(Oснователь FidoNet Дженингс о последней версии FidoNet Policy.)

Мой терпеливый читатель, мы рассмотрели основные способы проброса FidoNet-почты через Internet. Они все достаточно удобны, широко используются членами сети, количество систем, подключенных через Internet, стремительно растет. Есть и участники сети, подключенные (в порядке эксперимента) только через Internet. Создан ряд эхо-конференций, в которых активно обсуждаются различные аспекты использования Internet в FidoNet.

Так, популярная международная эхо-конференция IP_CONNECT посвящена обсуждению проблемы включения Internet-систем в адресный список FidoNet - nodelist. В конференциях SU.IP.SYSOP и RU.FIDO.NEXTGEN обсуждение ведется на русском языке.

Однако распространение Fido-over-IP породило проблему, решение которой до сих пор не найдено. Вот она, во всей своей неприглядности:

Fido-over-Internet противоречит основному закону FidoNet - Fido Policy.

Действующая редакция Полиси 4.07 принята в 1989 году. Восемь лет - огромный срок, за это время многие положения Полиси устарели. Устарели даже в приложении к FidoNet без использования Internet-транспорта. Что же говорить о Fido-over-Internet - в 1989 году об этом никто не думал.

Так, например, Полиси устанавливает в качестве стандартного протокола соединения, который необходимо должен поддерживаться любой FidoNet - системой, так называемый протокол FTS-0001, основанный на древнем протоколе передачи файлов Xmodem. Xmodem не только старый, но и попросту плохой протокол. Он неважно работает на обычных телефонных линиях, а уж использовать его при соединении через Internet было бы верхом глупости.

И тем не менее дискуссия в IP_CONNECT то и дело возвращается к проблеме Internet-реализации FTS-0001. Вот оно - желание "изменить, ничего не меняя" - девиз, под которым пока происходит внедрение Internet-транспорта в жизнь FidoNet.

Есть и другие положения Полиси, полностью теряющие смысл в Fido-over-Internet. Пока эта проблема не будет решенa, Internet так и останется в Fido "теневым" транспортом. Pано или поздно придется назвать вещи своими именами. Либо FidoNet изменится формально, допустив преобразование основных положений своего основного закона - Policy и разрешив полноправное подключение к сети системам, соединенных с сетью только через Internet, - либо так и будет хиреть, вымирать, уподобляясь динозаврам - былая мощь и сила, ныне архаика.


Postcriptum: Если ты, мой читатель, хочешь быть в курсе жизни FidoNet и последних новостей Fido-over-Internet, посети WEB-страничку TartarNet по адресу http://www.n5049.z2.fidonet.net.
(C)1997 Amir Shabashvili