ADSL и FreeBSD
Необходимо сделать вот такой конфиг в ppp.conf:
default:
#выставляем желаемый уровень логов мне достаточно мониторить Phase и LCP чтобы знать когда связь обрывалась...
set log Phase LCP
#назначаем наш IP можно конечно делать как в хэндбуке - я рекоммендую так IMHO
set ifaddr 87.103.xxx.xxx 213.228.93.1 255.255.255.255
webstream:
#убить все дефолтные маршруты и при подключении создать новые для предотвращения не передозвона при использовании -auto (см. ppp troubleshooting)
delete all
#указываем девайс в который воткнут мопед ну или девайс который воткнут в свич с мопедом
set device PPPoE:vr0
#принудительно выставляем МТУ и МРУ (Чтобы не было в логах Reducing MTU from 1500 to 1492, кстати, пробовал 1498 - как рекммендуется в PPP FAQ - не канает, половина пакетов теряется)
set MTU 1492
set MRU 1492
#приказываем компу соединится
set dial
#приказываем авторизоваться используя логин и пароль, кстати интересно поддерживает ли СТК Chap или PAP хотябы, ну или др.
set login
set authname login
set authkey password
#отключаем аппаратное управление потоком - ибо мопед - не я
set crtscts off
#выставляем скорость синхронного девайса
set speed sync
#включаем генерацию запросов качества линии - вот то самое которое по дефолту Disabled
enable lqr
#слушаем ответы о качетсве линии А вот это по дефолту есть, я перестрахуюсь (хрен знает какая у кого версия)
accept lqr
#реконнектимся, если потери LQR Имеются, (999 раз с интервалом 5 секунд)-(для верности)
set reconnect 5 999
#отключаем все возможные компрессии заголовков и данных (я так и не понял какие виды компресии поддерживаются 062 - рулит!)
disable deflate
disable pred1
disable vjcomp
disable acfcomp
disable protocomp
#применяем дефолтный маршрут на гейтвей провайдера (дабы был инет) Кстати, проверьте, если у вас нет delete all (см. выше), а в rc.conf указан другой шлюз, то при режиме -auto может не возникнуть реконнекта - см. man ppp
add default HISADDR
#поскольку соединение будет всегда on-line, таймауты при простое нам нужно отключить (вообще то при -auto он не нужен, но я перестраховался)
set timeout 0
#переподключится (при ошибках при подключении) с интервалом 5 секунд до того момента, пока не подключимся.
set redial 5 0
Все. Такой конфиг будет работать без всяких тупых скриптов и т.д. Потому что переподключение будет срабатвать тогда когда это необходимо, и не надо кого то пинговать по ICMP потому что как выразился Jonny K - "это костыли"
а /etc/rc.conf такой же как в хэндбуке, за исключением режима auto вместо ddial, почему auto? читайте man ppp
Инструкцию составил пользователь услуги "Вебстрим" Максим Карпылев