WOL - Wake On Lan через интернет

2

Моя проблема стала довольно специфичной, но, вероятно, довольно легко решаемой. Я следовал многочисленным руководствам в Интернете, чтобы настроить wake on lan, и мне удалось заставить его работать довольно хорошо, хотя у меня все еще есть одна проблема.

Я могу разбудить свой компьютер через локальную сеть и даже через 3G, но когда я отправляю через 3G, я могу отправить только через минуту или две после выключения компьютера (может быть, дольше), но если это занимает гораздо больше времени, чем мой компьютер не загружается

В руководствах упоминалось, что маршрутизатор забыл мой MAC-адрес через некоторое время, но если это проблема, то должен ли он работать в частной сети? И как мне решить эту проблему?

Я установил DD-WRT на мой маршрутизатор DIR-615. Компьютер, который я хочу разбудить, работает под управлением Windows 7 Ultimate.

Йоаким Энгстрем
источник
В частной сети не имеет значения, запоминает ли маршрутизатор ваш MAC-адрес, поскольку он просто перенаправляет его на все порты в сети.
Мэтью Стиплс

Ответы:

7

WoL работает путем отправки специально отформатированного пакета Ethernet на MAC-адрес вашего компьютера. Если вы находитесь в локальной сети (LAN), вы можете напрямую общаться с MAC-адресом вашего компьютера, и WoL работает все время довольно счастливо.

Из любой точки локальной сети вы полагаетесь на IP-маршрутизацию для пересылки пакетов, инкапсулированных в IP, по сети, чтобы добраться до вашего компьютера. Эта пересылка зависит от ARP (Address Resolution Protocol) на последнем переходе (ваш маршрутизатор к вашему компьютеру).

Ваш маршрутизатор ведет учет того, какие IP-адреса сопоставлены с какими MAC-адресами - таблицей ARP, - которые периодически удаляют устаревшие записи.

При нормальной работе сети маршрутизатор сначала отправляет пакет ARP WHOHAS всем компьютерам в сети (MAC-адрес ff: ff: ff: ff: ff: ff), запрашивая компьютер, на котором указан IP-адрес, указанный в пакете, чтобы ответить Пакет ARP HAS заявляет, что у него есть IP-адрес. Это кэшируется в таблице ARP в течение определенного периода времени.

Если компьютер переключен (или находится в спящем режиме), сетевой стек больше не может отвечать ни на что, поэтому запрос ARP WHOHAS никогда не выполняется - поэтому маршрутизатор не может определить, куда отправлять пакет, и, следовательно, WoL не работает.

Есть 2 возможных пути решения этой проблемы:

  • Настройте статическую запись ARP на маршрутизаторе

Это, безусловно, самое простое, если у маршрутизатора есть возможность постоянного сохранения сопоставления MAC-> IP. Это избавит ARP от необходимости определять MAC-адрес вашего компьютера.

  • Есть другое сетевое устройство в локальной сети, которое никогда не спит и способно выполнить WoL для вас.

Кажется, на самом деле победить объект, но это может быть единственный способ сделать удаленный WoL.

Majenko
источник
Спасибо за действительно хороший ответ, и я получил некоторую действительно хорошую информацию о том, как все это работает, и после прочтения вики DD-WRT на WOL он фактически говорит о добавлении статических ARP: s к маршрутизатору, он предлагает записать эти команды в Маршрутизатор:
Йоаким Энгстрем
изменение ip lie 192.168.1.254 lladdr ff: ff: ff: ff: ff: ff nud перманентный dev br0 ip lie add 192.168.1.254 lladdr ff: ff: ff: ff: ff: ff: ff nud перманентный dev br0 Я предполагаю, что Выбранный IP является случайным и не имеет значения, если он не назначен ни для чего? Но я все еще немного не уверен в том, какой mac-адрес мне следует написать вместо ff.ff ... Пост вики можно найти здесь: dd-wrt.com/wiki/index.php/WOL
Йоаким Энгстром
Следует подчеркнуть, что необходимо использовать MAC-адрес для ff: ff: ff: ff: ff: ff (широковещательный адрес), поскольку в противном случае трафик не будет распространяться по всем портам коммутатора в сети. то есть используйте ff: ff: ff: ff: ff: ff, чтобы коммутатору было все равно, к какому порту подключен компьютер. Обратите внимание, что это отправит пакет WoL на все компьютеры в сети - разбудив их всех .
Majenko
Еще один глупый вопрос, когда вы говорите «MAC-адрес для ff: ff: ff: ff: ff: ff (широковещательный адрес)», это то, что mac-адрес маршрутизатора, компьютер, который я хочу разбудить, устройство, отправляющее WOL. Или это должно быть просто ff: ff: ff: ff: ff: ff? для его отправки через все порты Ethernet?
Йоаким Энгстрем
Это должно быть просто ff: ff: ff: ff: ff: ff
Majenko