Wake on LAN, czyli komputerowa pobudka: Vlany i konfiguracja urządzeń Cisco

Dzisiejszy wpis przeznaczony jest do osób, które maja do czynienia z większymi sieciami, takimi w których stosowane jest kilka logicznych warstw. Virtual LAN czyli vlan służy do logicznego podziału sieci. Oznacza to, że urządzenia, które współdzielą tą samą fizyczną infrastrukturę niekoniecznie zachowują się tak jakby były w jednej sieci. Lokalną sieć (LAN) rozumiemy jako sieć warstwy pierwszej (oparta na hubach, raczej już takiej nie spotkamy) lub drugiej (na switchach), vlany jednak do działania wymagają urządzenia, które operuje już na warstwie trzeciej, może to być router lub switch warstwy trzeciej. Poszczególne sieci różnią się między sobą szeregiem cech, lecz jedna, która nas w tej chwili interesuje najbardziej to wielkość domeny rozgłoszeniowej (broadcast domain), bo jak zapewne pamiętacie z poprzednich wpisów, WoL działa na zasadzie rozsyłania magicznego pakietu do wszystkich komputerów poprzez adres rozgłoszeniowy. Wszystkie urządzenia w sieci warstwy pierwszej i drugiej współdzielą tą samą domenę rozgłoszeniową, natomiast urządzenia warstwy trzeciej dzielą tą przestrzeń. Dla sieci jako całości jest to pozytywny efekt – zmniejsza się ilość pakietów broadcastowych oraz obszar potencjalnych ataków. Jeżeli jednak chcemy używać Wake on LAN jest to przeszkoda.

Nie jesteśmy w tej kwestii bezradni. Istnieje technika zwana rozgłoszeniem skierowanym (directed broadcast) i umożliwia na wysyłanie pakietów na adres rozgłoszeniowy innych sieci. Ze względów bezpieczeństwa urządzenia warstwy trzeciej domyślnie nie przekazują skierowanych rozgłoszeń. Zapobiega to atakom typu smurf (DoS), które potrafią wprowadzić niezły zamęt w całej domenie rozgłoszeniowej. Zaaplikowanie konfiguracji umożliwiającej wykorzystywanie WoL wiąże się więc z pewnym ryzykiem, należy jak najbardziej ograniczyć jej wpływ.

Jeżeli planujemy solidne rozwiązanie do systematycznych działań to warto wyznaczyć jeden komputer lub serwer, który będzie służył jako maszyna do wysyłania „budzących” pakietów. Do konfiguracji będziemy potrzebowali jego adres IP, więc najlepiej gdy będzie statyczny. Następnie musimy zdecydować które, vlany mogą przyjmować tego typu pakiety oraz ich adresy rozgłoszeniowe sieci, które obsługują. Będzie nam tez potrzebna wiedza na temat urządzenia bądź urządzeń, które obsługują ruch pomiędzy vlanami to właśnie na nich musimy zaaplikować zmiany.

Konfiguracje dla rozwiązania przedstawię na podstawie urządzeń Cisco, ponieważ są mi najbliższe, ale w urządzeniach innych producentów będzie to działało wg tego samego schematu.

Konfiguracja

Przypuśćmy, że infrastruktura z którą mamy do czynienia to serwer WoL_server w vlanie 5 o adresie 192.168.0.7.
Nasze cele, czyli komputery, które chcemy budzić znajdują się w vlanach 10, 11 i 12, a adresy rozgłoszeniowe podsieci to odpowiednio 192.168.1.255, 192.168.2.255 i 192.168.3.255.

Do komendy pozwalającej na skierowane rozgłoszenia potrzebna jest rozszerzona access lista, więc najpierw musimy taka utworzyć. Aby było nieco geekowo jako numer listy wybrałem 1337. Domyślnie WoL działa na porcie UDP 7 lub 9, jednak nic nie stoi na przeszkodzie aby zmienić go na inny co niniejszym czynię.

CoreSwitch#conf t
CoreSwitch(config)#ip access-list extended 1337
CoreSwitch(config)#permit udp host 192.168.0.7 any eq 1337

Zabieramy się za konfigurację vlanu, w którym znajduje się maszyna, która będzie służyła do budzenia komputerowych śpiochów. Aby pakiety UDP wychodziły poza nasz vlan musimy użyć komendy ip helper-address, która, mówiąc krótko, umożliwia urządzeniu na przekazanie broadcastu z jednej sieci do innej (w postaci unicastu), musimy jedynie wskazać adres do, którego chcemy go wysłać. Jeżeli wybiorę adres rozgłoszeniowy sieci docelowej to zostanie on wysłany do wszystkich komputerów w tej sieci.

CoreSwitch(config)#interface Vlan5
CoreSwitch(config-if)#ip helper-address 192.168.1.255
CoreSwitch(config-if)#ip helper-address 192.168.2.255
CoreSwitch(config-if)#ip helper-address 192.168.3.255

Komenda ip helper-address domyślnie umożliwia na przekazywanie pakietów UDP ośmiu najczęściej stosowanych usług (porty 37, 49, 53, 67, 68, 69, 137, 138), nasz zdecydowanie do nich nie należy więc do tej ósemki dodać musimy ten, który nas interesuje

CoreSwitch(config)#ip forward-protocol udp 1337

Pozostaje nam jedynie konfiguracja vlanów, do których podłączone są maszyny do obudzenia. Używamy komendy ip directed-broadcast aby umożliwić dotarcie kierowanych rozgłoszeń.

CoreSwitch(config)#interface Vlan10
CoreSwitch(config-if)#ip directed-broadcast 1337
CoreSwitch(config-if)#interface Vlan11
CoreSwitch(config-if)#ip directed-broadcast 1337
CoreSwitch(config-if)#interface Vlan12
CoreSwitch(config-if)#ip directed-broadcast 1337

To tyle jeżeli chodzi o konfigurację urządzeń Cisco.
Jeżeli chcemy teraz skorzystać z dobrodziejstw jaki daje nam WoL, wystarczy, że na serwerze użyjemy jednego z wcześniej opisanych programów. Ja dla przykładu wykorzystam wolcmd.exe. Chcę obudzić komputer o adresie MAC 001122334455, jego adres IP to 192.168.2.3, a maska sieci 255.255.255.0. WoL będzimy wysyłać poprzez port 1337. Adres IP i maska służą do obliczania adresu rozgłoszeniowego więc właściwa maska jest niezbędna, IP możemy podać jakiekolwiek, byle by tylko było w obrębie sieci, w którą chcemy celować

C:\wolcmd 001122334455 192.168.2.3 255.255.255.0 1337

Seria „Wake on LAN, czyli komputerowa pobudka” zawiera:
Trochę teorii
Programy
Przygotowanie urządzeń
Vlany i konfiguracja urządzeń Cisco
WoL przez Internet
Konfiguracja WoL na Livebox

Przeczytaj także...

Dodaj komentarz