Jump to content

Freebsd, Adsl и автопереподключение


Recommended Posts

Для начала - спраздником! :)

Теперь о деле.

Есть ADSL-модем D-Link DSL-2500U. Настроен бриджем.

Уже переделал на нём охлаждение (вскрыл, поставил радиатор на чип, сделал охрененную дыру в корпусе для вентиляции), сменил блок питания на стабилизированный.

Модем подцеплен к шлюзу на FreeBSD. Подключение к Инету сервером настроено через PPPoE. Шлюз раздаёт Инет в локалку. Всё работает замечательно кроме одной вещи:

если я просто вкл/выкл модем или переподсоединяю кабель на модеме (телефонный или RG45), имитируя разрыв связи, то соединение сервером не восстанавливается. Убить и создать PPPoE тоже не выход. Знаю, что в опциях ppp.conf можно указать автопереподключение, но почему-то не работает это или я неправильно делаю что-то.

Пробовал вручную делать "killall ppp" и потом "ppp -ddial myprov", но в таком случае создается ИФ tun1, а у меня всё к tun0 привязано и ничерта не работает. После ребута сервера - всё ок.

Пока интересует лишь почему не происходит автореконнекта, скрипт отдельный писать не хочется, тем более ребутить для этого сервер, подозреваю что должно и так работать. Помогите пожалуйста, надо уехать на неделю, не могу ж я так всё оставить.

 

Мой ppp.cong:

default:

    set log Phase tun command

    enable dns

    set mru 1492

    set mtu 1492

    set timeout 0

    set redial 0 0

    accept dns

myisp:

    set device PPPoE:rl1

    set authname Логин

    set authkey Пароль

    set dial

    set login

    add default HISADDR

 

Мой /etc/rc.conf:

      ppp_enable="YES"

      ppp_profile="myisp"

      ppp_mode="ddial"

      ppp_nat="NO"

      ppp_user="root"

Link to post
Share on other sites

Подозреваю, что есть опция для задания интерфейса tun0 в принудиловку.

А потом пишешь скрипт:

ping шлюз || ( killall ppp ; ppp -ddial myprov )

и в крон :)

Link to post
Share on other sites
Подозреваю, что есть опция для задания интерфейса tun0 в принудиловку.

Не знаю такой опции. Я вообще описание ppp на русском не нашёл. :)

И не хотелось бы скриптом, всё должно так работать. Не может быть чтобы PPP не мог сам поднимать упавшее соединение.

А если настроитьв режиме роутера?

зачем бридж?

Потому что такой роутер имеет ограниченное число одновременно обслуживаемых запросов. У меня в сетке через "Ослика" качают и вообще, не доверяю я китайским мыльницам. Вон, пришлось переделать, чтоб не зависал хоть: питание ни к чёрту, охлаждение тоже. ППЦ. Подсунули. :)

Link to post
Share on other sites

У мя был 1-й модем,D-link 200u/BRU/D Виснул постоянно,и не от перегрева,а вот просто так.Ну я пошел купил такой же :) И работает уже как пол года,без зависаний и.т.д,на нем постоянно около 40 человек онлайна :) и все довльны.

Причем этот модем.ниразу неперегревался и.т.п.

Link to post
Share on other sites

Этот мой модем подключается по RG-45. Модель верная, я прошивку на него менял.

Не отвлекаемся, смотрим первый пост. :)

Link to post
Share on other sites

Если виснет д-линк проверь питание. Был случай когда DSL-500T постояно несколько раз в день терял DSL, помогла замена стандартного блока питания на 12 вольтовый.

Link to post
Share on other sites
Добавь в ппп.конф строчкиCODE

 

# Включаем Link Quality Request.

enable lqr

set lqrperiod 5

 

Должно помочь

 

Спасибо, попробую. :)

 

 

Если виснет д-линк проверь питание.  Был случай когда DSL-500T постояно несколько раз в день терял DSL, помогла замена стандартного блока питания на 12 вольтовый.

Но ведь у него напряжение питания не 12В, а 9В.

