LINUX.ORG.RU
ФорумAdmin

опять - 25 , и никто не может помочь !!!


0

0

Помогите установить ppp коннект. Провайдер использует pap. В файл pap-secrets прописал логин и пассворд. Вот что пишет мне при коннекте : Aug 11 15:54:53 master pppd[658]: pppd 2.3.8 started by root, uid 0 Aug 11 15:54:54 master chat[659]: timeout set to 3 seconds Aug 11 15:54:54 master chat[659]: abort on (\nBUSY\r) Aug 11 15:54:54 master chat[659]: abort on (\nNO ANSWER\r) Aug 11 15:54:54 master chat[659]: abort on (\nRINGING\r\n\r\nRINGING\r) Aug 11 15:54:54 master chat[659]: send (rAT^M) Aug 11 15:54:54 master chat[659]: expect (OK) Aug 11 15:54:54 master chat[659]: rAT^M^M Aug 11 15:54:54 master chat[659]: OK Aug 11 15:54:54 master chat[659]: -- got it Aug 11 15:54:54 master chat[659]: send (ATH0^M) Aug 11 15:54:54 master chat[659]: timeout set to 90 seconds Aug 11 15:54:54 master chat[659]: expect (OK) Aug 11 15:54:54 master chat[659]: ^M Aug 11 15:54:55 master chat[659]: ATH0^M^M Aug 11 15:54:55 master chat[659]: OK Aug 11 15:54:55 master chat[659]: -- got it Aug 11 15:54:55 master chat[659]: send (ATDP2388888^M) Aug 11 15:54:55 master chat[659]: expect (CONNECT) Aug 11 15:54:55 master chat[659]: ^M Aug 11 15:55:29 master chat[659]: ATDP2388888^M^M Aug 11 15:55:29 master pppd[658]: Serial connection established. Aug 11 15:55:29 master pppd[658]: Using interface ppp0 Aug 11 15:55:29 master pppd[658]: Connect: ppp0 <--> /dev/ttyS1 Aug 11 15:55:29 master chat[659]: CONNECT Aug 11 15:55:29 master chat[659]: -- got it Aug 11 15:55:29 master chat[659]: send (^M) Aug 11 15:56:00 master pppd[658]: LCP: timeout sending Config-Requests Aug 11 15:56:00 master pppd[658]: Connection terminated. Aug 11 15:56:00 master pppd[658]: Receive serial link is not 8-bit clean: Aug 11 15:56:00 master pppd[658]: Problem: all had bit 7 set to 0 Aug 11 15:56:00 master pppd[658]: Hangup (SIGHUP) Aug 11 15:56:00 master pppd[658]: Exit.

Чего ему не нравится ?

anonymous

Анамнез:
У тебя pppd считает, что модем установил соединение до того,
как модем на самом деле выдал коннект. 

Aug 11 15:55:29 master pppd[658]: Connect: ppp0 <--> /dev/ttyS1
^ pppd начинает слать свои протокольные последовательности, и
ждать ответа на них,

А у тебя соединения еще нет и chat его ждет:

Aug 11 15:55:29 master chat[659]: CONNECT 
Aug 11 15:55:29 master chat[659]: -- got it
^ Модем установил соединение только сейчас.

Aug 11 15:55:29 master chat[659]: send (^M)
^ Это тоже лишнее, chat должен завершиться после получения CONNECT!!!

Aug 11 15:56:00 master pppd[658]: LCP: timeout sending
^ pppd так и не смог ничего отправить, у него доступа к порту не было,
подождав 30 сек он отваливается.

Диагноз: 1. У тебя неверные последовательности chat и/или ты неправильно
запускаешь связку chat+pppd

Лечение.

chat примерно должен выглядеть так:

TIMEOUT 40
ABORT "NO CARRIER"
ABORT "BUSY"
ABORT "NO DIAL"
ABORT ERROR
REPORT CONNECT
REPORT CARRIER
'' 'AT&F1'
OK 'ATQ0 X4 V1 E1 L1 S0=0 S6=2 S7=100 &C1'
OK 'ATDP2388888'
CONNECT

А запускать его должен сам pppd:

PPP_FLAGS="115200 modem lock crtscts defaultroute"  
pppd connect '/usr/sbin/chat -v -f /etc/ppp/chat.conn' /dev/modem $PPP_FLAGS

Это была часть скрипта ppp-up, еще много параметров pppd находятся в
options.

Посмотри примеры скриптов, которые идут вместе с доками к pppd.

speer
()

Тогда покажите где лажа. Скрипты я взял стандартные из rpm пакета и изменил под свои значения . Вот мой ppp-on:

#!/bin/sh
TELEPHONE=2388888
LOCAL_IP=0.0.0.0
REMOTE_IP=0.0.0.0
NETMASK=255.255.255.0
#
export TELEPHONE
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS1 57600 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

Вот мой ppp-on-dialer:
#!/bin/sh
exec chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 40 \
OK ATDP$TELEPHONE \
CONNECT

Файл options оставил по умолчанию. А в pap-secrets просто написал
my_login * mypassword
Помогите настроить PPP . HELP !

anonymous
()

Кажется дело именно во втором скрипте и/или в способе его вызова через exec, разбираться с ним трудно из-за неудобочитаемости. Поэтому преобразуй его в отдельный файл, chat.conn, к примеру. Его запиши туда же, где лежат эти твои скрипты (обычно /etc/ppp).

