Jump to content

«Белый» IP от Ростелеком с помощью Entware


Recommended Posts

14 минуты назад, terrabyte сказал:

Изменил порт в веб интерфейсе на 222. В putty 222 и теперь пароль не подходит 🤔UPD: перезагрузил зашел по порту 222, но опять же в CLI

А в компонентах установлен "Сервер SSH"?

Link to comment
Share on other sites

  

46 минут назад, terrabyte сказал:

Entware установлен. Иначе куда бы я скрипт то закинул?

Удивительно как вы справились, в крайней версии скрипта нет строк установки пакета jq для разбора. 

Скрипт банально не заработает. 

  

5 минут назад, Orbit сказал:

пароль от админа.

зачем вводить в заблуждение? пароль на свежеустановленной entware keenetic

Link to comment
Share on other sites

48 минут назад, AndrewKvas сказал:

Часто, когда перезагружается роутер или по какой-то другой причине бывает ситуация, что GPON модем уже установил соединение с серым IP, роутер загружается, видит поднятое соединение и работает с этим соединением. Соответственно не отрабатывает скрипт в wan.d. По крайней мере я так представляю ситуацию. Приходится руками разрывать соединение, тогда всё  начинает работать как запланировано, пока не добьёмся белого IP. (По крайней мере я так вижу происходящее)

Куда и что прописать, чтобы роутер, после загрузки определял не серый ли IP у уже поднятого соединения и дергал его, если нужно?

Не кроном же это проверять...

Кто тут поднимает PPPOE сессию gpon терминал или роутер?

Link to comment
Share on other sites

2 минуты назад, batonskij сказал:

Скрипт банально не заработает

Всё было зря? А то у меня получилось через ssh сконнектится и права на скрипт поменять....

Link to comment
Share on other sites

8 минут назад, Rezdbic сказал:

Кто тут поднимает PPPOE сессию gpon терминал или роутер?

Формально роутер, но если его перезагрузить или ещё что - сессия сохраняется поднятой... И роутер работает с уже поднятой.

Link to comment
Share on other sites

3 минуты назад, AndrewKvas сказал:

Формально роутер, но если его перезагрузить или ещё что - сессия сохраняется поднятой... И роутер работает с уже поднятой.

Мне такая схема работы неизвестна...

А если GPON терминал перевести в режим моста и поднимать PPPOE сессию в роутере, не?

 

Link to comment
Share on other sites

Только что, Rezdbic сказал:

Мне такая схема работы неизвестна...

А если GPON терминал перевести в режим моста и поднимать PPPOE сессию в роутере, не?

 

Я не могу его перевести в режим моста. Он включен в WAN. Первоначально poe соединение поднимает роутер, но оно остаётся в случае перезагрузки роутера (по крайней мере мне так кажется).

Link to comment
Share on other sites

Если GPON терминал не в режиме моста, то он в режиме роутера и именно он первоначально поднимает PPPOE сессию. Что там дальше делает кинетик роутер уже неважно.

Link to comment
Share on other sites

50 минут назад, Rezdbic сказал:

Если GPON терминал не в режиме моста, то он в режиме роутера и именно он первоначально поднимает PPPOE сессию. Что там дальше делает кинетик роутер уже неважно.

PON терминал сам не поднимает POE  соединение. Оно поднимается роутером или если подключиться напрямую к ПК, то поднимается оттуда. Проблема только в том, что соединение в какой-то момент поднимается с серым ip и роутер это не видит. Не знаю как это отловить, если не справляется скрипт в wan.d.

Link to comment
Share on other sites

Зачем вы дополнительно поднимаете PPPOE сессию на роутере?  Если ваш GPON терминал не в режиме моста? 

Старая версия скрипта, использующая ndmq работает идеально при правильной настройке сети. 

Для тех, кто не захочет переходить на rci, можно установить ndmq из архива

opkg install curl
curl https://bin.entware.net/mipselsf-k3.4/keenetic/archive/libndm_1.8.0-1_mipsel-3.4_kn.ipk >libndm.ipk
opkg install libndm.ipk
curl https://bin.entware.net/mipselsf-k3.4/keenetic/archive/ndmq_1.0.2-7_mipsel-3.4_kn.ipk > ndmq.ipk
opkg install ndmq.ipk

