Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Добрый день! Уважаемые форумчане, помогите решить следующую проблему: имеется роутер Zyxel Keenetic Viva, к которому планируется прикрутить Entware (с форумом внимательно ознакомился, такая возможность есть). Подключение к интернету происходит посредством PPPoE соединения. Провайдер Ростелеком выдает в случайном порядке или адрес из диапазона 100.64.0.0/10 или белый IP адрес, по которому можно подключиться к сети извне. При этом PPPoE соединение провайдер разрывает через сутки, поэтому один раз получить адрес и долго использовать его не выйдет. Чтобы получить белый адрес, приходится несколько раз переподключать интерфейс WAN.

В Гугле я нашел несколько ответов на вопрос с написанием скриптов, но они относятся к прошивке на OpenWrt (https://habrahabr.ru/sandbox/99949/) и к прошивке на Tomato (http://www.nn.ru/community/techno/inter ... ?year=2013)

Можно ли что-то аналогичное создать на Entware? Проблема в том, что я абсолютно не соображаю в написании скриптов)) Не могли бы Вы мне помочь? Заранее благодарен!

  • Ответов 146
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано

Скрипты на поднятие интерфейса выполняются из /opt/etc/ndm/wan.d (вместо /etc/hotplug.d/iface/ ) - вроде там и IP есть, но в принципе получить IP интерфейса можно командой вида

ndmq -p "show interface ISP-IPTV" -P address

(подставить правильное имя интерфейса, выдаст IP в чистом виде)

интерфейсы тоже можно переподключать через ndmq... За основу взять скрипт OpenWRT

Опубликовано
  Fandor сказал:
  roma48 сказал:
Так вроде бы ростелеком выдает всем белые динамические адреса

Не всегда. Частенько за NAT загоняют на серые адреса 100.*.*.*

Ну видимо город играет роль в технологии выдачи адресов, у меня ртк всегда белые адреса дает

Опубликовано
  roma48 сказал:
Так вроде бы ростелеком выдает всем белые динамические адреса
Если бы! Сессию рвёт раз в неделю, но белый адрес удаётся получить отнюдь не с первой попытки. Наладил им скрипт, с нотификацией в Telegram.

2016-06-18_20-51-40.png.704a84a508ff63df

Опубликовано
  Александр Рыжов сказал:
  roma48 сказал:
Так вроде бы ростелеком выдает всем белые динамические адреса
Если бы! Сессию рвёт раз в неделю, но белый адрес удаётся получить отнюдь не с первой попытки. Наладил им скрипт, с нотификацией в Telegram.

везет ему что раз в неделю рвет, у меня раз в 24 часа но и + в том что белые динамические ип адреса всегда выдает и никаких серых адресов, ростелеком г.Липецк

Опубликовано
  roma48 сказал:
ростелеком г.Липецк
Смоленская область.
  Александр Рыжов сказал:
Наладил им скрипт…
«Им» — это родственникам, извините. Скрипт не привожу, т.к. он для другой прошивки.
Опубликовано

Значит, в /opt/etc/ndm/wan.d/ должен быть скрипт с примерно следующим содержимым:

#!/bin/sh

counter=/opt/tmp/wan_reconnect_counter.txt
max_tries=10

# WAN interface should be PPPoE0
[ ! "$interface" == "PPPoE0" ] && exit 0

# Tell our current IP
/opt/bin/tg_say.sh "WAN is up, current IP is $address."


if [ "$(echo $address | cut -d '.' -f 1)" = "100" ]; then
   # Get counter from temp file
   [ -f "$counter" ] || echo '0' > $counter
   try_nr="$(cat $counter)"

   # This is our try_nr try
   try_nr=$((try_nr+1))

   # Too much tries
   if [ $try_nr -gt $max_tries ]; then
       echo '0' > $counter
       /opt/bin/tg_say.sh 'Giving up to get real IP.'
       exit
   fi

   /opt/bin/tg_say.sh "Force reconnect to get real IP (try $try_nr of $max_tries)."
   echo "$try_nr" > $counter
   ndmq -p "no interface $interface connect"
   sleep 5  
   ndmq -p "interface $interface connect"
else
   echo '0' > $counter
fi

где /opt/bin/tg_say.sh — скрипт нотификации через Telegram/SMS/Twitter/Syslog. В случае с системным журналом можно заменить на logger.

