У меня есть сервер Linux (Ubuntu 12.04.03), который служит интернет-шлюзом для нашей локальной сети из примерно 15 компьютеров. То есть eth0 на сервере Linux - это Интернет, а eth1 подключается к неуправляемому коммутатору (простой 16-портовый коммутатор Linksys (EZXS16W)). Все ПК локальной сети подключаются к этому коммутатору. Сервер Linux управляет деталями DHCP и интернет-шлюзами /NAT-маршрутизацией.
Я пытаюсь заставить Wake-On-LAN (WOL) работать на одном из ПК с локальной сетью (под управлением Windows 7), чтобы сервер Linux мог его запустить. Я успешно настроил сетевые драйверы BIOS и Windows, так что WOL будет работать некоторое время. То есть я выключаю ПК, иду на сервер Linux и отправляю волшебный пакет.
> wakeonlan -i 10.8.8.11 '6C:62:6D:EF:86:2E'
Это работает ПК сразу запускается, и все хорошо.
Однако если я выключу компьютер, уйду и приду через несколько часов и снова попытаюсь выполнить команду "wakeonlan", ничего не произойдет. ПК не включается.
Итак, я решил, что проблема должна быть в таблицах ARP. Это казалось многообещающим, потому что сервер Linux действительно "забыл" о ПК с Windows.
> arp -a -n
? (10.8.8.3) at 00:21:9b:01:ab:0c [ether] on eth1
? (10.8.8.247) at 00:80:77:d9:70:1e [ether] on eth1
? (70.60.233.185) at 90:6e:bb:f0:c4:82 [ether] on eth0
Поэтому я решил добавить постоянную запись ARP:
> arp -i eth1 -s 10.8.8.11 '6C:62:6D:EF:86:2E'
> arp -a -n
? (10.8.8.3) at 00:21:9b:01:ab:0c [ether] on eth1
? (10.8.8.11) at 6c:62:6d:ef:86:2e [ether] PERM on eth1
? (10.8.8.247) at 00:80:77:d9:70:1e [ether] on eth1
? (70.60.233.185) at 90:6e:bb:f0:c4:82 [ether] on eth0
Однако это не помогло. Запуск команды "wakeonlan" не запустил ПК. Я также не пытался использовать широковещательный адрес или другую программу:
> wakeonlan 6C:62:6D:EF:86:2E
> etherwake -i eth1 6C:62:6D:EF:86:2E
> etherwake -b -i eth1 6C:62:6D:EF:86:2E
Итак, у меня есть пара вопросов.
1) Что я делаю не так? :-)
2) Существует ли такая вещь, как таблица / кэш ARP на неуправляемом коммутаторе? То есть, несмотря на то, что я добавил постоянную запись ARP на сервере Linux, возможно ли, что Linksys EZXS16W утратил знание, какой порт следует использовать для связи с 6C:62:6D:EF:86:2E?
Спасибо всем, кто может помочь!