Mikrotik, Network, RouterOS sistem

Wake on LAN na usmerjevalnikih Mikrotik

 
Ste že kdaj nujno potrebovali neko datoteko, ki ste jo imeli shranjeno na domačem računalniku in niste mogli dostopati nanj na daljavo, ker je bil izključen? Odgovor na to je ethernet standard WoL oz. Wake On Lan, ki omogoča zagon računalnika na daljavo s pomočjo “magičnega” paketka.

V ta namen bomo morali najprej ustrezno nastaviti mrežno kartico, tako v Biosu kot v operacijskem sistemu.

  • V Biosu poiščemo nastavitev za wake on lan, ponavadi se to nahaja v nivoju Power management:

  • Prav tako moramo tudi v operacijskem sistemu dovoliti, da lahko mrežna kartica zažene računalnik. Te nastavitve v Windows 7 najdemo pod nastavitvami mrežne kartice, ponovno v predelu power management in advanced:

 

konfiguracija usmerjevalnika Mikrotik

V ta namen lahko uporabimo 2 tehnike:

 

  • Zagon računalnika direktno z Mikrotik usmerjevalnika.
  • Zagon računalnika s pomočjo ustrezne aplikacije preko interneta.

 

Za prvo tehniko potrebujete le dostop do usmerjevalnika (winbox ali cli):

V New terminalu izvedete ukaz, pri čemer pod interface vpišemo vmesnik na katerega je priključen računalnik, mac naslov pa zamenjamo z naslovom mrežne kartice računalnika, ki ga želimo zbuditi:

/tool wol interface=LAN mac=XX:XX:XX:XX:XX:XX

V ta namen smo tudi naredili skripto, ki poenostavi te ukaze in vse kar potrebujemo je le ime (hostname) ali IP naslov računalnika:

# Vnesite hostname (case sensitive!!) oz. IP naslov racunalnika, ki ga zelite zagnati:
:global host “Janez-PC”

###################################################################
# get number of interfaces
:global intsum ([/interface print count-only]-1);

# create array of names for interfaces
:global intarrayName “”
:for i from=0 to=$intsum do={:global intarrayName ($intarrayName . “,” . [/interface get $i value-name=name])}
:set intarrayName [:toarray $intarrayName];

# create array for status of interfaces
:global intarrayStatus “”
:for i from=0 to=$intsum do={:global intarrayStatus ($intarrayStatus . “,” . [/interface get $i value-name=running])}
:set intarrayStatus [:toarray $intarrayStatus];

:global intarray “”
for i from=0 to=$intsum do={
:if ([:pick $intarrayStatus $i]=true) do={
:global intarray ($intarray . “,” . [:pick $intarrayName $i])
}
}
:set intarray [:toarray $intarray];

:if ($host~”[0-9]+.[0-9]+.[0-9]+.[0-9]+”) do={
:if ([/ip dhcp-server lease print count-only where address=$host] = 1) do={
:local mac [/ip dhcp-server lease get [find where address=$host] mac-address]
:put “MAC naslov racunalnika je $mac”
:put “Posiljam magic packet…”
:for i from=0 to=[:len $intarray] do={
/tool wol interface=[:pick $intarray $i] mac=$mac
#            :put [:pick $intarray $i];
}
} else={
:put “MAC naslova ni bilo mogoce najti.”
}
} else={
:if ([/ip dhcp-server lease print count-only where host-name~$host] = 1) do={
:local mac [/ip dhcp-server lease get [find where host-name~$host] mac-address]
:put “MAC naslov racunalnika je $mac”
:put “Posiljam magic packet…”
:for i from=0 to=[:len $intarray] do={
/tool wol interface=[:pick $intarray $i] mac=$mac
#            :put [:pick $intarray $i];
}
} else={
:put “MAC naslova ni bilo mogoce najti.”
}
}

 

Skripta dobi MAC naslov računalnika iz tabele podeljenih naslovov (lease) lokalnega DHCP strežnika (zato bo tudi delovala le v primeru, če se DHCP strežnik nahaja na routerju samem) in pošlje “magic packet” na vse “interface”, ki so aktivni.

Skripto zaženemo tako, da zgornji tekst (popravimo le spremenljivko hostname) kopiramo direktno v New Terminal  ali pa kreiramo novo skripto pod system->scripts kopiramo tekst tja in jo zaženemo z ukazom

/system scripts run “ime skripte”

 

Za drugo tehniko je potrebno skonfigurirati firewall NAT in dodati statični zapis v ARP tabelo:

Da “magic packet” ustrezno preusmerimo v lokalno omrežje proti željenemu računalniku, moramo narediti NAT pravilo:

/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-port=9 in-interface=WAN protocol=udp
to-addresses=”ip naslov rač.” to-ports=9

V zgornjem primeru je potrebno zamenjati in-interface z interfaceom na katerem je javni IP naslov, to-address pa je potrebno zamenjati z IP naslovom računalnika katerega želimo zbuditi. Zaradi varnosti je zelo priporočljivo, da se dst-port zamenja z drugim portom, saj lahko na “default” wol port kdorkoli pošlje paket in nam konstantno zbuja računalnik!

Ker pa se navadno dinamični zapisi v ARP tabeli usmerjevalnika ob izklopu računalnika kaj hitro izbrišejo, je potrebno dodati še statični zapis, da bo vedel preko katerega vmesnika poslati paket:

/ip arp
add address=”ip naslov rač.” disabled=no interface=LAN mac-address=XX:XX:XX:XX:XX:XX

Ponovno zamenjamo interface z ustreznim vmesnikom, kamor je priključen rač.

Za pošiljanje “magičnega” paketa imamo na voljo veliko aplikacij za različne platforme napr. za Windows: http://www.depicus.com/wake-on-lan/wake-on-lan-gui.aspx.

Še enostavnejše pa je kar on-line: http://wakeonlan.me/

 

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja