Wake-on-LAN 신호가 대상 컴퓨터에 도달하지 않습니다.

Wake-on-LAN 신호가 대상 컴퓨터에 도달하지 않습니다.

방화벽 뒤에 있는 대상 컴퓨터의 절전 모드 해제를 실행하고 싶습니다. 해당 신호는 포트 9/udp로 전송되는 매직 패킷입니다.

내 신호는 라우터를 통해 두 개의 이더넷 인터페이스가 있는 Debian 서버로 전달됩니다. 이것은 "/etc/network/interfaces" 파일입니다:

iface eth0 inet static (-->router)
  address 192.168.0.10
  netmask 255.255.255.0
  broadcast 192.168.0.255
  network 192.168.0.0
  gateway 192.168.0.1

iface eth1 inet static (-->local lan)
  address 192.168.1.10
  netmask 255.255.255.0
  broadcast 192.168.1.255
  network 192.168.1.0</span>

이것은 "route -n" 명령의 결과입니다.

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

마지막으로 iptables로 dnat를 만드는 규칙은 다음과 같습니다.

iptables -A INPUT -p udp --dport 9 -i $RUTER_IFACE -j ACCEPT
iptables -A OUTPUT -p udp --sport 9 -d $LAN_NET -j ACCEPT
iptables -t nat -A PREROUTING -i $RUTER_IFACE -p udp --dport 9 -j DNAT --to $TARGET
iptables -A FORWARD -p udp --dport 9 -i $RUTER_IFACE -o $LAN_IFACE -j ACCEPT

글쎄, 트래픽을 확인한 결과 매직 패킷이 eth0 인터페이스에 도착했음을 발견했습니다. 또는 $TARGET 값이 IP 주소(예: 192.168.1.65)인 경우 패킷은 eth0에서 eth1로 이동하여 대상 컴퓨터(192.168.1.65)에 도달합니다. 그러나 $TARGET 값이 IP 범위(예: 192.168.1.50-192.168.1.70)인 경우 패킷은 eth0에서 eth1로 전송되지 않으며 대상 컴퓨터에 도달하지 않습니다.

매직 패킷은 IP가 아닌 MAC 주소로 전송되기 때문에 IP 범위(하나의 IP 주소가 아님)를 입력해야 합니다. 또한 로컬 LAN의 컴퓨터에는 고정 IP가 없습니다. dnsmasq 데몬(Debian 서버)은 로컬 컴퓨터에 IP를 임대합니다.

글쎄, 문제는 데비안 서버의 라우팅에 있다고 생각합니다. 하지만 사실은 어떻게 고칠 수 있을지 모르겠습니다. 귀하의 도움에 감사드립니다.

내 영어가 좋지 않아서 미안해요. 매우 감사합니다.

답변1

당신이 달성하려는 것은 "서브넷 지향 브로드캐스트"라고 생각합니다. 여기서 Wake on LAN 패킷은 라우터 뒤에서 실행되는 모든 장치로 전달되고 WoL 패킷의 정보가 일치하면 장치가 깨어납니다.

첫째: 서버/라우터 자체가 WoL(라인 1)으로 깨어나고 WoL 패킷(라인 2)을 전송해야 한다면 처음 두 개의 iptables 라인만 필요합니다. 라우터 뒤에 있는 호스트로 "외부" WoL 패킷을 전송하려는 경우에는 이 두 줄이 필요하지 않습니다.

둘째: WoL 패킷은 네트워크의 모든 컴퓨터에 패킷을 브로드캐스트하는 "브로드캐스트 주소"로 전달되어야 합니다. 그러므로 $TARGET로 설정해야 합니다 192.168.1.255.

또한 IPv4 전달을 활성화해야 합니다.

마지막 iptables 명령은 FORWARD 체인에 이러한 패킷을 삭제하는 규칙이나 "DROP" 정책이 있는 경우에만 필요합니다.

관련 정보