Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.05.2017, 23:32   #1
levksm
Junior Member
 
Регистрация: 02.05.2017
Сообщений: 1
Вес репутации: 0
levksm is an unknown quantity at this point
По умолчанию Openwrt pppoe подключение по запросу

Добрый день.
У меня похожая проблема, с той разницей,
что соединение в роутере 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'
2. /etc/ppp/options
Код:
#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
	Остальные параметры я не трогал, они стояли "по умолчанию".
3. /lib/netifid/proto/ppp.sh. Продвинутая версия кусочка кода из кода "ПОСЛЕ"
Код:
if [ "${demand:-0}" -gt 0 ]; then
  demand="precompiled-active-filter /etc/ppp/filter demand nopersist idle $demand defaultroute"
else
  demand="nodefaultroute persist"
fi
И тогда все работает, как надо! Вся загвоздка (для меня и моего примера) была в этом параметре nopersist.
Не буду здесь умничать, т.к. давал выше ссылку на документацию по pppd (хотя в документации нет конкретных
советов для конкретных примеров, общие черты работы параметров и рекомендации по их совместному
использованию, или, наоборот, несовместному). Но такая мощная документация - это сила,
т.к. совет про параметр "nopersist" я почерпнул именно из этой документации
(ни на одном из технических форумов не встречал ссылок на этот параметр), и решил проверить работу
интерфейса с ним.
С этим параметром (nopersist) в нужное время и в нужном месте все прекрасно закольцовывается и
получаем желаемо-работающий алгоритм, экономию электричества и ресурсов оборудования, а также моральное
удовлетворение от результата.
Еще замечу, что скрипт ppp-down в моем примере не проявил своего влияния на поведение процесса ppp.

P.S.
1. При ожидании в режиме "простоя", когда связи с провайдером нет, "просачиваются" какие-то непонятные (для меня)
байты, и происходит опять соединение с провайдером, чего по логике быть не должно.
За это у демона pppd отвечает параметр active-filter. Так что буду дальше думать, как решить эту проблему или,
возможно, есть какие-то другие, "более правильные" фильтры.
2. Не ожидал, что форматирование этого сообщения вызовет у меня такие трудности.
Нет никакой возможности делать отступы в тексте сообщения. Параметр[INDENT] - это неудобно,
если мне надо сделать многоступенчатый текст, т.к. этот параметр генерирует также пропуск строк.
Плюс, при наличии большого количества BB-кодов, исходный текст становится нечитабельным.
[url] - выделить синим цветом - не получилось.
Ну это, конечно, мое субъективное мнение, просто хотел отформатировать получше.
levksm вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 06:20. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика