Pobudka na odległość, czyli Wake on LAN w praktyce

Wpis archiwalny, oryginalnie pojawił się na blogu applesauce.pl

 

Nie tak dawno opisywałem na łamach applesauce swoje boje z klimatyzatorem. Jedną z kwestii, która mnie pozytywnie zaskoczyła, było to, że dzięki dedykowanej aplikacji oraz posiadaniu konta w serwisie producenta, mogę zdalnie urządzenie wyłączać – a co ważniejsze – również je włączać. Postanowiłem sprawdzić, jak wygląda sprawa uruchamiania, bądź wybudzania komputerów na odległość. I temu właśnie tematowi poświęcam niniejszy wpis.

Na samym początku zdradzę, że finalne efekty są dość zdywersyfikowane i zależą od wielu czynników, które nie omieszkam się opisać. Temat potraktowałem raczej ambicjonalnie, ponieważ jak dotąd udawało mi się funkcjonować bez takich udogodnień, ale jak wiadomo, apetyt rośnie w miarę konsumpcji, a z oczekiwaniami dotyczącymi wygody, jest identycznie.

Większość z Was, drodzy czytelnicy jeśli nie miała do czynienia, to słyszała pojęcie: WOL – Wake On LAN, czyli wybudzanie po sieci lokalnej. Oczywiście określenie to, używane jest obecnie także do opisania innych metod, ale po kolei. Załóżmy, że mamy komputer i chcemy go zdalnie obudzić, w takiej sytuacji pojawiają się następujące problemy do rozwiązania:

  • platforma: Mac / PC
  • sposób podłączenia do sieci: Ethernet / WiFi
  • dostęp do sieci, lokalnie lub z Internetu: LAN / WAN
  • stan komputera: uśpiony / wyłączony

Z powyższymi wiążą się kolejne komplikacje. Spędziłem kilka długich dni na testach i poszukiwaniach, a sprawę utrudniały dość często sprzeczne informacje, dostępne u wielu źródeł.

Całą tajemnicę budzenia na odległość, można uprościć do dwóch, koniecznych warunków:

  1. z urządzenia nadawczego (komputera/smartfona/tabletu/itp.) wysyłamy specjalnie spreparowane dane, zwane Magic Packet,
  2. odbiorca pakietu musi mieć aktywny interfejs sieciowy, bym móc ten magiczny pakiet przyjąć.

Rzecz jasna, „od kuchni” jest to znacznie bardziej skomplikowanie…

STAN KOMPUTERA

Niezależnie od tego, czy komputer jest uśpiony czy wyłączony, by zagwarantować odbiór magicznego pakietu, karta sieciowa komputera MUSI być zasilana. Wyłączony interfejs oznacza komputer odłączony od sieci.

Sytuacja I – Komputer uśpiony

Sprawdzamy odpowiednie preferencje systemowe. Dla OS X weryfikujemy, czy „zaptaszkowana” jest opcja Budź przy dostępie przez sieć, którą znajdziemy w kategorii Oszczędzanie energii.

 

 

Pod Windowsem natomiast, musimy sprawdzić właściwości karty sieciowej, w dwóch miejscach:

Zarządzanie energią (tu warto zaznaczyć wszystkie opcje, lub ew. pominąć pierwszą, związaną z oszczędzaniem energii)

 

 

Zaawansowane (tutaj warto dla każdej właściwości związanej z budzeniem, przełączyć wartość na Włączone)

 

 

Może się okazać, że mamy pecha i akurat nasz sprzęt nie posiada interfejsów sieciowych wspierających Wake On LAN… Kolejna sprawa to notebooki i laptopy – może się okazać, że aby wybudzić uśpiony taki komputer, musi być on podłączony do prądu, inaczej mówiąc zasilany z sieci energetycznej, a nie oczekujący na zasilaniu bateryjnym. Z drugiej strony, komputer przenośny częściej mamy pod ręką, zatem zapewne rzadziej zachodzi potrzeba zdalnego wybudzenia.

Sytuacja II – Komputer wyłączony

Tutaj niestety muszę zmartwić wszystkich użytkowników jabłuszek – na chwilę obecną nie ma możliwości zdalnego zastartowania wyłączonego Maczka. Trudno powiedzieć, co odpowiada za taki stan rzeczy, czy „Think Different”, czy wyjście z założenia, że macuserzy nie wyłączają swoich komputerów, tylko je usypiają? Nawet jeśli OS X jest stabilny jak skała, to jednak wyjeżdżając na dwutygodniowe wakacje, zostawiać go uśpionego (zwłaszcza, gdy brak UPSa) nie będziemy. A los bywa tak perfidny i dowcipny, że akurat w tym właśnie czasie możemy potrzebować dostępu do istotnych plików…

