--}}
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем

скрипт для микротика для РТ (выход из серых 100. адресов)

Нужен совет (поиск решения проблемы. не для купли-продажи)
461
20
С друзьями на NN.RU
В социальных сетях
Поделиться
Taelas
18.08.2020
Доброго.

В своё время пробегал тут скрипт для передёргивания внешнего интерфейса pppoe до получения маршрутизируемого ip адреса.
Не поделитесь, у кого остался?
GPRSnik
18.08.2020
А для мтс есть такой? )
Taelas
18.08.2020
А там разве pppoe? Вроде был ipoe (как сейчас говорить любят)...
GPRSnik
20.08.2020
да, года 1,5 назад был динамический белый, сейчас динамический их 5.ХХХ, но похоже фаирволом зачем то кроют,... вымогают деньги на статику nnov.mts.ru/personal/dlya-do...cheskiy-ip-adres
12guests
18.08.2020
:if ($"local-address"&255.192.0.0=100.64.0.0) do={ :log info message="Reconnect, because local-address is rfc6598 address"; /interface disable $interface; /interface enable $interface}
Borskiy2
19.08.2020
Хм...
Изящно. Работает?

ЗЫ у меня более топорно:
#local function
#get first octet current IP external interface

:local currentIP [/ip address get [find interface="RT" disabled=no] address]

#get first octet
:local decimalPos
:local octet

:set decimalPos [:find $currentIP "."];
:set octet [:pick $currentIP 0 $decimalPos];

:if ($octet = 100) do={
:log info "Выдан IP $currentIP ! Реконнект...";
/interface disable RT;
:delay 3s;
/interface enable RT;
} else {
:log info "Текущий IP $currentIP .";
};
kemy
19.08.2020
Такой скрипт не приведет к смене адреса
Сессия активна минут 20 остается и быстрый реконнект адрес не меняет
Borskiy2
19.08.2020

kemy
писал(а)
быстрый реконнект адрес не меняет

Если приглядитесь, то он не такой уж и быстрый. Задержка 3 сек. Вполне достаточно.
Несколько лет уже этот скрипт работает. Никаких проблем. IP меняется при КАЖДОМ срабатывании. Правда, иногда следующий выдаётся тоже 100.х.х.х (хотя и другой), поэтому интервал в планировщике выставил 1 мин. Так что больше 2-3 минут на сером не остаётся.
12guests
19.08.2020
Да, это рабочий скрипт. Забыл только уточнить, что этот скрипт надо прописывать как on-up . У вас, я так понял, немного другой подход - в скрипте указывается имя интерфейса, который надо перезапускать.
Borskiy2
19.08.2020

12guests
писал(а)
как on-up

Так он и выполняться будет только при включении роутера.
12guests
19.08.2020
on-up в ppp профиле, который используется для интерфеса РТ.
Те. этот скрипт запускается после каждого ppp коннекта.

те. я создал доп. ppp-профиль, где прописан этот on-up скрипт, а в конфигурации интерфейса РТ прописано, что использовать этот специальный ppp-профиль (по-умолчанию там используется ppp-профиль Default).
Borskiy2
19.08.2020

12guests
писал(а)
после каждого ppp коннекта

При смене айпи дисконнекта/коннекта ррр не происходит, а значит скрипт будет срабатывать только при включении микротика.
12guests
19.08.2020
вы ошибаетесь. Вы сами свой скрипт писали?
Borskiy2
20.08.2020
По шаблону.
12guests
20.08.2020
потому-что и в моем и в вашем в скрипте используется
/interface disable RT
/interface enable RT
- дисконнект/коннект ррр для смены ip.
Taelas
19.08.2020
спасибо, опробю.
B©BKA
19.08.2020
Каждый интерфейс РРР привязан к определенному профилю, а в нем есть раздел Script и вкладки Up и Down.
Вот туда и пишите - как интерфейс поднимется, то запустится скрипт. Если адрес будет не тот - сбрасывайте и поднимайте по новой и так по кругу.


:local newIP [:pick [/ip address get [find interface ="RT"] address ] 0 3]
:if ($newIP = 100) do={
/interface pppoe-client disable RT
:delay 5
/interface pppoe-client enable RT
}
Taelas
19.08.2020
спасибо, интересно.
SnakeNN
20.08.2020
У меня такой, как раз вроде с этого форума и брал:

#!/opt/bin/bash
#net_addr="100.64.0.0"
net_addr="100.99.0.0"
net_pref="10"

ip2int ()
{
local IFS=. ip num e
ip=($1)
for e in 3 2 1 0
do
(( num += ip[3-e] * 256 ** e ))
done
echo $num
}

start_int=`ip2int $net_addr`
(( end_int = start_int + 2 ** ( 32 - net_pref ) - 1 ))

echo $start_int $end_int

ip=$(ip -f inet -o addr show ppp0|cut -d\ -f 7 | cut -d/ -f 1)

ip_int=`ip2int $ip`
echo $ip_int

if [[ $ip_int -ge $start_int && $ip_int -le $end_int ]];
then
service wan restart
fi
FreeCat
20.08.2020
SnakeNN писал(а)
вроде с этого форума

вроде на Инетовском вначале было :) .
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем