설명은 부정확할 가능성이 높다.
우리 집은 LG U+ 기기를 사용하고,
공유기(NAT) -> 공유기(브릿지) -> 컴퓨터 & 라즈베리파이
이렇게 되어있다.
NAT의 공인 아이피를 편의상 1.2.3.4 라고 하겠다.
WOL 은 UDP 이고 9번 포트를 사용한다.
컴퓨터가 WOL 패킷을 네트워크 카드를 통해 받으면 켜지는 원리이다.
컴퓨터가 셧다운되고 WOL 패킷을 감지하고 켜지도록 하려면 네트워크 카드, 컴퓨터, BIOS 설정을 여러가지 해야한다.
내 컴퓨터의 사설 아이피가 192.168.219.123 이라고 하면, 포트포워딩으로 1.2.3.4:9 -> 192.168.219.123:9 로 보내주었다.
Wireshark를 통해 패킷을 감지할 수 있어서 성공한 줄 알았다. 컴퓨터를 끄고 난 뒤 WOL패킷을 보내면 잘 켜진다.
문제는 일정 시간이 지나면 동작하지 않는다.
공유기의 ARP Cache 문제라고 한다.
공유기에 직접 들어가서 ARP Cache를 어떻게 하고 싶었지만 관련 설정이 없어서 다른 방법을 모색했다.
DHCP 고정 아이피도 설정해보고, WOL을 브로드캐스트 해야한다 해서 포트포워딩도 192.168.219.255로 하려했으나 이건 설정조차 안된다.
컴퓨터 앞단에 브릿지가 있어서 그런가 포트포워딩을 192.168.219.브릿지 로 하니 내부망에서 패킷을 던지면 감지가 됐?지만 외부망에서는 안들어왔다.
결국에 깔끔한 방법은 포기하고 집에서 먼지 쌓이는 라즈베리파이를 이용하기로 했다.
라즈베리파이는 외부에서 ssh가 가능하고, 내부망에 존재하므로 확정적으로 WOL 패킷이 전달될 것이다.
apt install wakeonlan
wakeonlan (MAC adr)
잘 동작한다.
2주는 삽질한거 같은데 다행이다.