1

Я хочу перевести свою систему NAS Debian в режим supend to RAM (ACPI S3) после приличного периода простоя, чтобы сэкономить энергию. Я думал о переводе сетевого адаптера в режим, в котором он ожидает одноадресных SMB-пакетов, а затем проснулся. Это было бы весьма полезно, например, когда телевизор хочет транслировать некоторый контент с NAS. Возможно, это было бы возможно с чем-то вроде ethtool -s eth0 wol p где phy равняется какому-нибудь одноадресному пакету SMB.

Возможно ли что-то подобное? Думаю, это не должно быть так сложно, но, возможно, я ошибаюсь.

2 ответа2

2

Да, это возможно, нужно сделать следующее:

aptitude install pm-utils
cd /usr/lib/pm-utils/sleep.d/
touch 70wol

Поместите следующее в 70wol

#!/bin/bash
ethtool -s eth0 wol pug

Вернитесь в свою оболочку и сделайте скрипт исполняемым:

chmod +x 70wol

Теперь сделайте приостановку ACPI S3:

pm-suspend

Теперь вы сможете разбудить систему с пакетом ICMP, SSH, SMB и т.д.

Не забывайте тот факт, что Windows и Linux имеют тайм-аут ARP-кэша 30 секунд. Так после

pm-suspend

другие машины в сети имеют только около 30 секунд, чтобы разбудить систему, потому что после этого периода у них больше нет MAC-адреса, чтобы отправлять пакеты в целевую систему.

Вы можете исправить это с помощью статических ARP-адресов. В каждой системе, в которой вы хотите включить систему NAS, выполните следующие действия в Windows.

arp -s 10.0.0.200 00-10-54-CA-E1-40

и следующее на Linux

arp -s 10.0.0.200 00:10:54:CA:E1:40

Довольно аккуратная настройка, если у вас есть домашний сервер NAS, который не должен работать круглосуточно. Теперь можно написать сценарий оболочки как cronjob и приостановить работу сервера NAS после, скажем, 5 минут бездействия.

Я сделал это на тестировании Debian с ядром 3.12 и последними драйверами Intel e1000e для моей сетевой платы Intel I217-V.

1

Это возможно, и Windows по умолчанию использует функцию сетевой настройки по умолчанию:

Один вид специальных пакетов данных содержит шаблон пробуждения. По умолчанию Windows 7 и Windows Vista при включении WOL прослушивают следующие пакеты:

  • Направленный пакет на MAC-адрес сетевого адаптера
  • Передача разрешения имени NetBIOS для имени локального компьютера
  • Пакет протокола разрешения адресов (ARP) для IPv4-адреса сетевого адаптера
  • Пакет обнаружения соседей IPv6 для многоадресного адреса запрашиваемого узла сетевого адаптера

http://support.microsoft.com/kb/941145

Однако обратите внимание, что в его списке нет одноадресных SMB-пакетов. Зачем? Поскольку пакеты SMB не отправляются до тех пор, пока не будет установлено TCP-соединение, и до того, как это произойдет, клиент должен узнать аппаратный адрес сервера - используя ARP для IPv4 или Neighbor Discovery для IPv6. (Разрешение имен с использованием NetBIOS также есть в списке, но LLMNR по какой-то причине нет.) Таким образом, вам нужно будет создать очень похожий список фильтров - как минимум, содержащий ARP и Neighbor Discovery.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .