Мини-HOWTO: Работа по выделенным линиям

Rob van der Putten

Перевод: Павел Гашев, ASPLinux

Аннотация

Настройка модема и pppd для работы на двухпроводных выделенных линиях.


Содержание
Авторские права
Введение
Модем
PPPD

Более свежие (бета) версии этого HOWTO ищите на http://www.sput.signature.nl/software/leased-line/


Авторские права

Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но так или иначе автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: , или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу


Введение

Что такое "выделенная линия"

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

Это документ описывает:

Как сконфигурировать ваш модем и pppd для использования на двухпроводной выделенной линии.

Этот документ НЕ описывает:

SLIP, инсталяцию pppd, синхронный обмен данными, модемы с прямой передачей, xDSL.


Предположения

Предполагается, что в вашей системе уже настроен и работает pppd, и есть терминальная программа, при помощи которой можно конфигурировать модем (Minicom).


Модем

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

У вас должно быть 2 идентичных (включая номер версии) внешних модема, поддерживающих работу на выделенной линии. Убедитесь в этом! Убедитесь также, что у модема есть вся документация. Кроме того вам понадобится:


Настройка модема

В общих чертах настройка модема такова: Настройте программу для работы с удаленным терминалом (Minicom) на максимально возможную скорость; 57600 б/с для 14400 и 115200 б/с для 28800 и выше. Многие используют очень длинные строки инициализации модема, начинающиеся с AT&F и содержащие кучу специфичных команд. Зачем так усложнять? Большинство программ используют те же настройки, и их вполне можно записать в энергонезависимую память модема и использовать `ATZ' в качестве инициализации во всех программах. При этом вы можете поменять модем без перенастройки программного обеспечения.

Большинству программ требуются следующие настройки:

  • Фиксированную скорость передачи

  • Аппаратный контроль передачи RTS-CTS (не X-ON/X-OFF)

  • 8 бит, без четности, 1 стоповый бит

  • Модем должен давать ПРАВИЛЬНЫЙ DCD (&C1)

  • Модем НЕ должен игнорировать DTR (&D2 или &D3)

Проверьте это при помощи AT&V или AT&Ix (посмотрите документацию модема).

Эти установки могут быть не похожи на заводские (&F), так что начинать строку инициализации с AT&F в нашем случае - не очень хорошая идея. Хотя вполне логично это сделать, если вы уверены, что нарушены установки в энергонезависимой памяти. Если вы уверены, что все настроили правильно, сохраните это в энергонезависимой памяти (AT&W) и попробуйте передать пару текстовых и двоичных файлов при помощи Z-модема. Если все нормально, переходим к следующему шагу - настройке модемов на выделенную линию.

Найдите в документации, как настроить ваш модем на "тупой" (dumb) режим, и (что очень немаловажно) как его из этого режима вывести. Убедитесь, что вы действительно настроили модем на максимальную скорость. Модем в "тупом" режиме игнорирует все `AT' команды и не может настроиться на скорость COM порта - он использует скорость, хранящуюся в S-регистре модема, записанную туда командой AT&W.

Теперь настройте следующее:

  • Сброс модема при изменении DTR (&D3, иногда это в S-регистре). Это требуют некоторые провайдеры!

  • Режим выделенной линии (&L1 или &L2, посмотрите документацию модема)

  • Удаленный модем настройте на автоответ (S0=1), а свой модем на вызов (S0=0)

  • Выключите вывод результатов (Q1, иногда в "тупом" режиме это делается автоматически)

  • "Тупой" режим (\D1 or %D1, иногда - перемычка). В "тупом" режиме модем игнорирует все AT команды (возможно, вам потребуется отключить символ ESC).

Запишите настройки в энергонезависимую память (&W).


Проверка

Подключите модемы к двум компьютерам через кабель RS232 и соедините модемы кабелем RJ11. Запустите терминальную программу (Minicom (Linux), procom или telix (DOS)) на обоих компьютерах. Текст, набираемый но одном компьютере, должен появляться на другом, и наоборот. Если на экран выводится мусор, проверьте настройки COM порта. Отключите и снова включите кабель RJ11. Подождите пока соединение восстановится. Отключите и снова включите кабеля RS232, выключите и снова включите модемы, перезапустите Minicom. Во всех случаях модемы должны соединяться на максимально возможной скорости. Проверьте, что оба модема действительно игнорируют ESC (+++). Если необходимо, отключите его.

Если все это работает, вам осталось только выключить звук на удаленном модеме (M0) и поставить низкую громкость звука на своем (L1).


Примеры

Hi-Tech

Это конфигурационная строка типична и должна работать на большинстве модемов

Вызывающий (локальный) модем:

ATL1&C1&D3&L2%D1&W&W1

Отвечающий (удаленный) модем:

ATM0L1&C1&D3&L2%D1S0=1&W&W1


Tornado FM 228 E

Это должно работать:

Вызывающий (локальный) модем:

ATB15L1Q1&C1&D3&L2&W&W1

Отвечающий (удаленный) модем:

ATM0B15M0Q1&C1&D3&L2S0=1&W&W1

Смените положение перемычки "немого" режима с 2-3 на 1-2.

К сожалению, модемы соединяются только после жесткого сброса (выключения питания) при установленном DTR. Я разработал схему , сбрасывающую модем при поднятии DTR. Тем не менее, FreeBSD pppd это не очень нравится. Проблема решается комбинацией &D0 и схемы - сброс модема происходит при сбросе DTR.


Tron DF

ESC символ может быть выключен установкой S2 > 127;

Вызывающий модем:

ATL1&L1Q1&C1&D3S2=171\D1&W

