Страница 1 из 2

PPP не переподключается при разрыве связи

Добавлено: 2009-09-22 19:58:07
Sergey002
У меня вопрос к уважаемым гуру. При разрыве связи, например когда я вытаскиваю провод питания на пару минут из ADSL модема. Или когда провайде со свое стороны сам обрыват связь по каким то неизвестным для меня причинам. FreeBSD не востанавливает подключения. Вернее она даже не то что бы не востанавливает его, она даже не прерывает старого. Например при отсутствии соединения ifconfig показывает активный tun0 с присвоеным IP :-o

Вот моя конфигурация:

/etc/rc.conf
gateway_enable="YES"
hosname="cybr.my.domain"
network_interfaces="msk0 lo0"
ifconfig_lo0="inet 127.0.0.1"
ifconfig_msk0="inet 192.168.0.1"
ppp_nat="YES"
router_enable="NO"
и т.д.

/etc/ppp/ppp.conf

Код: Выделить всё

default: 
   set log Phase tun command # you can add more detailed logging if you wish 
   set ifaddr 10.0.0.1/0 10.0.0.2/0 
   enable dns 
   nat enable yes 

provider: 
   set device PPPoE:msk0
   set authname YOURLOGINNAME 
   set authkey YOURPASSWORD 
   enable lqr
   set dial 
   set login 
   add default HISADDR
   set timeout 0
   set reconnect 3 0
В чем может быть проблема??? :st:

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-22 20:12:33
paradox
1) а пинг теряеться?
2) lcp включите
3) mpd попробуйте

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-22 20:19:23
Gamerman
вот мой, работает нормально.

Код: Выделить всё

ukrtel:
      set device PPPoE:vr0 # replace xl1 with your Ethernet device
      set authname *******
      set authkey *******
      set dial
      set login
      add default HISADDR

 enable lqr
 enable echo
 set redial 0 0
 set reconnect 10 100
 disable dns
 resolv readonly


Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-22 20:37:41
Sergey002
Gamerman огромное тебе человеческое спасибо!!! Как я заеб*лся с этим автовостоновлением подключения кто бы знал. Кстати говоря ты можешь объяснит механику такого конфига? За чем например отключается dns??? И что такое echo? Если можешь объясни пожалуйста :Yahoo!:

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-22 20:44:23
paradox
enable echo
это и есть LCP
учите основы протокола ppp если хотите знать

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-22 21:05:00
Gamerman
Sergey002 писал(а): За чем например отключается dns???
Этот конфиг я собирал по частям и уже давно, не все помню.
Днс отключал наверное потому, что на сервере поднят bind.

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 7:08:12
Sergey002
Вчера включил dns и лег спать. Проснулся инета нет а BSD выдает надписи msk0(моя сетевуха): watchdog timeout (missed Tx interrupts) -- recovering Что бы это значило?

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 8:03:40
Sergey002
Блин опять такая же фигня. Если я вытаскиваю питание из модема на пару минут или витую пару, а потом вставляю. ТО соединение восстанавливается. А если обрывается у провайдера что то, то FreeBSD пишет msk0: watchdog timeout (missed Tx interrupts) -- recovering и соединение не восстанавливается :shock: В чем может быть проблема?

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 8:42:00
Gamerman
Sergey002 писал(а): В чем может быть проблема?


