Включение Wake-on-LAN на FreeBSD
Wake-On-LAN также известный как WOL, является возможностью включения компьютера, подключенного к сети (локальной или глобальной) с помощью специального сообщения сеть под названием "магический" пакет (magic packet). Этот "магический" пакет содержит MAC-адрес заданного компьютера. Если конечный компьютер имеет сетевую карту с поддержкой WOL, то система просыпается.
В данной статье я опишу как включить машину на FreeBSD, c активированным Wake-on-LAN, с другого компьютера
Для простоты разобьем процедуру на несколько шагов:
1. Включаем WOL в BIOS
2. Проверяем поддержку WOL для драйвера сетевой карты
3. Собираем информацию о сетевом интерфейсе
4. Пробуждаем компьютер из локальной сети
5. Пробуждаем компьютер из интернета
1. Включаем WOL в BIOS
В наши дни почти все интегрированные и неинтегрированные сетевые адаптеры поддерживают Wake-On-LAN, однако чаще всего необходимо включить его в BIOS. Вариантов BIOS очень много, но типичные варианты это: "Enable Wake-on-LAN", "Enable Wake on PCI" и "Enable Power of PCIE Devices".
2. Проверяем поддержку WOL для драйвера сетевой карты
С каждым релизом FreeBSD все больше и больше драйверов сетевых карт получают поддержку Wake-on-LAN.
Для проверки списка драйверов с поддержкой WOL в вашей версии FreeBSD (в моем случае 9.0-RELEASE) выполним:
$ grep -l IFCAP_WOL /usr/src/sys/dev/*/*.c /usr/src/sys/dev/ae/if_ae.c /usr/src/sys/dev/age/if_age.c /usr/src/sys/dev/alc/if_alc.c /usr/src/sys/dev/ale/if_ale.c /usr/src/sys/dev/e1000/if_em.c /usr/src/sys/dev/e1000/if_lem.c /usr/src/sys/dev/fxp/if_fxp.c /usr/src/sys/dev/jme/if_jme.c /usr/src/sys/dev/nfe/if_nfe.c /usr/src/sys/dev/nge/if_nge.c /usr/src/sys/dev/re/if_re.c /usr/src/sys/dev/sis/if_sis.c /usr/src/sys/dev/ste/if_ste.c /usr/src/sys/dev/stge/if_stge.c /usr/src/sys/dev/txp/if_txp.c /usr/src/sys/dev/vge/if_vge.c /usr/src/sys/dev/vr/if_vr.c /usr/src/sys/dev/xl/if_xl.c
Сравним список драйверов с поддержкой WOL с драйвером нашего сетевого адаптера:
$ ifconfig -m em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM> capabilities=1009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER> ether 08:00:27:be:b5:13 inet 192.168.1.15 netmask 0xffffff00 broadcast 192.168.1.255 inet6 fe80::a00:27ff:febe:b513%em0 prefixlen 64 scopeid 0x1 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active supported media: media autoselect media 1000baseT media 1000baseT mediaopt full-duplex media 100baseTX mediaopt full-duplex media 100baseTX media 10baseT/UTP mediaopt full-duplex media 10baseT/UTP lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> capabilities=3<RXCSUM,TXCSUM> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet 127.0.0.1 netmask 0xff000000 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Анализируя вывод ifconfig можно отметить, что я имею драйвер сетевого интерфеса em0. Кроме того, карта em0 не только поддерживает WOL, но также готова к его использованию
FreeBSD Очень хорошо документирована и такая поддержка как WOL может быть проверена на man-странице em(4).
3. Собираем информацию о сетевом интерфейсе
Из вывода комнады ifconfig -m мы можем записать MAC-адрес для em0
>ifconfig -m | grep ether ether 08:00:27:be:b5:13
4. Пробуждаем компьютер из локальной сети
Для пробуждения нужного нам компьютера, с компьютера, который будет использоваться для отсылки "магического" WOL пакета, необходимо инсталировать порт net/wakeonlan и запустить:
# cd /usr/ports/net/wakeonlan # make install clean # rehash # wakeonlan -i 192.168.1.255 08:00:27:be:b5:13 Sending magic packet to 192.168.1.255 :9 with 08:00:27:be:b5:13
Замените 192.168.1.255 на бродкаст-адрес (широковещательный адрес) из Вашей сети. 192.168.1.255 это широковещательный адрес для подсети 192.168.1.х, что справедливо для моей локальной сети и 08:00:27:be:b5:13 MAC адрес компьютера, который необходимо разбудить.
Следует отметить, что net/wakeonlan и подобные приложения доступны во всех Unix-подобных оперционных системах
5. Пробуждаем компьютер из интернета
Это предполагает включения проброса 9 UDP порта с Вашего фаервола/роутера на пробуждаемый компьютер. Чтобы воспользоваться всеми преимуществами WOL необходимо настроить сервис dynamic DNS.
Далее, для выполнения команды пробуждения вы можете использовать веб-сайты, такие как wakeonlan.me , приложения для Андрод (Wake on Lan) или любые другие Wake-on-LAN приложения (каждая Unix-подобная система имеет альтернативные варианты). Только убедитесь, что используемый динамический DNS предоставляет адрес и MAC-адрес конечного (пробуждаемого)компьютера.
Источник: linux-bsd-sharing.blogspot.co.uk
Перевод и листинги команд мои.