стащил у gvan из другого топика 

Edited by batonskij
Link to comment
Share on other sites

В 26.09.2022 в 15:41, batonskij сказал:

Удивительно как вы справились, в крайней версии скрипта нет строк установки пакета jq для разбора. 

Скрипт банально не заработает. 

Скрипт работает, но только при установленном уже пакете jq. При отладке убрал его проверку и установку из скрипта. Вот сейчас вернул и выложил обновлённый скрипт.

#!/opt/bin/sh

ConnName=Rostelecom
counter=/opt/tmp/CountReconnectWan.txt
previp=/opt/tmp/previp.txt
max_tries=10

if ! opkg list-installed | grep '^jq' > /dev/null; then
	opkg update
	opkg install jq
fi

sleep 3

RESP=$(wget -qO - http://localhost:79/rci/show/interface | jq -r ".[] | select(.description==\"$ConnName\") | select(.defaultgw==true) | .id, .description, .address")
[ -n "$RESP" ] || exit 1

_ip=$(echo $RESP | awk '{print $3}')
_name=$(echo $RESP | awk '{print $2}')
_iface=$(echo $RESP | awk '{print $1}')

if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.|null)"; then
    [ -f "$counter" ] || echo "0" > $counter
    try_nr=$(cat $counter)
    try_nr=$((++try_nr))
    if [ $try_nr -gt $max_tries ]; then
        echo "0" > $counter
		logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Too much tries. Exit"
        exit 1
    fi
    echo "$try_nr" > $counter
    logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
	wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"down\":{}}}]" http://localhost:79/rci/
    sleep 3
    wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"up\":{}}}]" http://localhost:79/rci/
else
    echo "0" > $counter
    [ -f "$previp" ] || echo "0.0.0.0" > $previp
    _previp=$(cat $previp)
    if [ "$_previp" != "$_ip" ]; then
        logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip."
        echo "$_ip" > $previp
	else
		logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip (address unchanged)."
    fi
	exit 0
fi

 

030-rostelecom.sh

  • Thanks 2
Link to comment
Share on other sites

  • 4 months later...

Добрый день.

Форумчане есть ли возможность написать мануал по запуску данного скрипта что выше с нуля? Тему порыл ответа не нашел, заранее спасибо. Entware развернул обновил, установил xmlstarlet,  jq. Закинул скрипт в opt/etc/ndm/wan.d/. При перезагрузке подключения, вываливает ошибку, куда копать?

Screenshot 2023-01-29 at 19-52-35 Keenetic Giga – Диагностика.png

Edited by SP1R1T
Link to comment
Share on other sites

  • 5 weeks later...
В 28.02.2019 в 11:04, Geont сказал:

Немного обновил и причесал скрипт. Теперь работает стабильнее.

#!/opt/bin/sh

ConnName=Rostelecom
counter=/opt/tmp/CountReconnectWan.txt
previp=/opt/tmp/previp.txt
max_tries=10

LIST=`ndmq -p 'show interface' -x | xml sel -t -m '//interface[link="up"][state="up"][global="yes"][defaultgw="yes"]' -v '@name' -o ',' -v 'description' -o ',' -v 'address' -o ',' -v 'via' -n`
echo "$LIST" | grep -iwq "$ConnName" || exit 0

_ip=`echo "$LIST" | cut -d, -f3`
_prov=`echo "$LIST" | cut -d, -f2`
_iface=`echo "$LIST" | cut -d, -f1`
_via=`echo "$LIST" | cut -d, -f4`

if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then
    [ -f "$counter" ] || echo "0" > $counter
    try_nr=$(cat $counter)
    try_nr=$((++try_nr))
    if [ $try_nr -gt $max_tries ]; then
        echo "0" > $counter
	logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Too much tries. Exit"
        exit
    fi
    echo "$try_nr" > $counter
    logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
    ndmq -p "interface $_iface no connect via $_via" -P message
    sleep 5
    ndmq -p "interface $_iface connect via $_via" -P message
else
    echo "0" > $counter
    [ -f "$previp" ] || echo "0.0.0.0" > $previp
    _previp=$(cat $previp)
    if [ "$_previp" != "$_ip" ]; then
        logger -t white_ip[$$] "Provider: $_prov, interface: $_iface, white IP - $_ip."
        echo "$_ip" > $previp
    fi
