No liemos capas
@kajoona La parte de switch no usa ni necesita arp. De hecho no puede hacerlo. Entiendo que te quieres referir a la interfaz de capa 3 de LAN del router, ya que un switch por definición es capa 2 y, por lo tanto, para él las IPs no existen.
Aparte de esto, en la misma LAN le funciona porque ahí todo el camino del Magic Packet de WoL es capa 2. Por lo que insisto, en esa capa arp no interviene, da igual que haya caducado en la tabla del router. En la misma LAN, el Magic Packet tiene una difusión Broadcast a la Mac FF:FF:FF:FF:FF:FF, y un campo con la Mac del equipo a despertar repetida 16 veces ( más un opcional de password que dejamos fuera porque no va a estar utilizando).
El Wake on LAN ni usa ni necesita UDP, ni puerto 9, ni nada de capa OSI 3 o superiores. De verdad creedme que es así, y olvidaros del arp y demás protocolos de capa superior cuando hablamos del funcionamiento en la misma LAN.
Entonces, me diréis, ¿Por qué el consenso en internet es que para usar WoL hay que hacer NAT a UDP puerto 7 ó 9? Pues es una de las maneras, pero no es que haya que hacerlo. Lo que hay que conseguir es que llegue una trama ethernet al equipo en cuestión y con el contenido en cuestión. Y eso, desde fuera de la LAN, solo podemos hacerlo usando protocolos de capa superior, nos tenemos que meter en IP (capa 3) y puertos (capa 4)
TCP descartado, porque va a necesitar, antes de enviar ningún dato de aplicación con el contenido que queremos, que se haga la negociación de three-way handshake, los famosos SYN-SYNACK-ACK del TCP (y de casi cualquier inicio de protocolo confiable basado en sesión). Como nuestro equipo está apagado y no levanta la pila IP, solo la capa 2, no podríamos hacer el three-way handshake previo, así que no lo podemos usar para esto
Nos quedamos con UDP. ¿En qué puerto? Pues realmente NOS DA IGUAL. Solo queremos que la trama de capa 2 llegue al PC en cuestión, las capas superiores las vamos a usar para cruzar el router, por lo que el puerto (e incluso la IP) que haya en los campos de destino nos van a dar igual, mientras el contenido de la trama ethernet y el datagrama del Magic Packet, es decir la capa 2, llegue como queremos al PC apagado.
¿Qué son entonces los puertos 7 y 9? Pues el 7 es un puerto de "echo", simplemente de verificación de que un equipo está vivo, y el 9 un puerto de descarte, cuando una máquina recibe un paquete por ese puerto, lo descarta sin responder nada. Se usan para esto porque por un lado no sé suelen usar para otra cosa, y por otro, son implementaciones tan antiguas que es casi impensable que algo no admita su uso.
Una vez aclarado esto, volvemos al escenario original, en el que todo esto falla desde internet porque el router, para componer la trama capa 2, si el paquete viene desde fuera, sí que lo va a hacer utilizando la tabla ARP, a él le dicen que envía un unicast UDP a una IP y tiene que saber qué MAC le corresponde para construir la trama. Y no puede hacerlo porque el equipo apagado desaparece de la tablet arp en 20 segundos de inactividad (u otro plazo según la implementación de arp en el sistema. En todo caso, como mucho 2 minutos)