From 249db2c6d28b36db41b1c3484ca12685910bc520 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 12:40:59 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 12:40:59. --- .../20260608/20260608124002-Binary.backup | Bin 0 -> 262997 bytes .../20260608/20260608124002-Config.rsc | 3597 +++++++++++++++++ .../20260608/20260608124002-Diff-Config.rsc | 12 + 3 files changed, 3609 insertions(+) create mode 100644 MikroMaster/20260608/20260608124002-Binary.backup create mode 100644 MikroMaster/20260608/20260608124002-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608124002-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608124002-Binary.backup b/MikroMaster/20260608/20260608124002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..0f387d7b1153a05abe7416d492d9425e58e9211e GIT binary patch literal 262997 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ƴ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 z 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≥e$V_6A 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 Tfo$sx;Eg01p8#|t)^J{F>mcnE literal 0 HcmV?d00001 diff --git a/MikroMaster/20260608/20260608124002-Config.rsc b/MikroMaster/20260608/20260608124002-Config.rsc new file mode 100644 index 0000000..94f44b3 --- /dev/null +++ b/MikroMaster/20260608/20260608124002-Config.rsc @@ -0,0 +1,3597 @@ +# 2026-06-08 12:40:04 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add dhcpv6-agent-circuit-id="\$(INTERFACE):\$(VID)" dhcpv6-agent-remote-id=\ + "\$(BRIDGEMAC)" name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-client option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=DUID value=0x00030001488f5a8e1abc +add code=61 name=clientid +/ipv6 dhcp-server option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=CLIENT_DUID +add code=61 name=CLIENT_MAC +/ipv6 pool +add name=fddd-pref prefix=fddd:2c4:2c4:2c4::/128 prefix-length=128 +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \n}" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes max-neighbor-entries=8192 \ + multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4,10.30.30.81 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +/ip firewall filter +add action=accept chain=input comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ + 10.30.30.0/24 +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address=!10.30.30.0/24 \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ + 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ + 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260608/20260608124002-Diff-Config.rsc b/MikroMaster/history/20260608/20260608124002-Diff-Config.rsc new file mode 100644 index 0000000..a46ec4a --- /dev/null +++ b/MikroMaster/history/20260608/20260608124002-Diff-Config.rsc @@ -0,0 +1,12 @@ +2614,2616c2614,2616 +< add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ +< interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ +< no use-peer-ntp=no +--- +> add check-gateway=arp default-route-tables=main dhcp-options=\ +> hostname,clientid,clientid_duid interface="ether1 - Unet" name=client1 \ +> use-peer-dns=no use-peer-ntp=no +3502a3503,3505 +> /ipv6 address +> add address=fddd:2c4:2c4:2c4::81/128 advertise=no disabled=yes from-pool=\ +> fddd-pref interface=Bridge-LAN -- 2.52.0