Tak czy inaczej, jedyne wyjście na to by Mac dał się obudzić (i dotyczy to zarówno budzenia w sieci lokalnej jak i przez Internet), to przełączyć w tryb sleep. W tym stanie podtrzymywana jest pamięć, karty sieciowe i inne niezbędne komponenty. Nie wiem, z jakim poborem mocy należy się w takiej sytuacji liczyć, będzie to zdecydowanie więcej niż gdyby komputer był wyłączony (no, nie całkowicie). Z drugiej strony możemy śmiało założyć, że z uwagi na przyjazność środowisku, produkty Apple, nie są aż tak łakomymi pożeraczami energii.

Z pecetem jest tu nieco lepiej, ale za pełen sukces odpowiada „szczęście egzemplarza”. To od możliwości płyty głównej oraz dostępnych ustawień w BIOSie/EFI zależy czy nasz komputer włączymy zdalnie czy nie. Pecet w moim domu, bazuje na starej już płycie głównej Asus P8P67LE, ze zintegrowanym Gigabit Ethernetem firmy Realtek (PCIe). W BIOSie, w trybie zaawansowanym, w menu Advanced i kategorii zwanej APM załączyłem „Power On By PCIE”. Tak po prawdzie, z lenistwa, to załączyłem prawie wszystkie dostępne tam opcje Power On.

Bardzo często przy złączu RJ-45, na tylnym panelu, znajduje się dioda sygnalizująca pracę karty sieciowej, jeśli się świeci przy wyłączonym komputerze, to oznacza, że ten interfejs jest podtrzymywany, a Magic Pocket powinien uruchomić urządzenie.

PODŁĄCZENIE DO SIECI

Według praktycznie wszystkich źródeł, komputer, który chcemy wybudzić zdalnie, powinien być podłączony do sieci po kablu. Informacje takie, znajdziemy również w appkach dla iPhone, które potrafią wysłać magiczny pakiet (opiszę je nieco dalej). Śmiem twierdzić, że nie jest to stuprocentowa prawda, i zależy to od konkretnego modelu komputera, płyty głównej, bezprzewodowej karty sieciowej, oraz systemowego wsparcia. Mój stacjonarny pecet nie posiada karty WiFi, ale sprawdziłem możliwość wybudzenia bezprzewodowego w służbowym laptopie (Asus K52JC), niestety próby zakończyły się całkowitym niepowodzeniem.

Okazuje się, że – dla odmiany – z komputerami Apple jest tu lepiej. Firma, jak ma w zwyczaju, wdrożyła własną implementację WOL zwaną WOD – Wake On Demand. Nie będę tu przepisywać specyfikacji, streszczę tylko wyjaśniając, że funkcja ta działa oczywiście tylko z uśpionymi komputerami, oraz wykorzystuje technologię Bonjour a dokładnie usługę Bonjour Sleep Proxy, oraz działa również z kartami bezprzewodowymi AirPort! Czy nasz komputer posiadający taką kartę WiFi obsługuje WOD, należy sprawdzić w aplikacji Informacje o systemie (dawniej Profil systemu).

 

 

O dziwo mój stary iMac wspiera Wake On Demand i przewodowo i bezprzewodowo.

BUDZENIE W SIECI LOKALNEJ

To przysłowiowa bułka z masłem, o ile nasze komputery spełniają wyżej opisane warunki. Potrzebujemy jedynie „prowodyra”, czyli urządzenia które wyśle Magic Packet. Ja oczywiście od samego początku myślałem o iPhone, urządzeniu, które mam praktycznie 99% czasu przy sobie, jako inicjatorze pobudki pozostałych gratów. W tym celu przeprowadziłem szybkie poszukiwania odpowiedniej aplikacji. App Store „wypluł” pokaźną listę, którą zgrubnie odfiltrowałem, zostawiając na polu bitwy tylko darmowe appki. Poniżej przedstawię dwie, moim zdaniem najlepsze.

