/system leds set 1 interface=br1 type=interface-status /interface bridge set br1 disabled=yes; # set br1 disabled=no; #
/interface ethernet poe set eth2 poe-out=auto-on; :local status; /interface ethernet poe monitor eth2 once do={ :set status $"poe-out-status"; }; :if ($status = "powered-on") do={ # };
:local link; /interface ethernet cable-test eth1 once do={ :set link $"status"; }; :if ($link = "link-ok") do={ # };
:if ([/interface ethernet get eth1 speed] = "100Mbps") do={ # };
:if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms] = 1) do={ :if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms size=1500] = 1) do={ # }; };
:local gateway "8.8.8.8"; # :if ([/interface pptp-client get vpn disabled] != false) do={ /interface pptp-client set vpn disabled=no; }; :if ([/interface pptp-client get vpn running] = true) do={ :if ([/ping address=$gateway interface=vpn count=1 interval=200ms size=1500] = 1) do={ # }; };
{ :log info [ :time { :local gateway "8.8.8.8"; /interface bridge set test1 disabled=yes; /interface bridge set test2 disabled=yes; /interface bridge set test3 disabled=yes; /interface ethernet poe set link poe-out=forced-on; /interface pptp-client set vpn disabled=yes; :delay 3; :local link; :local status; :local flag false; :while ([/interface bridge get off disabled] = true) do={ /interface ethernet cable-test ethernet once do={ :set link $"status"; }; :if ($link = "link-ok") do={ :if ([/interface ethernet poe get link poe-out] = "forced-on") do={ /interface ethernet poe set link poe-out=off; }; :if ([/interface ethernet get ethernet speed] = "100Mbps") do={ :if ([/interface bridge get test1 disabled] != false) do={ /interface bridge set test1 disabled=no; }; :if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms] = 1) do={ :if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms size=1500] = 1) do={ :if ([/interface bridge get test2 disabled] != false) do={ /interface bridge set test2 disabled=no; }; :if ($flag != true) do={ :if ([/interface ethernet poe get link poe-out] != "auto-on") do={ /interface ethernet poe set link poe-out=auto-on; }; }; /interface ethernet poe monitor link once do={ :set status $"poe-out-status"; }; :if (([/interface ethernet poe get link poe-out] = "auto-on" and $status = "powered-on") or $flag = true) do={ :if ($flag != true) do={ :set flag true; :if ([/interface pptp-client get vpn disabled] != false) do={ /interface pptp-client set vpn disabled=no; }; :if ([/interface ethernet poe get link poe-out] != "off") do={ /interface ethernet poe set link poe-out=off; } }; :if ([/interface pptp-client get vpn running] = true) do={ :if ([/ping address=$gateway interface=vpn count=1 interval=200ms size=1500] = 1) do={ :if ([/interface bridge get test3 disabled] != false) do={ /interface bridge set test3 disabled=no; } } else={ :if ([/interface bridge get test3 disabled] != false) do={ /interface bridge set test3 disabled=no; }; :delay 0.5; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; }; :delay 0.5; } } else={ :if ([/interface bridge get test3 disabled] != false) do={ /interface bridge set test3 disabled=no; }; :delay 0.5; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; }; :delay 0.5; } } } else={ :if ([/interface ethernet poe get link poe-out] = "auto-on") do={ /interface ethernet poe set link poe-out=off; }; :if ([/interface pptp-client get vpn disabled] != true) do={ /interface pptp-client set vpn disabled=yes; }; :set flag false; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; }; :if ([/interface bridge get test2 disabled] != false) do={ /interface bridge set test2 disabled=no; }; :delay 0.5; :if ([/interface bridge get test2 disabled] != true) do={ /interface bridge set test2 disabled=yes; }; :delay 0.5; } } else={ :if ([/interface ethernet poe get link poe-out] = "auto-on") do={ /interface ethernet poe set link poe-out=off; }; :if ([/interface pptp-client get vpn disabled] != true) do={ /interface pptp-client set vpn disabled=yes; }; :set flag false; :if ([/interface bridge get test2 disabled] != true) do={ /interface bridge set test2 disabled=yes; }; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; } } } else={ :if ([/interface ethernet poe get link poe-out] = "auto-on") do={ /interface ethernet poe set link poe-out=off; }; :if ([/interface pptp-client get vpn disabled] != true) do={ /interface pptp-client set vpn disabled=yes; }; :set flag false; :if ([/interface bridge get test1 disabled] != true) do={ /interface bridge set test1 disabled=yes; }; :if ([/interface bridge get test2 disabled] != true) do={ /interface bridge set test2 disabled=yes; }; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; } } } else={ :if ([/interface ethernet poe get link poe-out] != "forced-on") do={ /interface ethernet poe set link poe-out=forced-on; }; :if ([/interface pptp-client get vpn disabled] != true) do={ /interface pptp-client set vpn disabled=yes; }; :set flag false; :if ([/interface bridge get test1 disabled] != true) do={ /interface bridge set test1 disabled=yes; }; :if ([/interface bridge get test2 disabled] != true) do={ /interface bridge set test2 disabled=yes; }; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; }; :delay 3; } }; :if ([/interface ethernet poe get link poe-out] != "off") do={ /interface ethernet poe set link poe-out=off; }; :if ([/interface pptp-client get vpn disabled] != true) do={ /interface pptp-client set vpn disabled=yes; }; :if ([/interface bridge get test1 disabled] != true) do={ /interface bridge set test1 disabled=yes; }; :if ([/interface bridge get test2 disabled] != true) do={ /interface bridge set test2 disabled=yes; }; :if ([/interface bridge get test3 disabled] != true) do={ /interface bridge set test3 disabled=yes; }; :if ([/interface bridge get off disabled] != true) do={ /interface bridge set off disabled=yes; } } ] }
/system scheduler add name=tester on-event=":delay 3;/system script run tester;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=startup
# RouterOS 6.21.1 # /interface bridge add disabled=yes mtu=1500 name=off add mtu=1500 name=test1 add mtu=1500 name=test2 add mtu=1500 name=test3 /interface ethernet set [ find default-name=ether1 ] name=ethernet set [ find default-name=ether2 ] name=link poe-out=off /interface wireless set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20/40mhz-Ce \ country=russia disabled=no distance=indoors frequency=2437 \ frequency-mode=superchannel l2mtu=1600 mode=ap-bridge radio-name="" ssid=\ wifi wireless-protocol=802.11 /interface wireless nstreme set wlan1 enable-polling=no /ip neighbor discovery set ethernet discover=no /interface wireless security-profiles set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk eap-methods="" \ group-ciphers=tkip,aes-ccm mode=dynamic-keys unicast-ciphers=tkip,aes-ccm \ wpa-pre-shared-key= wpa2-pre-shared-key= /ip pool add name=default-dhcp ranges=192.168.88.10-192.168.88.254 /ip dhcp-server add address-pool=default-dhcp disabled=no interface=wlan1 name=default /interface pptp-client add add-default-route=no allow=mschap1,mschap2 connect-to=vpn..ru \ dial-on-demand=no disabled=no keepalive-timeout=60 max-mru=1400 max-mtu=\ 1400 mrru=disabled name=vpn password= profile=default-encryption \ user= /system logging action set 1 disk-file-name="" set 2 remember=yes /interface bridge port add interface=link add interface=wlan1 /ip address add address=192.168.88.1/24 interface=wlan1 \ network=192.168.88.0 /ip dhcp-client add dhcp-options=hostname,clientid disabled=\ no interface=ethernet use-peer-ntp=no /ip dhcp-server network add address=192.168.88.0/24 dns-server=\ 192.168.88.1 gateway=192.168.88.1 /ip dns set allow-remote-requests=yes /ip dns static add address=192.168.88.1 name=router /ip firewall filter add chain=input protocol=icmp add chain=input connection-state=established add chain=input connection-state=related add action=drop chain=input in-interface=\ all-ppp add chain=forward connection-state=\ established add chain=forward connection-state=related add action=drop chain=forward \ connection-state=invalid /ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=vpn src-address=\ 192.168.88.10-192.168.88.254 /ip firewall nat add action=masquerade chain=srcnat \ out-interface=all-ppp /ip route add distance=1 gateway=vpn routing-mark=vpn /ip upnp set allow-disable-external-interface=no /snmp set trap-community=public /system clock manual set time-zone=+05:00 /system leds set 1 interface=wlan1 type=wireless-status set 3 interface=test2 type=interface-status set 4 interface=test1 type=interface-status add interface=test3 leds=user-led type=interface-status /system routerboard settings set cpu-frequency=400MHz /system scheduler add name=tester on-event=":delay 3;\r\ \n/system script run tester;" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=\ startup /system script add name=tester policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive source="{:log i\ nfo [:time {:local gateway \"8.8.8.8\";/interface bridge set test1 di\ sabled=yes;/interface bridge set test2 disabled=yes;/interface bridge set \ test3 disabled=yes;/interface ethernet poe set link poe-out=forced-on;/int\ erface pptp-client set vpn disabled=yes;:delay 3;:local link;:local status\ ;:local flag false;:while ([/interface bridge get off disabled] = true) do\ ={/interface ethernet cable-test ethernet once do={:set link \$\"status\";\ };:if (\$link = \"link-ok\") do={:if ([/interface ethernet poe get link po\ e-out] = \"forced-on\") do={/interface ethernet poe set link poe-out=off;}\ ;:if ([/interface ethernet get ethernet speed] = \"100Mbps\") do={:if ([/i\ nterface bridge get test1 disabled] != false) do={/interface bridge set te\ st1 disabled=no;};:if ([/ping address=[/ip dhcp-client get 0 gateway] inte\ rface=ethernet count=1 interval=200ms] = 1) do={:if ([/ping address=[/ip d\ hcp-client get 0 gateway] interface=ethernet count=1 interval=200ms size=1\ 500] = 1) do={:if ([/interface bridge get test2 disabled] != false) do={/i\ nterface bridge set test2 disabled=no;};:if (\$flag != true) do={:if ([/in\ terface ethernet poe get link poe-out] != \"auto-on\") do={/interface ethe\ rnet poe set link poe-out=auto-on;}};/interface ethernet poe monitor link \ once do={:set status \$\"poe-out-status\";};:if (([/interface ethernet poe\ \_get link poe-out] = \"auto-on\" and \$status = \"powered-on\") or \$flag\ \_= true) do={:if (\$flag != true) do={:set flag true;:if ([/interface ppt\ p-client get vpn disabled] != false) do={/interface pptp-client set vpn di\ sabled=no;};:if ([/interface ethernet poe get link poe-out] != \"off\") do\ ={/interface ethernet poe set link poe-out=off;}};:if ([/interface pptp-cl\ ient get vpn running] = true) do={:if ([/ping address=\$gateway interface=\ vpn count=1 interval=200ms size=1500] = 1) do={:if ([/interface bridge get\ \_test3 disabled] != false) do={/interface bridge set test3 disabled=no;}}\ \_else={:if ([/interface bridge get test3 disabled] != false) do={/interfa\ ce bridge set test3 disabled=no;};:delay 0.5;:if ([/interface bridge get t\ est3 disabled] != true) do={/interface bridge set test3 disabled=yes;};:de\ lay 0.5;}} else={:if ([/interface bridge get test3 disabled] != false) do=\ {/interface bridge set test3 disabled=no;};:delay 0.5;:if ([/interface bri\ dge get test3 disabled] != true) do={/interface bridge set test3 disabled=\ yes;};:delay 0.5;}}} else={:if ([/interface ethernet poe get link poe-out]\ \_= \"auto-on\") do={/interface ethernet poe set link poe-out=off;};:if ([\ /interface pptp-client get vpn disabled] != true) do={/interface pptp-clie\ nt set vpn disabled=yes;};:set flag false;:if ([/interface bridge get test\ 3 disabled] != true) do={/interface bridge set test3 disabled=yes;};:if ([\ /interface bridge get test2 disabled] != false) do={/interface bridge set \ test2 disabled=no;};:delay 0.5;:if ([/interface bridge get test2 disabled]\ \_!= true) do={/interface bridge set test2 disabled=yes;};:delay 0.5;}} el\ se={:if ([/interface ethernet poe get link poe-out] = \"auto-on\") do={/in\ terface ethernet poe set link poe-out=off;};:if ([/interface pptp-client g\ et vpn disabled] != true) do={/interface pptp-client set vpn disabled=yes;\ };:set flag false;:if ([/interface bridge get test2 disabled] != true) do=\ {/interface bridge set test2 disabled=yes;};:if ([/interface bridge get te\ st3 disabled] != true) do={/interface bridge set test3 disabled=yes;}}} el\ se={:if ([/interface ethernet poe get link poe-out] = \"auto-on\") do={/in\ terface ethernet poe set link poe-out=off;};:if ([/interface pptp-client g\ et vpn disabled] != true) do={/interface pptp-client set vpn disabled=yes;\ };:set flag false;:if ([/interface bridge get test1 disabled] != true) do=\ {/interface bridge set test1 disabled=yes;};:if ([/interface bridge get te\ st2 disabled] != true) do={/interface bridge set test2 disabled=yes;};:if \ ([/interface bridge get test3 disabled] != true) do={/interface bridge set\ \_test3 disabled=yes;}}} else={:if ([/interface ethernet poe get link poe-\ out] != \"forced-on\") do={/interface ethernet poe set link poe-out=forced\ -on;};:if ([/interface pptp-client get vpn disabled] != true) do={/interfa\ ce pptp-client set vpn disabled=yes;};:set flag false;:if ([/interface bri\ dge get test1 disabled] != true) do={/interface bridge set test1 disabled=\ yes;};:if ([/interface bridge get test2 disabled] != true) do={/interface \ bridge set test2 disabled=yes;};:if ([/interface bridge get test3 disabled\ ] != true) do={/interface bridge set test3 disabled=yes;};:delay 3;}};:if \ ([/interface ethernet poe get link poe-out] != \"off\") do={/interface eth\ ernet poe set link poe-out=off;};:if ([/interface pptp-client get vpn disa\ bled] != true) do={/interface pptp-client set vpn disabled=yes;};:if ([/in\ terface bridge get test1 disabled] != true) do={/interface bridge set test\ 1 disabled=yes;};:if ([/interface bridge get test2 disabled] != true) do={\ /interface bridge set test2 disabled=yes;};:if ([/interface bridge get tes\ t3 disabled] != true) do={/interface bridge set test3 disabled=yes;};:if (\ [/interface bridge get off disabled] != true) do={/interface bridge set of\ f disabled=yes;}}]}" /tool mac-server set [ find default=yes ] disabled=yes add interface=link add interface=wlan1 add interface=ethernet /tool mac-server mac-winbox set [ find default=yes ] disabled=yes add interface=link add interface=wlan1 add interface=ethernet
Source: https://habr.com/ru/post/364593/
All Articles