Jump to content

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


Recommended Posts

В теме описывается управление интерфейсами через ndmq.

А нельзя ли для этого использовать утилиту ip?

ip link set dev ppp0 up/down

Или тут другой механизм и он хуже?

Link to comment
Share on other sites

17 минут назад, evgeny1503 сказал:

Или тут другой механизм и он хуже?

Большей частью сетевых интерфейсов управляет прошивка. По CI (ndmq) или RCI-интерфейсу мы взаимодействуем с логикой прошивки, а с помощью ip link … down непосредственно с сетевым интерфейсом. 

Первый вариант, разумеется, предпочтительней.

Link to comment
Share on other sites

30 минут назад, Александр Рыжов сказал:

Первый вариант, разумеется, предпочтительней

Понятно, спасибо. А не подскажете где узнать за интерфейсы?

К примеру,

FastEthernet0

FastEthernet0/0

FastEthernet0/1

FastEthernet0/2

FastEthernet0/3

FastEthernet0/4

FastEthernet0/Vlan1

FastEthernet0/Vlan2

WifiMaster0

WifiMaster0/AccessPoint0

WifiMaster0/AccessPoint1

WifiMaster0/AccessPoint2

WifiMaster0/AccessPoint3

WifiMaster0/WifiStation0

 

Какой из них за ви-фи 5, какой за 2.4 отвечает? Какой pppoe и т.д.

Link to comment
Share on other sites

2 часа назад, Александр Рыжов сказал:

По description в выводе

 wget -qO - http://127.0.0.1:79/rci/show/interface

Пожалуйста, дальше покопайте сами.

Спасибо, копаю. Похоже ndmq уже не актуально... Теперь надо копать в сторону rest

Edited by evgeny1503
Link to comment
Share on other sites

  • 3 months later...
В 15.09.2021 в 19:01, Geont сказал:

Можно ndmq установить отсюда.

Извините за нубность. Но как его установить? То что накопал в интернете выводит ошибку


~ # opkg install /tmp/ndmq_1.0.2-7_mipsel-3.4_kn.ipk
Collected errors:
 * wfopen: /tmp/ndmq_1.0.2-7_mipsel-3.4_kn.ipk: No such file or directory.
 * pkg_init_from_file: Failed to extract control file from /tmp/ndmq_1.0.2-7_mipsel-3.4_kn.ipk.

Link to comment
Share on other sites

  • 1 month later...
  • 5 weeks later...
35 минут назад, zirm33 сказал:

Поделитесь, пожалуйста, рабочим скриптом на прошивке 3.8.3. 

Он есть на предыдущей странице

Link to comment
Share on other sites

В 29.07.2022 в 11:16, Rezdbic сказал:

Он есть на предыдущей странице

Этот скрипт у меня тоже почему то перестал работать на прошивке 3.8.3

Link to comment
Share on other sites

  • 2 weeks later...
В 29.07.2022 в 10:41, zirm33 сказал:

Поделитесь, пожалуйста, рабочим скриптом на прошивке 3.8.3. 

У меня тоже не работал. Оказалось что права на файл скрипта были 0644, а должны быть 0755. Исправил и всё заработало. Проверьте у себя.

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...
Цитата

У меня тоже не работал. Оказалось что права на файл скрипта были 0644, а должны быть 0755. Исправил и всё заработало. Проверьте у себя.

Можно подробнее, как это сделать?

Link to comment
Share on other sites

Скрипт работает, но в журнале периодически такая ошибка (Opkg::Manager: /opt/etc/ndm/wan.d/white-ip.sh: exit code 1.). Это на что-то влияет? 

Link to comment
Share on other sites

В 05.09.2022 в 22:23, zirm33 сказал:

Скиньте, пожалуйста, рабочий скрипт файлом с правильными правами. (Rostelecom)

Несмотря на изменение прав на файл скрипта он то работает, то нет (чаще). Заметил что при автоматическом запуске скрипта когда провайдер дергает подключение (у меня это каждые 72 часа) в логе и служебном файле /opt/tmp/previp.txt записывается значение "null". То есть в момент срабатывания скрипта WAN интерфейс ещё не получил адрес от провайдера. Скрипт это значение не обрабатывает и завершается с кодом 1. Для того чтобы это устранить я вставил команду задержки перед командой получения адреса провайдера на 3 секунды (строка 13).

#!/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

можете просто добавить команду задержки в ваш скрипт:

sleep 3

Или возьмите готовый. Скрипт необходимо поместить в папку /opt/etc/ndm/wan.d и выдать ему права на выполнение командой:

chmod +x /opt/etc/ndm/wan.d/030-rostelecom.sh

или

chmod 0755 /opt/etc/ndm/wan.d/030-rostelecom.sh

 

030-rostelecom.sh

Edited by winnie57
Вернул в скрипт проверку наличия пакета jq и установку его при отсутствии.
  • Thanks 2
Link to comment
Share on other sites

  • 2 weeks later...
В 13.09.2022 в 17:16, winnie57 сказал:

chmod +x /opt/etc/ndm/wan.d/030-rostelecom.sh

Подскажите пожалуйста как выполнить команду? Подключаюсь к роутеру через putty, ввожу команду и выдает что такая команда chmod не существует.

Link to comment
Share on other sites

2 часа назад, terrabyte сказал:

Подскажите пожалуйста как выполнить команду? Подключаюсь к роутеру через putty, ввожу команду и выдает что такая команда chmod не существует.

Покажите что конкретно вводите и то что получаете в ответ

Link to comment
Share on other sites

1 час назад, Rezdbic сказал:

Покажите что конкретно вводите и то что получаете в ответ

 

 

Скрытый текст

Putty.PNG

 

Edited by terrabyte
Link to comment
Share on other sites

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

Вы подключаетесь к роутеру по telnet, а надо по ssh. Entware установлен?

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

Edited by terrabyte
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

Нет, на вашем скриншоте подключение по telnet.

Link to comment
Share on other sites

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

Нет, на вашем скриншоте подключение по telnet.

Ну как же так то? Вот скрин putty тут жму open

Скрытый текст

SSH.PNG.0a548d1f55359e7e6ef34c24ebe80236.PNG

 

Edited by terrabyte
Link to comment
Share on other sites

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

Подключение по ssh к entware выглядит так:
 

Снимок экрана от 2022-09-26 15-01-28.png

Я давненько подключался настраивал да выглядело именно так. Устанавливал mc и т.д Но сейчас почему то так. В чем причина?

Link to comment
Share on other sites

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

Порт другой попробуйте типа 222.

 

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

Edited by terrabyte
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...