NetAwake – program autorstwa Power of Two Software to, szybkie proste i estetyczne i estetyczne rozwiązanie WOL. Przewagą NetAwake nad innymi programami jest to, że wykorzystuje Bonjour, do wyszukiwania możliwych do wybudzenia maszyn w sieci.

 

 

Inaczej mówiąc, jesteśmy zwolnieni z odnajdywania i wpisywania fizycznych adresów interfejsów, tzw. adresów MAC, które to stanowią kluczową informację determinującą odbiorcę magicznego pakietu.

 

 

W przypadku innych platform trzeba ręcznie dodać wpis zawierający nazwę i MAC adres. Myślałem, że instalacja tego, rozwiąże sprawę, jednak NetAwake nie chce, z automatu, mojego peceta zobaczyć…

 

 

Chyba jedyną wadą NetAwake jest fakt, że nie ma możliwości podania adresu IP, co przy budzeniu z sieci zewnętrznej (WAN) jest elementem niezbędnym.

 

 

Ograniczenia tego, nie ma druga z polecanych przeze mnie appek.

Mocha WOL – to produkt MochaSoft znanego z wielu innych programów wspierających zabawy w sieci.

 

 

Nie jest może idealny, ale posiada wystarczające możliwości konfiguracyjne i jest również darmowy.

 

 

Pozwala również na zmianę domyślnego (9) portu usługi!

 

 

Gdy mamy już ściągniętą i zainstalowaną taką aplikację na iPhone, dodaliśmy komputery, są uśpione (lub wyłączone, w przypadku PC wspierającego Power On…), możemy śmiało rozpocząć pobudkę na odległość!

Uśpionego (nie wyłączonego!) peceta możemy też obudzić opisywaną wcześniej tu aplikacją PC Monitor Pulseway lub rewelacyjnym narzędziem do zdalnej pracy na komputerach – LogMeIn lub LMI Ignition.

BUDZENIE Z INTERNETU

To zdecydowanie najtrudniejsza w realizacji sprawa, właściwie to możliwa do osiągnięcia w bardzo specyficznych warunkach.

Na pierwszy rzut oka, wygląda na to, że jedynym problemem jest dostarczyć pakiet z sieci rozległej WAN do lokalnej LAN. Ale to zaledwie początek góry lodowej…

Po pierwsze musimy uświadomić sobie, że nasza sieć lokalna, jest widoczna w Internecie pod publicznym adresem IP, przypisywanym naszemu modemowi, przez dostawcę usługi (ISP). Problem w tym, że większość popularnych usług (Neostrada, Net24, itp.) przypisuje ten adres dynamicznie, czyli zmienia się on co jakiś czas, a zmiana ta może być inicjowana przez operatora, bądź wynikać np. z restartu modemu (po zmianie ustawień lub przerwie w zasilaniu). Gdy adres się zmieni, to go nie znamy, więc trudno z zewnątrz dostać się do swojej sieci.

Najlepszym rozwiązaniem jest posiadanie stałego publicznego (zewnętrznego) adresu IP. Niektórzy operatorzy (np. w sieciach kablowych) oferują taką możliwość za dodatkową opłatą, u innych wiąże się to ze zmianą „taryfy”, z indywidualnej na firmową.

Alternatywnym rozwiązaniem są serwisy DDNS, jak no-ip.com czy dyn.com które pozwalają na rejestrację domeny powiązanej ze zmiennym publicznym adresem naszej sieci. Niestety, aby móc aktualizować to przypisanie, musimy:

  • „poświęcić” jeden z komputerów w naszej sieci lokalnej, zainstalować na nim oprogramowanie klienckie, które po każdej zmianie adresu IP wyśle notyfikacje to naszego konta w serwisie DDNS, lub
  • posiadać router wspierający usługę Dynamic Domain Name System, a urządzenie włączone 24 godziny na dobę, samo będzie wysyłać aktualizacje do serwisu.

Niestety, Time Capsule nie wspiera DDNS w taki sposób, by możliwe było skorzystanie w wyżej wymienionych serwisów.

Próbowałem zgłębić temat iCloud i usługi Zdalnie na moim Macu (Back To My Mac), bo przecież tą drogą aktualizacje zmian adresu IP również się dokonują. Jednak, jak się okazało, Apple korzysta tu z protokołu i adresacji IPv6, co sprawę komplikuje na tyle, że się w końcu poddałem.

