The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"pppd и его друг модем"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"pppd и его друг модем"
Сообщение от Vofka emailИскать по авторуВ закладки on 23-Сен-03, 23:21  (MSK)
Народ !!!
Помогите кто чем может, приму на рассмотрение даже самые бредовые идеи.

Я уже раз писал. теперь повторюсь еще раз.Потому как в тот раз никто ниче не ответил.

Поставил у себя шлюз пор FreeBSD. Провайдеру дозваниваюсь через pppd.
Все вроди работает, но если разрывается связь, то pppd даже не пытается перезванивать, но если выключить и включить модем, то все нормально перезванивает. В чем может быть проблема ??? Если ложит трубку по прошествию времени простоя, то потом по запросу перезванивает нормально.
Параметры системы такие:
FreeBSD 4.7-RELEASE
pppd  версии 2.3.5 (пересобирал после патча)
модем: Zyxel OMNI 56K NEO

В файлах конфигурации такие настройки (настраивал по инструкциям отсюда http://sysoev.ru/pppd):
//-----------------------------
Файл: конфигурация ядра

Добавил такие строчки (и соответственно пересобрал ядро)

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPDIVERT

//-----------------------------
Файл : /usr/src/usr.sbin/pppd/auth.c (исходники pppd)

Добавил патч

     itime = MIN(idle.xmit_idle, idle.recv_idle);
     if (itime >= idle_time_limit) {
+ if (persist && ! demand)
+     persist = 0 ;
/* link is idle: shut it down. */
syslog(LOG_INFO, "Terminating connection due to lack of activity.");
lcp_close(0, "Link inactive");

//-----------------------------
Файл : /etc/gettytab
Добавил 2 строчки чтоб понимался PAP

std.57600|57600-baud:\
:np:sp#57600:\
+ :pp=/usr/sbin/pppd.sh:
std.115200|115200-baud:\
:np:sp#115200:\
+ :pp=/usr/sbin/pppd.sh:

//-----------------------------
Файл : /etc/ppp/options (часть опций запуска pppd)

  modem crtscts asyncmap 0


//-----------------------------
Файл: /etc/ppp/pap-secrets (данные для ваторизации с провайдером)

  MyLogin ProviderName MyPassword

//-----------------------------
Файл: /etc/ppp/script (скрипт дозвона для chat)

    ABORT "ERROR"
    ABORT "NO DIALTONE"
    TIMEOUT 10
    "" "AT"
    "OK" "ATZ"
    ABORT "BUSY"
    ABORT "NO ANSVER"
    ABORT "NO CARRIER"
    ABORT "Login incorrect"
    "OK" "ATDT3322129"
    TIMEOUT 125
    "CONNECT" "\\c"
    TIMEOUT 30
    "~" "\\c"
//-----------------------------
Файл: /etc/rc.conf

usbd_enable="YES"
moused_flags="-3"
mousechar_start="3"
moused_port="/dev/psm0"
moused_type="auto"
moused_enable="YES"
saver="daemon"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"
keyrate="normal"
keymap="ru.koi8-r"
hostname="Proxy "
gateway_enable=YES
apm_enable="YES"
linux_enable="YES"
network_interfaces="rl0 lo0"
ifconfig_lo0="inet 127.0.0.1"
ifconfig_rl0="inet 192.168.1.5  netmask 255.255.0.0"
#  NAT & FireWall
firewall_enable="YES"
firewall_type="open"
natd_enable="YES"
natd_interface="ppp0"
natd_flags="-f /etc/natd.conf"  

//-----------------------------
Файл: /etc/start_if.ppp0 (скрипт запуска pppd)

pppd cuaa0 115200 lock connect 'chat -v -f /etc/ppp/script' \
    user MyLogin remotename ProviderName \
    demand :212.113.37.140 \
    idle 120 holdoff 5 \
    defaultroute debug

//-----------------------------
Файл: /usr/sbin/pppd.sh (скрипт запускающий авторизацию PAP(CHAP) )

#!/bin/sh

/usr/sbin/pppd auth
//-----------------------------

Со времен последней просьбы провел массу экспериментов и вот чего добился:
1) по логам (их посмотру в моментразрыва связи) я определил что pppd видит (выводит а логи) что связь разорвалась только тогда когда выключаешь модем, а не тогда когда вытягиваешь ждек из модема и даже не тогда когда судя по лампочкам модем бросает трубу (и что интересно после отбирания у модема линии он может еше с пол минуты мигать лампочками как будто все нормально)
2)Если уменьшить время таймаута по простою,строка запуска скажем вот такая
pppd cuaa0 115200 lock connect 'chat -v -f /etc/ppp/script' \
    user MyLogin remotename ProviderName \
    demand :212.113.37.140 \
    idle 30 holdoff 5 \
    defaultroute debug
то таки через пару минут pppd одупляется и переконекчевается (на сколько я понимаю при разорванной связи пакеты через модемное соединение не идет, и pppd сам бросает трубку по таймауту). И как бы такой вариант работы практически устраивал бы, тка проработало пол дня, а потом pppd забил и на это и опять переконекчивается тока после выключения.(но в момент эксперементов с параметром idle) я видел в логах что pppd таки понимал когда модем клал  трубу.
может проблема именно в модеме ?(хотя с другой стороны на виндозной машине проблем не было).

Народ подскажите хоть что нибудь, а то я уже запарился с этим делом :(


  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "pppd и его друг модем"
Сообщение от qq Искать по авторуВ закладки on 24-Сен-03, 00:50  (MSK)
попробуй у модема компрессию отключить...
AT-командой, какой - глянь в мануале
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "pppd и его друг модем"
Сообщение от aka Искать по авторуВ закладки on 24-Сен-03, 03:49  (MSK)
вообще-то pppd 2.3.5 совсем древний, последний для линукса 2.4.1, для фри
не знаю, кажется 2.3.11, сам посмотри в портах или через cvsup.  Модемы Zyxel OMNI 56K NEO и  DUO имееют св-во бросать трубу не сразу, а через 20-30 сек. Попробуй юзать pppd через mgetty. Посети сайт zyxel.ru, возможно есть новые прошивки для твоего модема.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "pppd и его друг модем"
Сообщение от 123456789098 emailИскать по авторуВ закладки on 24-Сен-03, 16:54  (MSK)
спасибо за идеи. что получится пока не знаю. модем %^&&* сдох. о результатах напишу когда модем поменяю.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "pppd и его друг модем"
Сообщение от DogEater Искать по авторуВ закладки on 24-Сен-03, 22:29  (MSK)
кстати, если есть анлимимит то я организовывал постоянный доступ по диалапу так:
прописывал pppd в /etc/inittab. Если связь падает - то падает и демон ppp, а inittab поднимает его. Единственное но - в опциях обязятельно укажи параметр nodetach а то при каждом отпадании демона от контрольного терминала в фон inittab считает что демон сдох очень быстро рестартует его и отключат вовсе
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру