Документация Calculate Linux

Вид материалаДокументы

Содержание


Требование к ведомому компьютеру
Требование к ведущему компьютеру
Принцип работы
Подобный материал:
1   ...   128   129   130   131   132   133   134   135   136

Требование к ведомому компьютеру

  • ATX источник питания, материнская плата с поддержкой Wake-On-Lan
  • сетевой адаптер с поддержкой Wake-On-Lan
  • известный MAC-адрес сетевого адаптера

Требование к ведущему компьютеру

  • специальная программа, умеющая отсылать Magic Packet

Принцип работы


Ведомый компьютер находится в дежурном режиме (stand by) и выдает питание на сетевой адаптер. Сетевой адаптер находится в режиме пониженного энергопотребления, просматривая все пакеты, приходящие на его MAC-адрес, но ничего не отвечая на них. Если один из них окажется Magic Packet, то сетевой адаптер выдаёт сигнал на включение питания компьютера.

Реализация


Включаем поддержку WoL в BIOS на ведомом компьютере. Это может быть одноименный пункт наподобие Wake On Lan Enable, либо Power On By PCIE и т.д., может также быть, что этот режим в BIOS не меняется, а материнская плата поддерживает его по умолчанию.
Чтобы определить, поддерживает ли сетевая карта WoL, - загружаем ведомый компьютер набираем в консоли

ethtool eth0


Получаем результат:

Settings for eth0:

Supported ports: [ MII ]

Supported link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Supports auto-negotiation: Yes

Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Advertised auto-negotiation: Yes

Speed: 1000Mb/s

Duplex: Full

Port: MII

PHYAD: 1

Transceiver: external

Auto-negotiation: on

Supports Wake-on: g

Wake-on: d

Link detected: yes


Нас интересуют строчка Supports Wake-on и Wake-on. Первая показывает доступные режимы сетевого адаптера на пробуждение (g - как раз пробуждение по Magic Pocket), а вторая - текущий режим (d означает выключенный WoL).

Для того, чтобы перевести сетевую карту в режим WoL, используется команда

ethtool -s eth0 wol g


Для выключения режима WoL

ethtool -s eth0 wol d


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

Добавляем в /etc/conf.d/net следующие строки - они будут включать режим WoL на всех сетевых адаптерах, которые его поддерживают:

preup() {

if ethtool $1 | grep "Supports Wake-on:" | grep g >/dev/null;

then

ethtool -s $1 wol g

fi

}


Для получение MAC-адреса сетевого адаптера на ведомом компьютере можно
  • выполнить команду на ведомом компьютере

ifconfig -a

eth0 Link encap:Ethernet HWaddr 01:02:03:04:05:06

inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::215:f2ff:fe6f:3487/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:71495 errors:0 dropped:0 overruns:0 frame:0

TX packets:76190 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:23164212 (22.0 MiB) TX bytes:7625016 (7.2 MiB)

Interrupt:217 Base address:0xd400
  • выполнить команду на ведущем компьютере, которая отобразит ARP-кэш

arp


Address HWtype HWaddress Flags Mask Iface

10.0.0.1 ether 00:01:02:03:04:05 C eth0

10.0.0.2 ether 06:07:08:09:0a:0b C eth0

10.0.0.3 ether 0c:0d:0e:0f:10:11 C eth0
  • для того, чтобы все компьютеры сети попали в кэш, можно воспользоваться утилитой nmap, которая пропингует компьютеры в сети и их MAC-адреса попадут в кэш

nmap -v -Sp 10.0.0.0/24


Для пробужения компьютера используем утилиту wol на ведущем компьютере

wol MAC-адрес

При работе с программами следует учитывать, что не все компьютеры включаются сразу после подключения в электрическую сеть. Это связано с отсутствием процесса инициализации подачи питания на сетевую карту (компьютер еще не включался и не знает, какие устройства следует питать чтобы получать специальные сигналы, среди которых будет магический пакет). Поэтому следует произвести одно предварительное включение вручную. Если существует необходимость избавиться от данной проблемы (например, сервер закрывается на ключ или находится очень далеко), следует установить в BIOS параметр питания Wake After Power Fail в значение ON.


9. Руководства