Автоматизация при помощи встроенного скриптового языка и RouterOS API
Dominik
Сообщения: 23 Зарегистрирован: 09 июл 2018, 12:59
Сообщение
Dominik » 18 апр 2024, 12:49
Нужный скрипт (Скрипт проверки/восстановления работоспособности LTE), который работал в 6-ой версии перестал работать в 7-ой
Я не силен в скриптах микротика, буду признателен и благодарен, если кто поможет скоректировать его:
Код: Выделить всё
#---------------------------------------------------------------------------
# Скрипт проверки/восстановления работоспособности LTE
#---------------------------------------------------------------------------
:local lteIs [:toarray ""]
:local ltenum 0
# Находим перебором все lte-интерфейсы и помещаем их имена в массив $lteIs
:foreach counter in=[/interface lte find] do={
:set ($lteIs->$ltenum) [/interface lte get $counter name];
:set $ltenum ($ltenum+1)
}
:if ([:len $lteIs]!=0) do={
:log info ""
:log warning ("Роутер "."$[/system identity get name] "."lte-модемов: "."$[:len $lteIs]")
:local ltecmd
:local Ltestatus
:local typepar "registration-status";
#:local ltenum [:len $lteIs]
:local ltename
:while ($ltenum!=0) do={
#:set $ltename ("lte"."$[:tostr $ltenum]")
:set $ltename [pick $lteIs ($ltenum-1)];: log warning ("Проверка интерфейса "."$ltename "."....")
:if ([/interface lte get $ltename disabled]) do={:log warning "Lte-интерфейс $ltename был отключен. Включаем его для проверки ..."; [/interface lte enable $ltename];
:log warning "Lte-интерфейс $ltename включен. Ожидаем инициализацию модема ..."; :delay 20s;}
:if ([/ping 8.8.8.8 interface=$ltename count=5]>2) do={:log info "Модем активен и подключен. Есть выход в Интернет через $ltename"; :set $ltenum ($ltenum-1);}
:if ([/ping 8.8.8.8 interface=$ltename count=5]=0) do={
:if (![/interface lte get $ltename disabled]) do={
# get Lte modem status
:set ltecmd [/interface lte info $ltename once as-value]
:set Ltestatus ($ltecmd->$typepar);
:do {:delay 1s; :set Ltestatus ([/interface lte info $ltename once as-value]->"$typepar")} while=([:len ([/interface lte info $ltename once as-value]->"$typepar")]=0)
:if (($Ltestatus="registered") && ([/ping 8.8.8.8 interface=$ltename count=5]>2)) do={:log warning "Появление доступа в интернет через $ltename"} else={
:if (($Ltestatus="registered") or ($Ltestatus="unknown") or ($Ltestatus="not searching") or ($Ltestatus="denied")) do={
:log error "Lte интерфейс $ltename активен, но не пингует 8.8.8.8 - отключаем его ...."
:if ([/ping 8.8.8.8 interface=$ltename count=5]>2) do={:log warning "Появление доступа в Интернет на интерфейсе $ltename. Оставлен включенным"} else={
[/interface lte disable $ltename];}
:log info "Скрипт отключил интефейс $ltename"} else={:log warning "Lte интерфейс $ltename активен, его статус не определён, возможно идёт настройка соединения ... ";}
}
} else={log info "Lte интерфейс $ltename в системе отключен"}
:set $ltenum ($ltenum-1);}
}
} else={:log warning "LTE-интерфейсы не найдены"}
:log warning "Проверка LTE-интерфейсов окончена"
Цифровая типография в Москве
здесь
Chupaka
Сообщения: 4098 Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Сообщение
Chupaka » 19 апр 2024, 08:54
А как именно он перестал работать? В Логе вообще больше ничего не появляется, или что-то всё же есть при запуске?
Dominik
Сообщения: 23 Зарегистрирован: 09 июл 2018, 12:59
Сообщение
Dominik » 19 апр 2024, 10:35
дальше ничего не происходит и не пишет в логах
p.s. вчера заметил,а потом вспомнил, что недавно вносил правки в конфиг, для работы SXT R как Passtrought
Так вот, из этого конфига с порта lte1 не пингуется 8.8.8.8
Порт смотрящий в инет остался "man"
Может я чего то не так сделал? Мой конфиг SXT-R ниже
Код: Выделить всё
# 2024-04-19 10:26:32 by RouterOS 7.14.2
# software id = QJ0G-51TA
#
# model = RBSXTR
# serial number = XXXXXXXXXXXX
/interface ethernet
set [ find default-name=ether1 ] auto-negotiation=no
set [ find default-name=ether2 ] disabled=yes
/interface lte
set [ find default-name=lte1 ] allow-roaming=no band="" network-mode=3g,lte \
sms-read=no
/interface vlan
add interface=ether1 name=man vlan-id=100
add interface=ether1 name=net vlan-id=101
/interface list
add name=WAN
add name=LAN
/interface lte apn
set [ find default=yes ] ip-type=ipv4 passthrough-interface=net \
passthrough-mac=auto use-network-apn=no
add apn=yota.ru ip-type=ipv4 name=YOTA
add apn=home.beeline.ru authentication=chap ip-type=ipv4 name=beeline user=\
beeline
/ip smb users
set [ find default=yes ] disabled=yes
/routing bgp template
set default disabled=no output.network=bgp-networks
/routing ospf instance
add disabled=yes name=default-v2
/routing ospf area
add disabled=yes instance=default-v2 name=backbone-v2
/routing table
add disabled=no fib name=vpn-table
/interface bridge settings
set allow-fast-path=no
/ip firewall connection tracking
set udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ip settings
set allow-fast-path=no max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface detect-internet
set internet-interface-list=WAN lan-interface-list=LAN wan-interface-list=WAN
/interface list member
add interface=man list=LAN
add interface=lte1 list=WAN
add interface=ether1 list=LAN
/interface ovpn-server server
set auth=sha1,md5
/ip dhcp-client
add dhcp-options=clientid interface=man script="\r\
\n"
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=8.8.8.8 disabled=yes name=google.com
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www port=8080
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/ip smb shares
set [ find default=yes ] directory=/flash/pub
/routing bfd configuration
add disabled=no
/routing rule
add action=lookup-only-in-table disabled=yes table=main
/system clock
set time-zone-autodetect=no time-zone-name=Europe/Moscow
/system identity
set name=LTE6
/system note
set show-at-login=no
/system ntp client
set enabled=yes
/system routerboard settings
set auto-upgrade=yes
/system watchdog
set automatic-supout=no watchdog-timer=no
/tool bandwidth-server
set enabled=no
/tool e-mail
set [email protected] port=465 server=smtp.mail.ru tls=yes user=\
[email protected]
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/tool mac-server ping
set enabled=no
/tool netwatch
add disabled=no down-script="" host=8.8.8.8 http-codes="" interval=15s \
test-script="" timeout=5s type=simple up-script="tool e-mail send to=info@m\
ail.ru subject=\"WORK LTE Mikrotik UP\" body=\"Mikrotik Work is UP\
\""
/tool romon
set enabled=yes
/tool sms
set receive-enabled=yes
Цифровая типография в Москве
здесь
Chupaka
Сообщения: 4098 Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Сообщение
Chupaka » 19 апр 2024, 16:55
При включении LTE Passthrough роутер больше не работает сам с модемом и не может через него выходить куда-либо - поэтому 8.8.8.8 и не пингуется?.. Интернет через LTE работает только на клиентском девайсе.