[[:start|Torna all'inizio]] | [[mikrotik:index|Torna su]] ===== Wireguard Bug - Watchdog automatico per reset peer ===== Questo script permette di effettuare un check dell'attributo last-handshake, se questo è maggiore di 130 secondi allora riavvia il peer.\\ Purtroppo c'è un bug che ancora Mikrotik non ha risolto, che non permette la riconnessione del peer remoto se il peer remoto è dietro nat, probabilmente perchè Mikrotik si aspetta che i pacchetti provengano sempre dalla stessa porta sorgente. (Penso io eh, non so se effettivamente sia questo il problema).\\ Ad ogni modo, con questo script ho risolto il problema.\\ :local timeoutSec 130 :foreach i in=[/interface wireguard peers find] do={ :local hs [/interface wireguard peers get $i last-handshake] :local name [/interface wireguard peers get $i name] :if ([:len $hs] > 0) do={ :local h [:tonum [:pick $hs 0 2]] :local m [:tonum [:pick $hs 3 5]] :local s [:tonum [:pick $hs 6 8]] :local age ($h * 3600 + $m * 60 + $s) :if ($age > $timeoutSec) do={ /interface wireguard peers disable $i :delay 1 /interface wireguard peers enable $i :log warning "WG peer $name riavviato: handshake $age sec fa" } } else={ :log debug "WG peer $name mai connesso: handshake assente" } } Meglio ancora se configurato con lo scheduler: /system scheduler add interval=10s name=wg-watchdog on-event="COPIA QUI DENTRO LO SCRIPT!"