Мини-HOWTO: Работа по выделенным линиям |
---|
Пред. | | |
PPPD
Вам нужен сам pppd (Point to Point Protocol Daemon) и понимание, как он
работает. Если необходимо, прочитайте RFC или Linux PPP
HOWTO. Вы не используете процедуру входа, не используете (m)getty и
вам не нужна (липовая) аутентификация, вам не нужны никакие чат-скрипты. На
самом деле, из-за того, что модемы тоже настроены, вам нужно настроить pppd
на работу с нуль-модемным кабелем.
Для надежной связи, вам нужно использовать следующие критерии:
Сразу после загрузки системы pppd должен поднять DTR и дождаться DCD
(поднимется соединение).
Если удаленная система не отвечает, pppd должен дождаться ответа.
Если соединение разрывается, pppd должен сбросить модем (сбросить и поднять
DTR) и попытаться снова поднять связь.
Если качество связи ухудшается, pppd должен сбросить модем и снова поднять
связь.
Должен существовать процесс, контролирующий pppd. В случае чего, он должен
перезапустить 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 на другую. НЕ
выйдет! Должна быть установлена та же скорость!