fi

Кроме установленного пакета ndmq требуется также xmlstarlet. В переменной $ConnName (2-я строка) замените название подключения на свое - так, как оно названо у вас в web-интерфейсе. Больше ничего указывать не нужно. Подключений может быть несколько, скрипт обрабатывает только подключение с указанным названием в случае его использования в качестве основного. Расположение обычное: /opt/etc/ndm/wan.d/.

Вот рабочий вариант

  • Thanks 1
Link to comment
Share on other sites

On 9/28/2022 at 12:50 PM, winnie57 said:

Скрипт работает, но только при установленном уже пакете jq. При отладке убрал его проверку и установку из скрипта. Вот сейчас вернул и выложил обновлённый скрипт.

#!/opt/bin/sh

ConnName=Rostelecom
counter=/opt/tmp/CountReconnectWan.txt
previp=/opt/tmp/previp.txt
max_tries=10

if ! opkg list-installed | grep '^jq' > /dev/null; then
	opkg update
	opkg install jq
fi

sleep 3

RESP=$(wget -qO - http://localhost:79/rci/show/interface | jq -r ".[] | select(.description==\"$ConnName\") | select(.defaultgw==true) | .id, .description, .address")
[ -n "$RESP" ] || exit 1

_ip=$(echo $RESP | awk '{print $3}')
_name=$(echo $RESP | awk '{print $2}')
_iface=$(echo $RESP | awk '{print $1}')

if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.|null)"; then
    [ -f "$counter" ] || echo "0" > $counter
    try_nr=$(cat $counter)
    try_nr=$((++try_nr))
    if [ $try_nr -gt $max_tries ]; then
        echo "0" > $counter
		logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Too much tries. Exit"
        exit 1
    fi
    echo "$try_nr" > $counter
    logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
	wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"down\":{}}}]" http://localhost:79/rci/
    sleep 3
    wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"up\":{}}}]" http://localhost:79/rci/
else
    echo "0" > $counter
    [ -f "$previp" ] || echo "0.0.0.0" > $previp
    _previp=$(cat $previp)
    if [ "$_previp" != "$_ip" ]; then
        logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip."
        echo "$_ip" > $previp
	else
		logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip (address unchanged)."
    fi
	exit 0
fi

 

030-rostelecom.sh 1.74 kB · 25 downloads

На KN-1011 3.9.4 скрипт почти бесконечно переподключает соединение, пока не получит белый ip, игнорируя счетчик - смотрел лог, счетчик доходит до 10-ти, выход по exit1, потом опять по кругу...

Edited by katarn1984
Link to comment
Share on other sites

  • 3 months later...
В 29.01.2023 в 16:11, SP1R1T сказал:

Добрый день.

Форумчане есть ли возможность написать мануал по запуску данного скрипта что выше с нуля? Тему порыл ответа не нашел, заранее спасибо. Entware развернул обновил, установил xmlstarlet,  jq. Закинул скрипт в opt/etc/ndm/wan.d/. При перезагрузке подключения, вываливает ошибку, куда копать?

Screenshot 2023-01-29 at 19-52-35 Keenetic Giga – Диагностика.png

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

Edited by Marat1217
Link to comment
Share on other sites

  • 2 months later...

 

В 29.01.2023 в 16:11, SP1R1T сказал:

Добрый день.

Форумчане есть ли возможность написать мануал по запуску данного скрипта что выше с нуля? Тему порыл ответа не нашел, заранее спасибо. Entware развернул обновил, установил xmlstarlet,  jq. Закинул скрипт в opt/etc/ndm/wan.d/. При перезагрузке подключения, вываливает ошибку, куда копать?

Screenshot 2023-01-29 at 19-52-35 Keenetic Giga – Диагностика.png

проверьте 

ConnName=Rostelecom
Link to comment
Share on other sites

  • 2 months later...
В 28.02.2019 в 11:04, Geont сказал:

скрипт обрабатывает только подключение с указанным названием в случае его использования в качестве основного

Добрый день, а кто подскажет, как заставить скрипт отрабатывать на не основном подключении?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...