Отвечающий модем:

ATM0&L2Q1&C1&D3S0=1S2=171\D1&W


US Robotics Courier V-Everything

USR Sportster и USR Courier-I не поддерживают работу на выделенной линии. Вам нужен Courier V-Everything. На веб-сайте USR `описывается', как настроить Courier на выделенную линию. Тем не менее, следуя этим инструкциям, вы получите полностью тупой модем, которым нельзя управлять.

USR Courier может быть настроен перемычками, но сначала вам понадобится программная настройка. Для начала, убедитесь, что используете правильные заводские установки. В отличии от других модемов, у USR Courier их три (&F0, &F1 and &F2). Вы должны использовать &F1. Учтите, что при команде AT&F загружаются установки &F0! Для сброса модема при изменении DTR вам нужно установить бит 0 регистра S13. Кроме того, нужно настроить его на выделенную линию (&L1); ATS13=1&L1&W Переключатели должны быть выставлены следующим образом:

3

OFF Выключает вывод результата команд

4

ON Выключает AT команды

5

ON Для вызывающего, OFF Для отвечающего

8

OFF "Немой" режим


PPPD

Вам нужен сам pppd (Point to Point Protocol Daemon) и понимание, как он работает. Если необходимо, прочитайте RFC или Linux PPP HOWTO. Вы не используете процедуру входа, не используете (m)getty и вам не нужна (липовая) аутентификация, вам не нужны никакие чат-скрипты. На самом деле, из-за того, что модемы тоже настроены, вам нужно настроить pppd на работу с нуль-модемным кабелем.

Для надежной связи, вам нужно использовать следующие критерии:


Настройка

Допустим модем подключен к COM2. Локальный IP адрес - `Local_IP'. Удаленный IP адрес - `Remote_IP'. Значение MTU - 576. В этом случае, /etc/ppp/options.ttyS1 должен выглядеть примерно так:

crtscts
mru 576
mtu 576
passive
Loc_Ip:Rem_Ip
-chap
modem
#noauth
-pap
persist

Подразумевается, что `asyncmap 0', `lock', `modem' и `-detach' уже находятся в /etc/ppp/options. Если нет, добавьте их в /etc/ppp/options.ttyS1. Итак, если IP адрес вашей системы - 192.168.1.1, а удаленной - 10.1.1.1, то /etc/ppp/options.ttyS1 должен быть таким:

crtscts
mru 576
mtu 576
passive
192.168.1.1:10.1.1.1
-chap
modem
#noauth
-pap
persist

Файл options.ttyS1 на удаленной системе:

crtscts
mru 576
mtu 576
passive
10.1.1.1:192.168.1.1
-chap
modem
#noauth
-pap
persist

Опция passive ограничивает количество попыток соединения. Опция persist заставляет pppd работать в случае разрыва или невозможности соединения. Если вы используете telnet при большом файловом обмене (FTP или HTTP), вы можете использовать меньший MTU и MRU (например 296), т.к. в этом случае удаленная система будет отвечать быстрее. Если вы используете линию для перекачки больших файлов, вы можете установить MTU и MRU равными 1500. Только учтите, что UDP не делится на фрагменты, т.е., для передачи UDP пакетов размером 512 байт, MTU должен быть равен 542 байтам. Опция noauth может быть использована в новых версиях pppd.


Скрипты

Запуск и поддержка pppd

Вы можете запустить pppd во время запуска системы (rc скрипты). Но в этом случае, если pppd упадет, вы останетесь без связи. Более стабильным решением является запуск pppd из /etc/inittab:

s1:23:respawn:/usr/sbin/pppd /dev/ttyS1 115200

В этом случае pppd будет постоянно перезапускаться. Убедитесь в том, что у вас установлена опция `-detach' (nodetach в новых версиях), иначе inittab запустит множество процессов pppd с последующим `respawning too fast' (перезапуск происходит слишком быстро).

Примечание: Некоторые старые системы не понимают скорость `115200'. В этом случае, вам нужно поставить скорость 38400 и установить флаг `spd_vhi' d команде setserial. В некоторых системах нужно использовать `cua' вместо `ttyS'.


Установка маршрутизации

Основной маршрут может быть включен опцией defaultroute или с помощью скрипта /etc/ppp/ip-up:

#!/bin/bash
case $2 in
     /dev/ttyS1)
          /sbin/route add -net 0.0.0.0 gw Rem_Ip netmask 0.0.0.0
          ;;
esac

Ip-up можно также использовать для синхронизации времени (netdate).

Конечно, маршрут, устанавливаемый в ip-up, может быть не основным. Возможен вариант, когда ваш ip-up устанавливает маршрутизацию на удаленную сеть, а удаленная система устанавливает маршрутизацию на вашу сеть. Если у вас сеть 192.168.1.0, а интерфейс для ppp - 192.168.1.1, ip-up на удаленной машине должен выглядеть примерно так:

#!/bin/bash
case $2 in
   /dev/ttyS1)
      /sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0
      ;;
esac

('case $2' и `/dev/ttyS1)' необходимо, если у вас несколько ppp-каналов. Ip-up будет запускаться каждый раз, но исполняться будет только кусок между `/dev/ttySx)' и `;;', устанавливая маршрутизацию для данного ttyS. Подробнее о маршрутизации читайте в соответствующем разделе NET3-4-HOWTO.


Проверка

Аналогично проверке модемов. Если все работает, установится связь с удаленной системой. В противном случае, первое, что вы должны проверить, это скорость COM портов. Часто встречающаяся ошибка - настройка модемов через Minicom на одну скорость, а pppd на другую. НЕ выйдет! Должна быть установлена та же скорость!