Далее, у тебя нет инициализации модема, хотя бы ATZ! Поэтому проще взять тот файл, что я привел выше. Он абсолютно рабочий, под generic modem. У меня работает с какой-то дрянью на Rockwelle и со Sportster'ом. Никакие \r\n и все остальные слешовые последовательности в файл пихать не надо!

Первый скрипт в целом ничего, мелкие замечания:

Если модем у тебя новый и держит 33600 и выше, вместо 57600 поставь 115200, вместо connect $DIALER_SCRIPT, то что у меня выше. Все лабуду с IP и нетмаск можно выкинуть, они по умолчанию имеют такие значения, но это не обязатльно.

Попробуй, отпиши чего получится. Если будут проблемы, опять пришли messages и свои скрипты. Только поменяй режим форматирования на preformatted text, чтобы глаза не ломать при чтении!!!

speer
()

Наконец-то что-то получилось ! Ура! 
Твой скрипт не захотел работать, но очень помог . Я в него добавил одну строку и удалил 1. И заработало. Вот chat скрипт на котором я остановился пока :

TIMEOUT 40
ABORT 'BUSY'
ABORT 'NO ANSWER'    # тут еще подописываю фигни типа RINGING...
'' \rAT              # без этой строки никак не хотел 
OK 'AT&F1'
OK 'ATDP2388888'
CONNECT

 Ну а сам запускной скрипт оставил без изменений:
PPP_FLAGS="115200 modem lock crtscts defaultroute"
pppd connect '/usr/sbin/chat -v -f /etc/ppp/chat_script' /dev/ttyS1 $PPP_FLAGS

 Есть несколько вопросов:
 
В логах пишет вот что:

Aug 13 23:26:38 master pppd[922]: pppd 2.3.8 started by root, uid 0
Aug 13 23:26:39 master chat[923]: timeout set to 40 seconds
Aug 13 23:26:39 master chat[923]: abort on (BUSY)
Aug 13 23:26:39 master chat[923]: abort on (NO ANSWER)
Aug 13 23:26:39 master chat[923]: send (^MAT^M)
Aug 13 23:26:39 master chat[923]: expect (OK)
Aug 13 23:26:39 master chat[923]: ^MAT^M^M
Aug 13 23:26:39 master chat[923]: OK
Aug 13 23:26:39 master chat[923]:  -- got it
Aug 13 23:26:39 master chat[923]: send (AT&F1^M)
Aug 13 23:26:39 master chat[923]: expect (OK)
Aug 13 23:26:39 master chat[923]: ^M
Aug 13 23:26:39 master chat[923]: AT&F1^M^M
Aug 13 23:26:39 master chat[923]: OK
Aug 13 23:26:39 master chat[923]:  -- got it
Aug 13 23:26:39 master chat[923]: send (ATDP2388888^M)
Aug 13 23:26:40 master chat[923]: expect (CONNECT)
Aug 13 23:26:40 master chat[923]: ^M
Aug 13 23:27:14 master chat[923]: ATDP2388888^M^M
Aug 13 23:27:14 master pppd[922]: Serial connection established.
Aug 13 23:27:14 master pppd[922]: Using interface ppp0
Aug 13 23:27:14 master pppd[922]: Connect: ppp0 <--> /dev/ttyS1
Aug 13 23:27:14 master chat[923]: CONNECT
Aug 13 23:27:14 master chat[923]:  -- got it
Aug 13 23:27:19 master pppd[922]: Remote message: ^F
Aug 13 23:27:19 master modprobe: can't locate module ppp-compress-21
Aug 13 23:27:19 master modprobe: can't locate module ppp-compress-26
Aug 13 23:27:19 master modprobe: can't locate module ppp-compress-24
Aug 13 23:27:19 master pppd[922]: local  IP address 212.9.229.22
Aug 13 23:27:19 master pppd[922]: remote IP address 212.9.224.45

Что значит can't locate module и как это исправить ?
Вопрос 2. Можно ли как нибудь сделать так , чтоб не прописывать в resolv.conf домен и nameserver-а провайдера , а то у меня на тачке стоит DNS для локалки , и когда нет dial up коннекта - то сильно тормозит резольвинг адресов. Может как то черз if-up можно записывать в resolv.conf адреса nameserver-ов провайдера и его домен. Как это делать. Есть еще опция usepeerdns - получает данные о провайдере но как реализовать , чтоб записывать их динамически в resolv.conf ?   
 

 Большое спасибо за помощь!


 

anonymous
()

Ну наконец-то помогло!

Но у тебя какой-то chat странный, все-таки. Это теперь не мешат, но он зачем-то добавляет лишние CRы (^M). Например здесь:

Aug 13 23:26:39 master chat[923]: AT&F1^M^M

Aug 13 23:27:19 master modprobe: can't locate module ppp-compress-21

Это он пытается загрузить модули поддежки сомпрессии по различным протоколам. Какие именно - прописано в /etc/modules.conf, смотри по номеру. Их надо скомпилять из сорцов, и положить туда-же где остальные (/lib/modules/kernel-ver). Но и без них работает, толко медленнее.

Когда закончишь настройки, можешь убрать параметры debug и -v из вызовов pppd и chat - будет меньше мусора в мессаджес.

speer
()

Домен можешь не прописывать. DNS надо, но не обязательно провайдера, а любой доступный, когда ppp поднят. Хотя провайдерский, скорее всего быстрее будет.

speer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.