Включение 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
Перевод и листинги команд мои.

разметка диска freebsd

0
Голосов пока нет