Подразумевается, что установлен пакет ndmq из состава Entware-keenetic.

Опубликовано

Если пользуетесь dyndns, то крайне рекомендую усовершенствовать скрипт Александра. Перед проверкой адреса выключить dyndns: ndmq -p 'interface PPPoE0 no dyndns profile _WEBADMIN' -P message

При получении белого, в 'else', обратно включить: ndmq -p 'interface PPPoE0 dyndns profile _WEBADMIN' -P message

Меня уже временно банили за частый апдейт адреса, потом прислали письмо, что если я это продолжу, учетку заблокирут совсем.

Опубликовано

Что-то у меня ничего не получается. Журнал выдает следующие сообщения:

Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: /opt/etc/ndm/wan.d/010-rostel.sh: exit: line 8: Illegal number: 0.

Opkg::Manager: /opt/etc/ndm/wan.d/010-rostel.sh: exit code 2.

8 сточка кода в моем скрипте это [ ! "$interface" == "PPPoE0" ] && exit 0. Что может быть не так?

Опубликовано

И еще подскажите, пожалуйста, через вывод ifconfig имя интерфейса для выхода в интернет определяется как ppp0. А через веб-морду Zyxel во вкладке Интернет/Подключения интерфейс определяется как PPPoE0 и в системном журнале IP адрес выдвется на интерфейс PPPoE0. Так какой в итоге интерфейс указывать в скрипте?

P.s. про интерфейс смутила тема об оповещении о смене IP адреса роутера из ветки viewtopic.php?t=225

Опубликовано
  Khaninea сказал:
через вывод ifconfig имя интерфейса для выхода в интернет определяется как ppp0. А через веб-морду Zyxel во вкладке Интернет/Подключения интерфейс определяется как PPPoE0

В entware надо использовать имена, которые определяет она, т.е. interface "ppp0". В CLI (и ndmq)командах, используйте PPPoE0. По-моему, у Александра ошибка.

Про ошибку в 8-й строке: попробуйте "=" вместо "==". Это вроде от shell зависит. Хотя я почти не знаю shell....

Я себе такой криптик сделал:

#!/bin/sh

[ -z "$address" ] && exit 0             # on 'down' $address will undefined

logger -t white_ip[$$] "interface: " $interface ", address: " $address

if [ "$interface" = "ppp0" ]; then      # check interface name
 _ip=$(echo $address | grep "^100\.") # is address related to 100.x.y.z subnetwork?

 # re-initialize wan and write to syslog
 if [ -n "$_ip" ]; then 
   logger -t white_ip[$$] "Reloading wan due grey IP - $address";
   ndmq -p 'interface PPPoE0 no dyndns profile _WEBADMIN' -P message

   ndmq -p 'interface PPPoE0 no connect via ISP' -P message
   sleep 2
   ndmq -p 'interface PPPoE0 connect via ISP' -P message 
 else
   logger -t white_ip[$$] "White IP - $address";
   ndmq -p 'interface PPPoE0 dyndns profile _WEBADMIN' -P message
   #sleep 1
   #ndmq -p 'interface PPPoE0 dyndns update force' -P message
 fi
fi

logger -t white_ip[$$] "Finished"

Опубликовано

У нас Йошкар-Ола рвет от 48 часов до месяца. Я бы еще посоветовал таймаут чуть больше, плюс попробуйте гасить и порт, вернее порт гасить имхо практичнее, чем сессии. Т.к. если рвать ПППоЕ, то время не сбрасывается у сессии, а если гасить порт, не ПППоЕ, то чище отрабатывает. Типа сбой питания. Потом еще можно в разное время сделать не четкий перезапуск, после смены айпи. Т.е. прикрыть свою задницу, чтобы не наглели, будет доказательство, что они вам мучают, а не вы их. К ому же - как услуги ненадлежащего качества, там юридически можно бодаться. Ну и время для работы по скрипту сдвинуть на очень раннее утро, т.к. обычно счет идет ровно по времени Апа, а не текущее. У нас проводили исследование сети, когда есть шансы взять белый айпи. В каждом сегменте оно свое, так что, вначале посмотрите, когда шансы взять белый с ходу выше. И еще, часто быстрый реконнект оставляет клиента в том же сегменте, (да и счетчик на сессии увеличивает на блокировку) так что хочешь не хочешь - но лучше ждать несколько минут, для пачки попыток, потом или отрубаться на 10-15 минут или.. вообщем, усложнить лучше скрипт... чтобы ошибками не переполняло на "Той стороне"...