Gdy się uporamy ze zmiennym publicznym adresem IP, będziemy musieli się zmierzyć z kolejnym problemem – przekierowanie portu, na którym działa usługa WOL (domyślnie 9, ale często też wykorzystywany jest port o numerze 7). Znów, wygląda to trywialnie i właściwie w przypadku znakomitej większości routerów, to prosta sprawa. Sęk w tym, że przekierowanie powinniśmy ustawić na tzw. adres rozgłoszeniowy (ang. broadcast address) naszej sieci lokalnej! Dlaczego? Ano dlatego, że interfejsy sieciowe, nawet jeśli są podtrzymywane „przy życiu”, to gdy komputery są uśpione bądź wyłączone, nie mają przypisanych prywatnych adresów IP. Dlatego magiczny pakiet wysyłany musi być do wszystkich potencjalnych odbiorców, czyli po całej puli adresowej sieci lokalnej. Lecz tylko odbiorca, posiadający właściwy adres MAC, przesyłkę odbierze i zinterpretuje.

Tu pojawia się kolejna wada Time Capsule – nie pozwala na przekierowanie portu na adres rozgłoszeniowy (np. 192.168.1.255).

Próbowałem partyzantki, tj. ręcznej edycji pliku konfiguracyjnego TC, bez skutku. Utworzyłem podsieć, czyli ograniczyłem o połowę pulę DHCP, zmieniłem maskę podsieci na 255.255.255.128, tak by broadcast był pod adresem 192.168.1.127 – to również nie zadziałało.

Przeprowadziłem też zabawę z przypisywaniem adresów statycznych komputerom, i utworzyłem przekierowania portów dla tych konkretnych IP.

I… nawet to poskutkowało, ale tylko przez kilka minut po uśpieniu/wyłączeniu komputerów. Dokładnie trwało to tyle czasu, ile funkcjonowały wpisy w tablicy ARP routera. Wpisy tworzone są dynamicznie i przechowywane w pamięci podręcznej, oraz usuwane/odświeżane po upłynięciu tzw. czasu życia odwzorowania.

No to mamy trzecią już wadę Time Capsule – brak możliwości utworzenia statycznych odwzorowań w tablicy ARP.

No to by było chyba na tyle. Jeśli macie jakieś pytania, lub własne doświadczenia, podzielcie się nimi w komentarzach. Mam nadzieję, że to mini-kompendium, zebrane w jednym artykule, mimo że dotyczy konfiguracji mojego „parku maszynowego”, pomoże zainteresowanym, w rozwiązaniu podobnych problemów.

Ja, chcąc nie chcąc, muszę zakceptować niedoskonałości TC i zrezygnować z budzenia komputerów przez Internet. Bardziej mnie jednak irytuje fakt, że wciąż nie wiem, jak rozwiązali ten problem magicy z Samsunga…

___

AKTUALIZACJA 24.07.2014

W związku z kolejnymi pytaniami wróciłem do tematu WOL z Internetu. Nie mam co prawda możliwości sprzętowych, by zweryfikować swój pomysł, dlatego zostawiam tu pole do popisu czytelnikom. Wyżej opisane wymagania, wady i ograniczenia dotyczące przekazywania Magic Packetu z Internetu do sieci lokalnej naprowadziły mnie na rozwiązanie, które ma szanse powodzenia: VPN. Tak, chodzi o łączenie się zdalne z poziomu iPhone, iPada czy innego komputera do routera poprzez Wirtualną Sieć Prywatną. Dzięki temu nasze urządzenie będzie zachowywać się dokładnie tak jakby znajdowało się w sieci lokalnej.

Niestety Apple Time Capsule zadziała właściwie tylko gdy w sieci lokalnej mamy jakiś komputer włączony, z zainstalowanym i skonfigurowanym serwerem VPN, a chodzi przecież o to by można było budzić dowolny komputer bez konieczności pozostawiania jakiegokolwiek Maca czy PC uruchomionego. Wiele routerów pozwala na skonfigurowanie siebie jako punktu końcowego tunelowania. Większą szansę mają oczywiście modele wspierane przez alternatywne oprogramowanie, takie jak: dd-wrt czy Tomato.

W moim przypadku musiałbym posiadać drugi router za TC i go skonfigurować – w przyszłości zapewne to rozwiązanie sprawdzę. Na chwilę obecną polecam lekturę VPNonline i liczę na Wasze komentarze ta temat podjętych działań i ich wyników!

Pobudka na odległość, czyli Wake on LAN w praktyce
Tagged on: