2014-05-24

OpenWrt에서 WOL 삽질기

집에서 사용하는 공유기에 OpenWrt를 설치해서 사용하고 있습니다. 안정적이고 속도도 빠른 편이라서 만족하며 사용하고 있습니다. 예전에는 SSH를 통해 접속한 후 여러가지 설정을 변경하는 작업을 했지만, 얼마전부터 WebUI인 LuCI가 제공하면서 접근성이 상당히 개선됐다고 합니다. 실제로 사용하는 동안 SSH를 통한 접근은 몇차례 안해봤습니다. 사실 OpenWrt가 제공하는 확장성을 충분히 누리기 위해서는 SSH접속이 필요하지만 저같은 사람에게는 먼 나라의 이야기입니다.

외부에서 집에 있는 컴퓨터를 켜기 위해서 시작한 일이었고 단순히 포트포워딩으로 끝날 문제로 생각했지만, 아니었습니다. Network-Firewall-Port Forwards에서 해당 항목을 설정해 봤습니다.

사실 감추지 않아도 되는 정보이긴 하지만, 뭔가 있어 보이고 싶어서.........

WOL은 UDP 방식 9번 포트를 사용한다고 합니다. ( http://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet ) 이후에 컴퓨터를 끄고 안드로이드 앱을 이용해서 시도해보니 잘 켜집니다. 쉽게 성공했다고 즐거워하고 있었습니다.

한참 지나서 컴퓨터를 켜보니 안켜집니다. 뭔가 문제가 있는 것 같습니다. 또다시 인터넷 검색을 시작했습니다. 그리고 이런 글( http://peepleware.com/xe/forumk/faqk/5470 )을 찾을 수 있었습니다. 외부 네트워크를 거치는 경우에 일반적인 공유기에서는 힘들다고 합니다. WAN을 통해서 WOL신호를 대상 컴퓨터에 보내려면 공유기의 지원이 필요하다고 합니다. 아무리 찾아봐도 LuCI에 해당 메뉴는 없고, 이리저리 인터넷 검색을 해보니 대충 3가지 방법이 가능한 것 같습니다.

1. 공유기에 'etherwake'와 'luci-app-wol'를 설치하고, 외부에서 SSH나 LuCI접속이 가능하도록 설정한 후 공유기에 접속해서 신호를 보낸다.
2. 공유기를 VPN서버로 사용한다.
3. 고정 ARP 엔트리를 추가한다.

처음에는 1번 항목을 시도했습니다. 크게 어려운 점은 없었지만 뭔가 불편합니다. 목표는 휴대폰을 통해서 집 밖에서 쉽게 컴퓨터를 켜는 것이었기 때문입니다. 다음으로 2번 항목을 시도해 봤습니다.

http://wiki.openwrt.org/doc/howto/vpn.overview

뭔말이야! 어찌어찌 영어라는 엄청난 장벽을 넘는다고 하더라도 뭔 말인지 모르겠습니다. 설정이라도 간편하게 WebUI를 통해서 가능하면 좋겠는데 SSH를 사용해야 한다고 합니다. 잠깐 삽질하던 도중 세번째 방법을 발견했습니다!

http://mtamsky.blogspot.kr/2011/11/openwrt-and-wake-on-lan-wol-how-to-make.html

그러나 컴퓨터가 꺼지고 잠시 후 시도해보니 안됩니다. 그리고 또 삽질과 인터넷 검색... 그리고 이 문서를 찾았습니다.

http://www.dd-wrt.com/wiki/index.php/WOL

그리고 이부분

Do not change the FF:FF:FF:FF:FF:FF MAC address; this is a special MAC address used when broadcasting.
The 192.168.1.254 IP address should correspond with the IP address you used in the previous step. Again, this IP should be in your LAN's subnet, and you must not assign this IP address to any actual device on your network.

이 중요한 부분이었습니다. 그리고 시도해보니 잘 됩니다. 이것을 시도한다고 한참을 삽질을 계속했습니다. 구구절절 방법을 설명하려고 했지만, 이 문서( https://nowhere.dk/articles/wake-on-wan-using-openwrt-12-09 )가 깔끔하게 정리를 잘 해놨네요.

위 문서에서 주의할 점은

"ip neigh add 192.168.1.254 lladdr ff:ff:ff:ff:ff:ff nud permanent dev br-la" 이 아니라
"ip neigh add 192.168.1.254 lladdr ff:ff:ff:ff:ff:ff nud permanent dev br-lan" 입니다.
(끝 부분의 "n"이 빠졌습니다.)

댓글 없음: