PeakHour – pomiar transferu danych z/do Internetu via Time Capsule
Od dłuższego czasu zastanawiałem się nad aplikacją, która potrafiłaby monitorować ilość danych jaką pobierają i wysyłają wszystkie urządzenia w mojej sieci lokalnej z i do Internetu. Jeśli chodzi o pomiar aktywności sieciowej Maczka to rozwiązań jest multum, jak np. Monity, iStatus, iStat Menus, itp. Dla Windowsa chyba najciekawszy jest Network Meter. Na iOS? Tu sprawa wygląda nieco gorzej, bo o ile łatwo jest zmierzyć dane przesłane w sieci komórkowej to po WiFi już trochę trudniej. Ale już po krótkim rekonesansie w App Store znalazłem niezłą a przy tym darmową appkę – Traffic Monitor with Speed Test. Polecam.
Można zadać pytanie po co w ogóle badać ruch w sieci lokalnej, gdy w zasadzie 99% kablowych łącz szerokopasmowych nie jest ograniczone żadnymi limitami danych, jak to bywało w przeszłości? Chyba najbardziej zasadną odpowiedzią jest: by zaspokoić ciekawość, oszacować własne potrzeby, sprawdzić na ile faktycznie nasze łącze jest wykorzystywane. Co prawda, dziś liczy się bardziej szybkość transmisji i fakt samego natychmiastowego dostępu, ale fajnie mieć np. możliwość sprawdzenia, kto z domowników, na którym urządzeniu szaleje i obciąża łącze zabierając cenne pasmo, prawda?
Jak monitorować cały ruch w sieci lokalnej? Generowany przez zarówno komputery podłączone kablem, jak i gadżety łączące się bezprzewodowo? Oczywiście mierząc ruch na routerze! OK, sprawa niby prosta, i pewnie w przypadku urządzeń z alternatywnym softem, takim jak Tomato czy DD-WRT trywialna w realizacji. Ale jak to zrobić na np. Time Capsule? Niestety dążenie Apple do maksymalnego upraszczania obsługi, ma również efekty uboczne – brak pełnej kontroli i dostępu do danych, które garstce osób mogłyby być przydatne. Narzędzie AirPort z wersji na wersję staje się uboższe w opcje…
Okazuje się jednak, że oprogramowanie śledzące ruch z i do Internetu istnieje, ba! rozwiązań jest nawet kilka. Dziś chciałbym przybliżyć jedno z nich – aplikację PeakHour autorstwa Edwarda Lawforda. Program ten dostępny jest w Mac App Store w cenie €4,49. To zgrabne i użyteczne narzędzie zadomawiające się w belce menu systemu OS X, pokazujące na bieżąco informacje o aktywności sieci, a po naciśnięciu menuletu wyświetlające okno zawierające szczegółowe informacje oraz graficzny wykres ruchu.
Jeśli macie inny router, przed zakupem PeakHour warto pobrać z MAS darmowy tester zgodności, appkę PeakHour Compatibility Check. Warto to sprawdzić, ponieważ nie każde urządzenie będzie współpracować. Generalnie aplikacja sama wykrywa routery / punkty dostępowe Universal Plug and Play, oraz po podaniu adresu IP urządzenia wspierające Simple Network Management Protocol. Apple Time Capsule, AirPort Extreme oraz AirPort Express należą właśnie do tej drugiej grupy, nie wspierają standardu UPnP a własny – NAT-PMP.
Jeśli okaże się, że wasze urządzenie sieciowe z jabłuszkiem się nie zgłasza, a program informuje o braku odpowiedzi, może okazać się, że w konfiguracji routera wyłączony jest protokół SNMP. Można go załączyć, ale wymaga to starszej wersji Narzędzia AirPort. Niestety ostatnie wersje zawierające opcję kontroli tego protokołu, czyli 5.6.x nie działają ani pod Mavericksem ani pod Yosemite. Na szczęście Corey J. Mahler udostępnia zmodyfikowaną wersję Narzędzia AirPort 5.6.1, które bez problemu uruchomicie na najnowszych wersjach OS X.
Nie będę tu wnikać w „anatomię” protokołu SNMP, polecam lekturę innych źródeł. Faktem natomiast jest, że mój (moja?) Time Capsule (802.11n, 3rd Gen) wspiera ten protokół w wersji V2c, ale tylko na interfejsach WAN (czyli połączeniu z modemem) oraz na 4-portowym switchu Gigabit Ethernet (3-porty dostępne na tylnej ściance). Pozostałe interfejsy, czyli WiFi 2,4 GHz i 5 GHz oraz inne, obsługuje SNMP w wersji V1. Więcej o monitorowanych interfejsach za chwilkę.
Po uruchomieniu PeakHour w preferencjach programu dokonujemy konfiguracji. Przeprowadzę ją na przykładzie Time Capsule, i skupię się na najważniejszych opcjach.
Zaznaczamy protokół SNMP:
Jeśli zadziała automatyczne wykrywanie program sam znajdzie router, jeśli nie, to podajemy jego adres IP, a w polu Community zostawiamy domyślny łańcuch „public” (chyba, że sami zmieniliśmy go w konfiguracji TC korzystając ze starszej wersji Narzędzia AirPort). Dla podglądu wszystkich interfejsów zaznaczamy wersję V1:
Z dostępnej listy wybieramy interesujący nas interfejs:
Jeśli opisy są mało zrozumiałe warto pamiętać, że w Time Capsule interfejsy oznaczone są odpowiednio:
- port WAN – interfejs mgi1 (lub vlan1),
- porty LAN – interfejs mgi0 (lub gec0),
- WiFi 2.4 GHz – interfejs wlan0 (lub ath0),
- WiFi 5 GHz – interfejs wlan1 (lub ath1)
- pomost między sieciami Ethernet oraz WiFi – interfejs bridge0.
Na liście mogą pojawić się jeszcze inne nazwy, np. mv0 (bwl0) / mv1 (bwl1) – interfejsy zarządzające dla sieci WiFi 2.4 i 5 GHz, gif0 / sth0 – tunelowanie IPv6 w IPv4, lo0 – localhost (loopback), pppoe0 – tunelowanie PPP over Ethernet i inne, ale nie mają w naszym wypadku większego znaczenia.
Uwaga. Pomimo, że w oknie wyboru interfejsu, WAN i Ethernet mają zamienione oznaczenia (mgi0 < > mgi1), to praktyczny test wykazał, że właśnie mgi1 wyświetla sumaryczny transfer pozostałych interfejsów, dlatego wyżej opisałem stan jaki ma miejsce w przypadku mojego routera. U was może być inaczej (odwrotnie).
Po zaznaczeniu żądanego interfejsu, nazywamy go wedle uznania, określamy sposób prezentacji danych (tylko wartości liczbowe, lub dodatkowo wykres oraz mini-podgląd w belce menu). Możemy także ustalić kierunek transmisji – gdyby okazało się, że podczas pobierania danych program wskazuje na wysyłanie:
Operację przeprowadzamy kolejno dla wszystkich interfejsów, które chcemy monitorować. Ja wybrałem następujące:
Na kartach View, Colors, Bandwidth, Totals i Advanced możemy zmienić sposób pokazywania i dokładność wyświetlanych danych dla każdego interfejsu z osobna. Natomiast karty w głównym oknie preferencji programu (Display, Usage, General) pozwalają na zmianę parametrów globalnych, takich jak:
- częstotliwość odświeżania (w zakresie od 1/2 sekundy do całej minuty),
- jednostki pomiarowe (KB/s, MB/s, GB/s lub Kbps, Mbps, Gbps),
- interpolacje (wygładzanie) wykresu – zależnie od siły uśredniania wykres będzie bardziej „gładki”, ale prezentowane dane mniej zgodne z rzeczywistymi,
- płynna animacja wykresu – opcja dla nowszych i szybszych komputerów,
- śledzenie zużycia transferu w odniesieniu do ustalonego limitu, z możliwością automatycznego zerowania po upłynięciu pełnego okresu rozliczeniowego – w celu zachowania dokładności monitoringu, wymaga to pozostawienia komputera włączonego przez cały czas,
- kolory menuletu, pokazywanie ikony w Doku, opcja uruchamiania PeakHour przy starcie systemu,
- telemetria – gromadzenie danych przydatnych innym użytkownikom takich samych urządzeń do ich konfiguracji.
Sami widzicie, że opcji jest mnóstwo i trzeba spędzić trochę czasu by dostosować program do swoich oczekiwań i potrzeb. U mnie menu PeakHour już po skonfigurowaniu i w użyciu prezentuje się następująco (nie miałem weny na zabawę z kolorkami ;)):
Czy program ma jakieś wady? Owszem. Jak pewnie zauważyliście monitorowane są konkretne interfejsy zbiorcze, nie ma niestety możliwości podglądu obustronnej transmisji danych dla poszczególnych klientów, czyli wszystkie iUrządzenia będą zwiększać ilość przesłanych i odebranych danych dla interfejsów WiFi w odpowiednich pasmach. A wszystkie komputery wpięte do zintegrowanego switcha pracować na konto wspólnego interfejsu.
Program nie obsługuje historii pomiarów, tzn. każda zmiana ustawień dla nawet wybranego interfejsu (np. zamiana kierunku Download/Upload) spowoduje wyzerowanie danych. Trudno sprawdzić np. jakie użycie danego dnia miało miejsce, tym bardziej że sam wykres wyświetla tylko sześciominutowy przedział czasu.
Śledzenie działa poprawnie, tj. gdy np. uruchomimy na iPadzie film z YouTube to od razu widać zwiększone pobieranie danych zarówno na interfejsie WiFi jak i WAN. Program ma spory potencjał i według zapewnień autora, w niedalekiej przyszłości udostępni PeakHour 3, który będzie wspierać historię z możliwym podglądem według dni, tygodni i miesięcy, dziennik (logowanie) zdarzeń, akcje powiązane z określonym przez użytkownika zużyciem transferu, opcję przewijania wykresu w poziomie i pełną z godność z OS X Yosemite (choć ja nie zauważyłem żadnych problemów z działaniem aplikacji na tej wersji systemu). Tak więc, jest na co czekać :)
Mi osobiście, marzy się program potrafiący wyświetlić np. ilość odebranych i wysłanych danych, od pierwszego podłączenia Time Capsule w mojej sieci domowej. Z podziałem nie tylko na interfejsy, ale również urządzenia (np. identyfikowane adresem MAC). Który potrafiłby zrobić zestawienie generowanego ruchu w skali dnia, tygodnia, miesiąca i roku, a jeszcze lepiej gdyby umiał również wskazać jaki protokół sieciowy, lub port przyczynił się do tych wyników… Pomarzyć można, prawda?
PS. Na witrynie PeakHour znajdziecie Dokumentację, Wiki oraz Blog – te miejsca to spora kopalnia wiedzy o programie, którą warto zwiedzić nim się podejmie decyzję o zakupie.