2008년 6월 12일 목요일

Wake on LAN (WoL)

최근에 나오는 컴퓨터는 대부분 wake-on LAN(WoL) 기능을 지원한다. 이 기능을 사용하면 관리자가 꺼져있는 컴퓨터를 원격으로 켤 수 있다. 물론 이 기능을 사용하려고 하면 BIOS 또는 설정에서 이 기능을 사용하도록 활성화 시켜줘야 한다. (이 기능을 활성화 시키면 컴퓨터가 꺼져있는 동안에도 네트웍 카드는 켜져 있어야 하기 때문에 약간의 전력을 소모하게 된다. 이 기능이 필요하지 않으면 꺼 놓는것이 좋다.)

맥에서는 이 기능을 사용하려면 System Preferences의 Energy Saver에서 켜 주면 된다.

사용자 삽입 이미지


동작방법은 네트웍으로 켜 주려고 하는 컴퓨터에 매직 패킷(magic packet)을 보내주면 된다. 매직 패킷의 포맷은 아주 단순하다. 패킷 내 어느곳에건 0xFF가 연속으로 6번 오고 그 바로 뒤에 켜주려는 컴퓨터의 mac address가 연속으로 16번 오면 된다. 즉 해당 컴퓨터의 mac address가 01:23:45:67:89:0a라고 하면 패킷 내에 아래의 내용이 들어 있으면 된다.

ff ff ff ff ff ff 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a 01 23 45 67 89 0a

다음은 파이선으로 작성한 매직패킷을 보내주는 프로그램의 예이다. (컴퓨터의 mac address는 01:23:45:67:89:0a 이고 이 프로그램을 실행할 컴퓨터(A)/켜 줄 컴퓨터(C) 모두 192.168.1 네트웍에 있는 경우...이 부분을 각자의 컴퓨터에 맞게 고쳐주면 된다.)

#!/usr/bin/env python
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto('\xff'*6+'\x01\x23\x45\x67\x89\x0a'*16, ('192.168.1.255', 80))
같은 서브넷에 있는 컴퓨터에 매직 패킷을 보내는 가장 쉬운 방법은 broadcast를 사용하는 것이다. 포트 번호는 아무거나 사용해도 관계 없다. 다른 네트웍에 있는 컴퓨터도 매직패킷을 보내면 원격으로 켜 줄 수 있지만 요새는 대부분의 라우터/파이어월이 "subnet directed broadcast"를 막아놓고 있기 때문에 이 기능을 사용하려면 라우터/파이어월의 "subnet directed broadcast" 기능을 활성화 시키고 WoL에 사용할 포트를 열어줘야 한다. (이 경우도 아무 포트나 사용해도 관계 없다. 다만 외부에서 매직패킷을 보낼 때 열어준 포트를 사용하면 된다.)

맥 OS X에서 사용할 수 있는 GUI 소프트웨어는 여기서 다운받을 수 있다. (어플리케이션 뿐 아니고 Dashboard widget까지 포함되어 있다.)

사용자 삽입 이미지


윈도우에서 사용할 수 있는 GUI 소프트웨어는 여기서 다운받을 수 있다.

사용자 삽입 이미지

댓글 없음:

댓글 쓰기