User Tools

Site Tools


routeros

Known your IP

/tool fetch https://wtfismyip.com/text output=user

Balance

OSPF watchdog when default route vanishes, set your variables!

:local HOSTNAME ([/system identity get name])
:if ([/ip route print count-only where dst-address=0.0.0.0/0 ospf]=0) do={
 /routing ospf instance set 0 disabled=yes
 /routing ospf instance set 0 disabled=no
 /log error "$HOSTNAME NO OSPF"
 :delay 4000ms;
 /tool fetch url="https://api.telegram.org/bot$BOT_ID/sendMessage?chat_id=$CHAT_ID&text=$HOSTNAME NO OSPF, OSPF RESTARTING" keep-result=no
}

something about wifi reg tables


:foreach ITEM in=[/interface wireless registration-table print] do={
  :local COMMENT [/interface wireless registration-table get $ITEM comment];
  :put "$COMMENT";
}

:foreach a in=[/interface wireless registration-table] do={
  :put [interface wireless registration-table get $a comment]
}


:foreach i in [/interface wireless registration-table find] do={
  :find [/interface wireless registration-table get $i comment]
:put "$i"
  }
}

{
 :local registration [/interface wireless registration-table print where interface=wlan2 count-only];
  :if ($registration > 0) do={
/tool fetch url="https://api.telegram.org/xx/sendMessage?chat_id=866143904&text=wlan2 up" keep-result=no
 }
}

MPLS basic

/mpls ldp set enabled=yes lsr-id=172.26.0.101 transport-address=172.26.0.101
/mpls ldp interface add interface=ether2
/mpls ldp interface add interface=ether5
/interface vpls add remote-peer=172.26.0.103 vpls-id=3012:3012 pw-type=tagged-ethernet
/interface bridge port
add bridge=vlan3012-bridge interface=vpls1
add bridge=vlan3012-bridge interface=vpls2
add bridge=vlan3012-bridge interface=ether1

Automatic PPPoE creation local secrets

{
    :put "Starting real-time PPPoE-only log monitor... Press [Ctrl+C] to stop.";
    
    # Initialize the log pointer to the very last current entry
    :local terminalLogID [/log find]
    :local lastID ""
    :if ([:len $terminalLogID] > 0) do={
        :set lastID ($terminalLogID->([:len $terminalLogID] - 1))
    }

    # Continuous loop
    :while (true) do={
        # Filter logs containing authentication failure and include "user "
        :local logEntries [/log find where message~"authentication failed" and message~"user "]
        
        :foreach entry in=$logEntries do={
            # Process only newer entries than our saved marker
            :if ($entry > $lastID) do={
                :local logTopics [/log get $entry topics]
                
                # STRICT TOPIC CHECK: Ensure the log contains the 'pppoe' topic
                :if ($logTopics ~ "pppoe") do={
                    :local logMsg [/log get $entry message]
                    :local logTime [/log get $entry time]
                    
                    :local startPos ([:find $logMsg "user "] + 5)
                    :local endPos [:find $logMsg " authentication failed" $startPos]
                    
                    :if ($endPos > $startPos) do={
                        :local pppoeUser [:pick $logMsg $startPos $endPos]
                        
                        # Verify if it already exists
                        :if ([:len [/ppp secret find where name=$pppoeUser]] = 0) do={
                            /ppp secret add name=$pppoeUser password="12345" service=pppoe comment="Auto-created via pppoe log monitor"
                            :put "[$logTime] [PPPoE Match] Created user: $pppoeUser"
                        } else={
                            :put "[$logTime] [PPPoE Match] Missing user '$pppoeUser' detected, but secret already exists."
                        }
                    }
                }
                :set lastID $entry
            }
        }
        # 2-second delay before checking the log buffer again
        :delay 2s;
    }
}
routeros.txt · Last modified: by protocol