![]() |
|
|
#6 |
|
Junior Member
Регистрация: 02.05.2017
Сообщений: 1
Вес репутации: 0 ![]() |
Добрый день.
У меня похожая проблема, с той разницей, что соединение в роутере Tp-Link MR3220 V1.2 по ppp через 3g модем. Простой и очевидный алгоритм. Хочу работать на ноутбуке в интернете(через роутер),ну и работаю. А потом отвлекся(или закончил) и не работаю 3-5 минут (интернет-соединение простаивает), соединение 3g модема с провайдером прерывается. Никто ведь не знает (в общем случае), насколько пауза затянется. Пауза закончилась, нажал на клавиши, соединение восстановилось. Уж думал, что не смогу решить эту "простую проблему": Интернет по запросу с ноутбука. Перекопал много форумов Интернета, но 100%-ного решения не нашел. И я бы, возможно, и не искал бы решения для OpenWrt, но на родной прошивке от TP-Link'а этот алгоритм реализован и работает! В OpenWrt даже поле специальное есть в Web-интерфейсе, но ... не работает. Пришлось углублять знания, т.к. в Linux'е я - чайник. Но сегодня неожиданно получилось. (Неожиданно для меня, а так, конечно, закономерно, я ведь работал и искал решение.) Видимо, накопились кое-какие знания, и количество перешло в качество. Помогла ваша тема, другие форумы, конечно, тоже, и документация по ppp: http://manpages.ylsoftware.com/ru/pppd.8.html. Решение: 1. /etc/config/network: Код:
config interface 'wan' option ipv6 '0' # этот параметр тоже где-то на форумах подсказали, # иначе этот интерфейс wan с параметром demand не работает, # т.к. ему нужны ip-адреса 6-й версии... option demand '180' # стандартный параметр (количество секунд простоя соединения # до разрыва связи), можно устанавливать и из web-интерфейса Luci, # но тогда первый параметр пропадает. # Выше этот параметр автор темы уже выделял. option _orig_ifname 'ppp0' option _orig_bridge 'false' option proto '3g' option device '/dev/ttyUSB0' option service 'umts_only' option apn '...............' # apn вашего провайдера option dialnumber '*99#' # Возможно, у вашего провайдера может быть другой номер. option delegate '0' Код:
#debug logfile /dev/null noipdefault # нужный параметр в моем случае(3g). Наш провайдер выдаст нам настоящий IP адрес # вместо представленного ниже локального (192.168.1.1). # Да, также важно подчеркнуть, что при каждом новом соединении # провайдер дает нам (в общем случае) разные IP-адреса, поэтому # мы не можем в настройках соединения прописать постоянный (static) # IP адрес. 192.168.1.1:10.64.64.64 # [временный] локальный и удаленный IP-адреса. # Нужны для начала работы интерфейса в режиме Demand Idle NNN, # а также для начала каждого нового цикла после разрыва соединения при простое. # 192.168.1.1 - это IP адрес роутера. У вас может быть чуть другой. noaccomp nopcomp nocrtscts lock # maxfail 0 ipcp-accept-local # При указании этого параметра pppd будет принимать локальный IP-адрес, # предложенный провайдером, даже если локальный IP-адрес был явно указан. #(Дословно из доки. Ссылка выше). lcp-echo-failure 5 lcp-echo-interval 1 Остальные параметры я не трогал, они стояли "по умолчанию". Код:
if [ "${demand:-0}" -gt 0 ]; then
demand="precompiled-active-filter /etc/ppp/filter demand nopersist idle $demand defaultroute"
else
demand="nodefaultroute persist"
fi
Не буду здесь умничать, т.к. давал выше ссылку на документацию по pppd (хотя в документации нет конкретных советов для конкретных примеров, общие черты работы параметров и рекомендации по их совместному использованию, или, наоборот, несовместному). Но такая мощная документация - это сила, т.к. совет про параметр "nopersist" я почерпнул именно из этой документации (ни на одном из технических форумов не встречал ссылок на этот параметр), и решил проверить работу интерфейса с ним. С этим параметром (nopersist) в нужное время и в нужном месте все прекрасно закольцовывается и получаем желаемо-работающий алгоритм, экономию электричества и ресурсов оборудования, а также моральное удовлетворение от результата. Еще замечу, что скрипт ppp-down в моем примере не проявил своего влияния на поведение процесса ppp. P.S. 1. При ожидании в режиме "простоя", когда связи с провайдером нет, "просачиваются" какие-то непонятные (для меня) байты, и происходит опять соединение с провайдером, чего по логике быть не должно. За это у демона pppd отвечает параметр active-filter. Так что буду дальше думать, как решить эту проблему или, возможно, есть какие-то другие, "более правильные" фильтры. 2. Не ожидал, что форматирование этого сообщения вызовет у меня такие трудности. Нет никакой возможности делать отступы в тексте сообщения. Параметр[INDENT] - это неудобно, если мне надо сделать многоступенчатый текст, т.к. этот параметр генерирует также пропуск строк. Плюс, при наличии большого количества BB-кодов, исходный текст становится нечитабельным. [url] - выделить синим цветом - не получилось. Ну это, конечно, мое субъективное мнение, просто хотел отформатировать получше. |
|
|
|
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|