Опубликовано
  Цитата
Т.е. прикрыть свою задницу, чтобы не наглели, будет доказательство, что они вам мучают, а не вы их. К ому же - как услуги ненадлежащего качества, там юридически можно бодаться.

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

Говорю вам как бодавшийся с ними из-за низкокачественного ADSL с 2007 по 2011.

Опубликовано

Не понимаю, зачем такие сложности в скрипте?! Главное удалось автоматизировать процесс, а не перезагружать удаленно роутер через My.Keenetic по нескольку раз до получения белого IP. А если у Ростелекома такая система работы с раздачей IP адресов, то это их проблемы. Я со своей стороны могу скидывать сессии столько, сколько посчитаю нужным! Что они сделают, забанят или посадят за NAT? В первом случае потеряют клиента (а они давно не монополисты), во втором - поставлю OpenVPN и продолжу радоваться, или уйду к другому оператору. Как то так.

Опубликовано

На всякий случай про свой бан поясню. Бан я получал от DynDns (dyn.org) за частую смену IP адреса. Т.к. скрипт 15 раз подряд делал реконект, а dyndns в роутере успевал запрос отсылать. Поэтому я стал его отключать до получения белого IP.

Если вы не используете dyndns, то удалите из моего скрипта все строки с этим словом.

Опубликовано
  Khaninea сказал:
Это подсудное дело, за ненадлежащее оказание услуг

Ну попробуйте, с РТ судиться - дело неподъемное, у них все отмазы везде мелким шрифтом прописаны и юристы соответствующей квалификации.

Опубликовано
  L сказал:

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

Говорю вам как бодавшийся с ними из-за низкокачественного ADSL с 2007 по 2011.

Ну попробуйте, с РТ судиться - дело неподъемное, у них все отмазы везде мелким шрифтом прописаны и юристы соответствующей квалификации.

Ну наверное в регионах обслуживание у РТ разное, так же был ADSL от них но роутер мой, после бодания и жалобы через сайт RT в течении месяца был поменян порт на их стороне и соединение стояло "колом".

Так же выяснял отношение с ними по поводу разрывов каждые 12часов 30мин, на что мне уверенного говорили что по договору 24часа, я им сказал что они меня не слышат речь про 12часов 30мин, а не 24часа, в ответ услышал про Radius и покупку белого IP.

Но спустя какое то время соединение стало держать как и ранее без всяких разрывов, так как так же писал в ТП Zyxel то возможно при смене прошивки или оборудования провайдера. В данном случае использовался не РТ роутер, для них достаточно что сертифицирован для использования.

По поводу ТП от РТ правая рука не знает что делает левая, это к слову юрист он ведь юрист и в тонкостях связи и работы оборудования роутера не всегда селен как тех.специалист.

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

  Показать контент
Опубликовано

Мы отдалились от темы. Считаю, что вопрос о том, что может и не может РТ нужно обсуждать в другом форуме. Меня беспокоит следующая ситуация: ести РТ на постоянной основе решит загнать пользователя за NAT с IP адресом на 100.x.x.x, то было бы не плохо в скрипт добавить алгоритм подсчета сбросов и, допустим, после 10-го сброса оставить IP какой есть. Это чтоб у роутера мозги не закипели. Есть мысли на этот счет?

Опубликовано
  Khaninea сказал:
Меня беспокоит следующая ситуация: ести РТ на постоянной основе решит загнать пользователя за NAT с IP адресом на 100.x.x.x, то было бы не плохо в скрипт добавить алгоритм подсчета сбросов и, допустим, после 10-го сброса оставить IP какой есть. Это чтоб у роутера мозги не закипели. Есть мысли на этот счет?
Оба варианта приведены выше.
  • 1 месяц спустя...
Опубликовано (изменено)

1. Установить Entware

2. Установить пакет ndmq

3. Создать скрипт и положить его в /opt/etc/ndm/wan.d/

4. Profit!

Это верно?

Имя скрипта, который будет лежать в /opt/etc/ndm/wan.d/ важно?

Изменено пользователем Rezdbic

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.