Мини-HOWTO: Работа по выделенным линиям | ||
---|---|---|
Пред. |
Вам нужен сам 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 во время запуска системы (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 на другую. НЕ выйдет! Должна быть установлена та же скорость!