Ключевые слова:modem, xdsl, leased-line, linux, ppp, (найти похожие документы)
From: Andy Gorev <gorev@mail333.com>
Newsgroups: http://www.atmsk.ru
Date: Mon, 20 Jun 2003 13:01:37 +0000 (UTC)
Subject: Клиентское ppp-соединение с провайдером через Zyxel Omni 128L IDSL modem
Оригинал: http://www.atmsk.ru/viewtopic.php?p=675
Пользователи подобного железа, как правило, владельцы выделенной
линии, которая должна функционировать круглосуточно. С серверной
стороны обычно работает какое-либо IDSL оборудование типа Zyxel
Prestige 1600 или подобных. По серверной части IDSL надо смотреть
сайты zyxel или cisco (самые популярные решения).
Задача: организовать клиентское ppp-соединение с провайдером,
используя эту самую линию и Омник128L.
Я приведу здесь типовое решение подобного вопроса с комментариями.
1) Подключаем модем к асинхронному порту, например /dev/ttyS0. При
включении у него проходит тестирование, и, через несколько секунд,
должна зажечься лампочка LNK. Если этого не произошло, то либо забыли
вставить в модем линию (порт ISDN модема), либо линия неисправна, либо
выключено оконечное оборудование провайдера. В очень редких случаях
лампочка может не загораться, а все будет работать. Но таких случаев
на моей практике единицы.
2) Проверяем работоспособность порта и связь с модемом. Это можно
сделать любым гипертерминальным софтом. В дистрибутивах обычно есть
minicom. Говорим minicom -s и настраиваем наш порт. После этого на
команду AT должны получить OK. Собственно как и любой обычный модем.
Если этого нет, проверяем правильность выбора порта, и включен ли он в
BIOS. Можно сказать #setserial /dev/ttyS0 или проверить proc/ioports
на предмет serial.
3) Устанавливаем пакет ppp.
4) Для обеспечения постоянной работы pppd самое простое решение
прописать его в inittab. Хотя можно его конечно поднимать и руками
(особенно на этапе отладки). Строка в иниттабе:
S1:2345:respawn:/usr/sbin/pppd ttyS0 115200
Портовую скорость лучше не ставить выше, т.к. пропускной способности
обычных COM-портов не хватит, и это приведет только к ухудшению
скорости. Детальный синтаксис иниттаба - man inittab.
5) По умолчанию пакет ppp содержит файл /etc/ppp/options с одной
опцией lock. Можно править этот файл, но правильнее будет создать файл
/etc/ppp/options.ttyS0 c таким содержанием:
modem
crtscts
asyncmap 0
nolog
noauth
nodetach
noipdefault
defaultroute
connect '/usr/sbin/chat -f /etc/ppp/chat-dsl'
Значение опций можно прочитать в man pppd. Отдельно остановлюсь лишь
на опцииях:
- noauth - предполагает что провайдер не требует PAP/CHAP;
- noipdefault - он выдает нам адрес, при установлении соединения;
- defaultroute - "использовать удаленный шлюз по умолчанию" в
терминологии виндос.
У чата есть опция -v, которую можно использовать, чтобы увидеть как
происходит диалог (в SYSLOG).
6) Создаем чат-скрипт для общения нашего модема и оборудования
провайдера. В предыдущем пункте мы обращались к /etc/ppp/chat-dsl. ОК,
создаем его например с таким содержанием:
ABORT ERROR
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
'' \d\d+++\d\dATH0
'' AT&F
OK ATE0&K44B40DT912
CONNECT
Про чат отдельная история. Выяснилось, что Омник 128L не корректно
работает с сигналом DTR, т.е. забивать он хотел на все команды типа
AT&D#. Как следствие, если умирает pppd, DTR гаснет, а модем находится
off-hook (т.е. трубка снята - связь в порядке)! Поэтому все
последующие попытки натравить pppd на порт заканчивались: LCP timed
out, chat script failed, матерщиной, etc.
А всего-то надо было или выключить модем или "опустить трубку".
Как-раз этим и занимается первая строчка чата, при поднятии
соединения. Она "кладет" модем принудительно. Далее стандартные
AT-команды, "супер-секретное" и нигде-не-документированное описание
которых можно узнать в миникоме по команде AT$ icon_biggrin.gif
Отдельно остановлюсь на двух вещах:
а) команда ATB40 включает "асинхронный_ppp-2-синхронный_IDSL"
конверсию, т.е. по сути важна; а сжатие/коррекция (&K44) c Престижами
не работает. Но это не сказывается, канал-то цифровой.
б) телефонный номер 912 включает скорость 128 К/бит, если ее
поддерживает провайдер. Принудительно отключить один из ISDN каналов
можно если звонить по телефону 91. Скорость в этом случае будет 64К.
Детальное описание работы чата можно найти в man chat.
7) Если в п.4) использовали inittab, говорим #init q и смотрим на 12-й
консоли, как устанавливается соединение и выдается адрес.
8а) Прописываем в /etc/resolv.conf сервера имен провайдера.
8б) Если дистрибутив Альтовский, то update_chrooted
9) Юзаем, пьем кофе, радуемся, ну и так далее icon_smile.gif