Tuesday, 16 December 2008
Juletip 16: vågner vågner danske helte
« Juletip 15: hvem er det der snakker | Main | Juletip 17: Hey Rudolf bak lige kanen, vi tabte lige en disk »Sagnet siger, at når Danmark stander i våde, så vil Holger Danske vågne op til dåd - gid han gjorde det nu og bankede noget fornuft ind i racister, politikere (allesammen), ITST, forbrugsfesten og overforbruget i Danmark - og alle de andre padder vi vader i :-)
Nå, men indtil da kan vi måske starte med et spare lidt strøm :-)
De fleste nørder jeg kender har enten en eller flere servere stående hjemme eller ude i byen, og dagens tip er rettet mod dem der har servere hjemme.
Hvis du har servere stående men ikke har behov for at disse altid er tændt er du i målgruppen idag. Du tænder måske systemet hvis du regner med at skulle hente noget i løbet af dagen eller fordi du skal lave noget på det pågældende system. Desværre er det jo typisk sådan at hvis du tænder systemet inden du går hjemmefra får du IKKE brug for noget netop den dag, men glemmer du at tænde det - mangler du noget fra systemet :-(
Til dette findes der en simpel løsning der hedder Wake on LAN som kan tænde din computer over netværk, og lad dig ikke narre af navnet.
WOL som det ofte forkortes understøttes på de fleste PC bundkort og derfor er det en fantastisk mulighed for at bruge det. Wake on LAN virker ved at der sendes en pakke på netværket som har et specielt format som netkort kan forstå. Denne magiske pakke sendes som broadcast på Ethernet niveau og indeholder MAC adressen på netkortet 16 gange, ja en enkelt gang ville jo slet ikke være nok! :-)
Det kræver:
- et system der forstår Wake on LAN, de fleste gør - både laptops stationære, Macs osv.
- at du noterer MAC adressen for netkortet på det pågældende system
- at du har et værktøj til at sende WOL pakkerne
Heldigvis findes der et væld af værktøjer til at lave denne magiske pakke og jeg vil bruge wakeonlan fra Macports som eksempel. Det er faktisk et perl script som jeg har lagt en kopi af på http://www.kramse.org/files/tmp/wakeonlan .
Godt, det du skal gøre er således at gå ind i BIOS og finde menuerne der tillader Wake on LAN, det burde de fleste kunne finde ud af. Hvis du vil gøre det på en Mac er det under Energy Saver.

De næste er derefter at finde MAC adressen på netkortet - skil maskinen ad i atomer og find en mærkat med det, eller check et andet sted :-)
hlk@fluffy:hlk$ ifconfig -a | egrep lladd
lladdr 00:0e:de:ad:be:ef
lladdr 00:02:be:ef:b3:3f
Ovenstående er fra en OpenBSD, ifconfig viser det typisk på Unix, ipconfig på Windows gør også.
Næste trin er at lukke systemet ned, shutdown, luk, afslut, stop, stands!
Så bliver det spændende og det nemmeste er at teste med et andet system på samme netværk/switch - og jeg HAR haft nogle switche herhjemme hvor det ikke virkede!
Det nemmeste efter min mening er at lave et lille script, som jeg lægger i ~/bin - et andet lille tip, læg scripts under /bin i dit hjemmekatalog.
hlk@bigfoot:bin$ cat wake-fluffy
#! /bin/sh
#
# wake up fluffy
# fxp
wakeonlan 00:0e:de:ad:be:ef
# sk0
wakeonlan 00:02:be:ef:b3:3f
Hvis det virker er alt jo godt - så kan du efter behag slukke og tænde systemet ved hjælp af Wake on LAN :-)
Hvis du vil have hele pivetøjet til at virke må du finde en maskine der altid er tændt hjemme og bruge som springbrædt, jeg bruger min Soekris med OpenBSD som er firewall, den er altid tændt. Alternativt kan du sende Wake on LAN pakkerne over IP-netværket, eksempelvis ved brug af en kommando svarende til dette:
wakeonlan -i 217.157.20.141 -p 35776 00:02:be:ef:b3:3f
Bemærk at dette blot sender en UDP pakke i retning af IP-adressen på den pågældende port, som du så selv skal sørge for at port-forwarde til en maskine på indersiden. På min OpenBSD firewall var jeg ligeledes nødt til at hardcode MAC-IP adressen på systemet bagved for at dette virkede - men det virkede! Jeg brugte netop den kommando engang jeg var på The Camp og langt væk fra hjemmet.
Posted by at CET 15:12 16/12/2008 in Toolbox entries
[Trackback URL for this entry]


Fremragende guide!
Det vil bliver brugt snarligt :D