Я уже поставил стабилизированный, на КРЕН, после последнего зависания. Откровенно говоря - штатный БП - полное Г. D-Link называется...

Link to post
Share on other sites

Нет, связка из

"enable lqr

set lqrperiod 5"

для PPPoE помогает мало.

Пробовал по всякому. Отсоединил кабель телефонной линии и подсоединил секунд через 10. Восстановилось за 5-10 сек. Затем выключил и включил модем. Не восстановилось.

Ещё пробовал отсоединить кабель телефонной линии и подождать больше минуты. Затем ждал примерно минуту, чтобы восстановилось (кабель вернул на место). Безрезультатно.

 

911, ты что-то там за mpd говорил? :)

Link to post
Share on other sites

мой

ppp.conf

 

default:

Ukrtelecom:

set log Phase tun command

set device PPPoE:xl2 (у кого какой-интерфейс смотрит на модем)

set authname login@dsl.ukrtel.net

set authkey pass

set mru 1492

set mtu 1492

enable lqr

set lqrperiod 10

enable lqr echo

enable echo

set dial

set login

set timeout 0

set redial 0 0

set timeout 0

set reconnect 3 0

#add default HISADDR

 

ppp.linkup:

 

Ukrtelecom:

iface clear

!bg /usr/bin/logger -t PPP "Connection to Ukrtelecom established"

 

ppp.linkdown:

 

Ukrtelecom:

!bg /usr/bin/logger -t PPP "Connection to Ukrtelecom destroyed"

 

 

всё работает, всё реконнектит, всё красиво.

Фря 6.3

Link to post
Share on other sites
Нет, связка из

"enable lqr

set lqrperiod 5"

для PPPoE помогает мало.

Пробовал по всякому. Отсоединил кабель телефонной линии и подсоединил секунд через 10. Восстановилось за 5-10 сек. Затем выключил и включил модем. Не восстановилось.

Ещё пробовал отсоединить кабель телефонной линии и подождать больше минуты. Затем ждал примерно минуту, чтобы восстановилось (кабель вернул на место). Безрезультатно.

 

911, ты что-то там за mpd говорил? :)

Хм странно я фря какая у меня работает как часики по пробуй set lqrperiod поставить в 10

Link to post
Share on other sites

Ну еще у меня когда-то были вот такие скрипты, где я их взял не помню но работали

testinet.sh

#!/bin/sh

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

while !(test $ni)
do
  is=`/sbin/ping -c 3 IP-адрес (например DNS прова) | grep -c "64 bytes"`
  # Проверяем прошли ли пинги
  if !(test $is -gt "0")
   then
       # Прибиваем тунели
       /usr/bin/killall ppp
       
       if !(test $nr)
 then
            # Если инет пропал только что, то запоминаем время
     nr=1
     timeobr=`date`
fi     
       # Ждем пока помрут тунели (этот параметр индивидуален и
       # подбирается экспериментальным путем)
sleep 5
       
       # Поднимаем соединение
       # Например у меня так
/usr/sbin/ppp -ddial inet
       
       # На всякий случай еще немного подождем
       # (хотя в принципе этого можно и не делать)
       sleep 5
   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

Ну и запихнуть в крон запуск startinet.sh, например каждую минуту.

Link to post
Share on other sites

Всем спасибо, заработало с такой конфигурацией:

 

ppp.conf:

 

default:

    set log Phase tun command

    enable dns

    set mru 1492

    set mtu 1492

    set timeout 0

    set redial 0 0

    set reconnect 3 0

    accept dns   

myisp:

    set device PPPoE:rl1

    set authname Логин

    set authkey Пароль

    enable lqr

    set lqrperiod 10

    enable lqr echo

    enable echo

    set dial

    set login

    add default HISADDR

А то хотел уже делать на MPD. :)

Даже когда отсоединяю кабель, вырубаю модем - реконнектится и работает! :-(=)

Link to post
Share on other sites
Всем спасибо, заработало с такой конфигурацией:

А то хотел уже делать на MPD. :)

Даже когда отсоединяю кабель, вырубаю модем - реконнектится и работает! :-(=)

ну так советуем-то реальные рабочие варианты :(

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...