В провайдере. А как себя ведет модем в режиме роутера в таких ситуациях, под Виндой?

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 8:55:22
Sergey002
Модем у меня настроен бриджем. Винда запросто переподключается я и не замечаю когда инет отрубается а когда нет. Роутером не могу настроить модем потому что мне нужно что бы он был прозрачен. Неужели ppp не может справится с такой пустячной задачей?? :( Что посоветуете? Кстати говоря после обрыва связи tun0 так и не убивается. Если вручную переподключится (после ppp -off) то создастся tun1.

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 9:52:44
Gamerman
Имелось в виду: модем роутером на время экспериментов. Но если винда работает нормально, тогда смысла нет.

У меня когда похожие проблемы были, то предлагали написать скриптик, который время от времени пинговал бы сеть провайдера. Если пинг упал, то рестартонуть ррр.

Кстати, а как вручную переподключаетесь?

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 11:40:40
Sergey002
В ручную переподключаюсь через reboot :(

А скриптик случаяно не этот ??:

Код: Выделить всё

соединение  само не падает ....
его нуно ронять самому ... 
вот скрипт ...


testinet.sh
#!/bin/sh

# Флаг пропадания инета
nr=""
# Флаг появления инета
ni=""

while !(test $ni)
do
   is=`/sbin/ping -c 3 213.181.14.11 | grep -c "64 bytes"`
   # Проверяем прошли ли пинги
   if !(test $is -gt "0")
    then
        # Прибиваем тунели
        /usr/bin/killall ppp
        
        if !(test $nr)
     then
             # Если инет пропал только что, то запоминаем время
         nr=1
         timeobr=`date`
    fi     
        # Ждем пока помрут тунели (этот параметр индивидуален и
        # подбирается экспериментальным путем)
    sleep 10
        
        # Поднимаем соединение
        # Например у меня так
    /usr/sbin/ppp -quiet -ddial kzn16
    else
        if (test $nr)
     then
         echo Инета не было с $timeobr до `date` >> /var/log/internet.log
     fi
    ni=1
   fi
done


startinet.sh
#!/bin/sh

# Проверяем наличие скрипта testinet.sh в памяти
testz=`ps ax | grep -c testinet.sh`
if (test $testz -gt "1")
then
     # Если уже есть, то выходим   
     exit 1
fi

/usr/local/etc/myscript/testinet.sh

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 11:41:49
Sergey002
Неее это ппц. Надо поробовать mpd наверное. Может она будет сама переподключаться???

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 11:58:07
Gamerman
Я предполагал, что вручную - это:
/etc/rc.d/ppp restart :)

До скриптика дело не дошло, так что ничего о нем сказать не могу.

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 12:01:27
Sergey002
Gamerman а как вы решили свою проблему?

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 12:31:35
Gamerman
Sergey002 писал(а):Gamerman а как вы решили свою проблему?
Использую файл ppp.conf который вам дал, проблем нет.

Есть другая проблема с bind. Он там что-то теряет при работе по ррр. Но посколько раз в сутки я делаю рестарт bind, то с этим не заморачиваюсь.

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 17:01:01
Sergey002
А Bind перезагружаете в ручную или командой - скриптом?

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 19:07:49
paradox
если tun интерфейс падает при разрыве
то бинд теряет бинд на тот интерфейс
поскоку удаляеться интерфейс
решить проблему можно если в бинде есть опции динамик биндинга для интерфейсов (не помню)

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 19:19:55
Gamerman
paradox писал(а):если tun интерфейс падает при разрыве
то бинд теряет бинд на тот интерфейс
поскоку удаляеться интерфейс
решить проблему можно если в бинде есть опции динамик биндинга для интерфейсов (не помню)
Скорее всего так и есть, но поскольку окромя вывода на консоль больше ничего не ругается, то не морочу себе голову.
А бинд рестартую через крон.

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 19:25:00
paradox
что бы не мучать бинд
сделай его рестарт через up скрипт в ppp

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-23 19:40:29
Gamerman
paradox писал(а):что бы не мучать бинд
сделай его рестарт через up скрипт в ppp
Спасибо учту.
Или поищу решение через
решить проблему можно если в бинде есть опции динамик биндинга для интерфейсов (не помню)

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-24 14:42:28
Sergey002
У меня еще один аопрос к Gamerman вы выложили свой конфиг как есть? Просто у вас отсутствует запись Default: ...

Код: Выделить всё

ukrtel:
      set device PPPoE:vr0 # replace xl1 with your Ethernet device
      set authname *******
      set authkey *******
      set dial
      set login
      add default HISADDR

enable lqr
enable echo
set redial 0 0
set reconnect 10 100
disable dns
resolv readonly

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-24 16:52:32
Gamerman
Вот весь, в которм убрал некоторые строчки с перенаправлением портов.
ppp.conf

Код: Выделить всё

default:
#  set log Phase tun command # you can add more detailed logging if you wish
  set ifaddr 10.0.0.1/0 10.0.0.2/0
  set log Phase Chat LCP IPCP CCP tun command

  nat enable yes
#  nat port tcp 10.202.0.2:44000 44000
  nat log yes

ukrtel:
      set device PPPoE:vr0 # replace xl1 with your Ethernet device

      set authname ********
      set authkey ********
      set dial
      set login
      add default HISADDR
# by GAMER
 enable lqr
 enable echo
 set redial 0 0
 set reconnect 10 100
 disable dns
 resolv readonly
# end by GAMER

У меня НАТ построен на уровне ррр.

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-24 22:04:23
Sergey002
Всё разобрался наконец то =))) Ну мне и повезло конечно. Gamerman Спасибо тебе огромное без твоего конфига не запустил бы. Но главная моя загвоздка, почему не запускался твой конфиг, была в слеедующем:
Это касается всех счастливых обладателей сетевых карт Marvell Yukon. Если вы видите или видели это сообщение msk0: watchdog timeout (missed Tx interrupts) -- recovering, то этот инструкция явно для вас. Начну со ссылки которая помогла мне решить проблему http://www.lissyara.su/?id=1193

Теперь опишу своими словами в кратце. В общем нужно установить драйвера под Yukon потому что те что встроены в FreeBSD работаю некоректно.
Драйвера выбираются здесь --- http://www.marvell.com/drivers/search.do нас интересуют два верхних пункта: Step 1 - Network Controller, step 2 - FreeBSD 7 (или любую другую вашу версию) жмем submit. Выбираем FreeBSD Driver for 32-bit Kernel 7 Installations (у кого 64 битная система, выбирает FreeBSD 7 64-bit Driver), соглашаемся (I Accept) и жмем Download. После того как мы скачали архив, перемещаем его на комп с FreeBSD, я сделал это через фтп :smile:

Вообще в архиве есть инструкция, но для тех кто не дружит с английским напишу:
Для того что бы распаковать архив, зайдите под рутом и выполните

Код: Выделить всё

tar xfvz installbsd70x86-10.60.1.3.tar.gz
   или
gunzip -c installbsd70x86-10.60.1.3.tar.gz | tar xfv -
далее устанавливаем драйвера

Код: Выделить всё

cd DriverInstall
pkg_add mykbsd70x86-10.60.1.3.tgz
бинарные файлы инсталируются в /boot/modules and the manpage into/usr/share/man/man4
Для того что бы приказать системе загружать драйвера при загрузке системы указываем в /boot/loader.conf

Код: Выделить всё

if_myk_load="YES"
Теперь конфигурируем сетевой интерфейс, до установки патча интерфейс назывался msk0,после установки драйверов сетевой интерфейс будет называться myk0. Это нужно исправить в файле /etc/rc.conf

Код: Выделить всё

ifconfig_myk0="inet 192.168.100.1"
Айпишник вписываем свой, локальный. Перегружаем машину, используем конфиг для дальнейшей настройки сети Gamerman-а, всё готово теперь вы полноценный использователь ресурсов своей сетевухи под управлением FreeBSD. :Yahoo!:

Re: PPP не переподключается при разрыве связи

Добавлено: 2009-09-24 22:08:10
paradox
дауж
а можно было отписать ошибку в PR
ее бы быстро пофиксили
и все бы были счасливы
а так ждем очередных таких как вы которые наткунуться на грабли и тоже пойдут искать какойто мифический драйвер на сайте производителя