Time Capsule

PeakHour – pomiar transferu danych z/do Internetu via Time Capsule

peakhour_icon

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.

peakhour_compatibility01

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.

peakhour_compatibility02

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.

airport_utility561

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:

peakhour_prefs01

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:

peakhour_prefs02

Z dostępnej listy wybieramy interesujący nas interfejs:

peakhour_prefs03

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:

peakhour_prefs04

Operację przeprowadzamy kolejno dla wszystkich interfejsów, które chcemy monitorować. Ja wybrałem następujące:

peakhour_prefs06

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 ;)):

peakhour_menu

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.

Wsparcie DDNS oraz zdalny dostęp do dysku Time Capsule

Pisząc artykuł o Wake On LAN minąłem się z prawdą. Nie wiem, czy wtedy dysponowałem starszą wersją firmware w Time Capsule, czy nie znalazłem tej opcji… Zresztą jeśli popełniłem błąd, to pokornie sypię głowę popiołem. W końcu nie myli się tylko ten, który nic nie robi. Teraz to bez znaczenia, istotny jest natomiast fakt, że Time Capsule z oprogramowaniem w wersji 7.6.4 bez problemu wspiera serwisy DDNS.

Reasumując, jeśli nie posiadamy łącza ze stałym adresem IP, a chcielibyśmy mieć możliwość jakiegokolwiek dostępu do swojej sieci lokalnej z zewnątrz, możemy założyć darmowe konto np. w serwisie no-ip, przejściu podstawową konfigurację, dodać hosta i uzyskać domenę, do której będzie przypisywany uaktualniany, dynamiczny, publiczny adres IP naszego łącza do Internetu.

ddns_01

Oczywiście aby taka aktualizacja miała miejsce potrzeba albo komputera (który będzie uruchomiony przez cały czas) z zainstalowanym klientem Dynamic DNS Update, albo skonfigurować router wspierający taką usługę. W przypadku Time Capsule należy wprowadzić za pomocą Narzędzia AirPort odpowiednie dane, uzyskane podczas konfiguracji konta w serwisie. W tym celu wchodzimy w edycję konfiguracji stacji bazowej -> zakładka Internet -> przycisk Opcje Internetu…, zaznaczamy Użyj dynamicznej globalnej nazwy hosta, a w znajdujące się poniżej pola tekstowe wprowadzamy odpowiednie informacje:

ddns_02

Po zapisaniu nowych danych i uaktualnieniu Time Capsule, możemy już łączyć się zdalnie do swojej sieci podając zamiast adresu IP nazwę hosta. Najprościej sprawdzić to w Terminalu, wykorzystując np. SSH:

ddns_03

Skoro już mamy załatwioną sprawę adresu, to warto wykorzystać to w połączeniu z samym Time Capsule. Tworząc artykuł na temat alternatywy dla iTunes Match stwierdziłem, że fajnie byłoby mieć możliwość streamingu muzyki ze swojej prywatnej chmury. Odtwarzać zdalnie utwory zgromadzone na dysku wewnętrznym TC, który w moim przypadku ma prawie 1TB pojemności. Zatem sporo więcej niż darmowe dyski w chmurze. Ponadto za pomocą złącza USB możemy do TC podłączyć dysk zewnętrzny (sformatowany w systemie plików Mac OS X Extended kronikowanym). Okazuje się jednak, że zdalny dostęp do Time Capsule nie jest wcale taki prosty, dlatego postanowiłem opisać niżej dostępne możliwości i opcje.

Dostęp z innego Maca

Tu sprawa jest w dość prosta, mamy do wyboru dwie możliwości:

  • Wykorzystanie iCloud – Zdalnie na moim Macu, należy pamiętać o udostępnieniu dysku przez sieć WAN

tc_wan_access_01

  • Mapowanie portów – jeśli łączymy się z innego Maca, na którym nie zostało skonfigurowane konto iCloud, lub korzysta z innego Apple ID – pozostaje nam utworzenie odwzorowania portu IPv4 tak, aby z zewnątrz możliwe było dostanie się do dysku Time Capsule. W tym wypadku musimy dodać przekierowanie publicznego portu TCP (np. 8765) z Internetu na prywatny port TCP o numerze 548 (na którym działa protokół AFP). Prywatny adres IP to adres Time Capsule w sieci lokalnej.

tc_wan_access_02

Oczywiście, tak jak w poprzednim wypadku, należy zaznaczyć opcje udostępniania dysku prze sieć WAN, wybrać odpowiednie zabezpieczenie i ew. uprawnienia (Zapis i Odczyt, lub tylko Odczyt). Aby połączyć się z dyskiem należy znać zewnętrzny adres IP sieci w której znajduje się TC lub skonfigurować obsługę DDNS, co opisałem na początku artykułu. Następnie, aby połączyć się z komputera w Finderze, w menu Idź wybieramy opcję Połącz z serwerem… i wprowadzamy w polu adres serwera następujący łańcuch znaków:

afp://nazwa_hosta:8765

lub

afp://xxx.xxx.xxx.xxx:8765

gdzie xxx.xxx.xxx.xxx oznacza zewnętrzny, publiczny adres IP sieci w której znajduje się Time Capsule.

Dostęp z komputera z Windows

Muszę was rozczarować, nie da się dobrać do dysku Time Capsule z sieci WAN z peceta z windowsem. W celu udostępniania dysku po za siecią lokalną, TC wykorzystuje wyłącznie protokół AFP – Apple Filing Protocol, który nie jest rozumiany przez system Microsoftu. Teretycznie można w podobny sposób jak opisany wyżej, utworzyć odwzorowanie portów (nr 445) dla protokołu SMB i spróbować uzyskać pozytywny efekt. Bo przecież PC komunikuje się z Time Capsule w sieci lokalnej za pomocą tego protokołu. Jednak większość ISPów blokuje porty CIFS z powodów bezpieczeństwa, więc jeśli zdecydujecie się na ten krok (i uda się wam podłączyć zdalnie za pomocą smb://) musicie brać pod uwagę ewentualne ryzyko, związane z pozostawioną luką w bezpieczeństwie sieci.

Dostęp z iPhone/iPada

W przypadku iUrządzeń też sytuacja nie jest różowa, ponieważ w odróżnieniu od komputerów z OS X brak tutaj bezpośredniego wsparcia dla protokołu AFP. Ponadto implementacja iCloud nie zawiera funkcji Zdalnie na moim Macu. Aby więc uzyskać dostęp do dysków Time Capsule (bo z dostępem do danych składowanych na dyskach komputerów – praktycznie z dowolnym systemem – nie ma problemu), należy zaopatrzyć się w menedżer plików ze wsparciem AFP. Niestety chyba wszystkie tego typu programy są płatne, ze swojej strony polecam Files Connect oraz iFiles.

Wracając do streamingu: żaden z testowanych przez ze mnie w trakcie tworzenia wcześniejszego wpisu odtwarzaczy dla iOS, nie posiadał wsparcia dla protokołu AFP, więc jestem na 99% przekonany, że sensowne rozwiązanie na chwilę obecną nie istnieje. Gdybym się mylił – proszę o informacje w komentarzach.

Podsumowując: Apple ma spore pole do popisu i wiele rzeczy do nadrobienia. Przynajmniej ja chciałbym, aby przynajmniej część tych ograniczeń została wyeliminowana. Szkoda też, że Time Capsule nie ma wbudowanego serwera iTunes, bo o ile router jest urządzeniem działającym raczej bez przerwy, to  komputer często wyłączamy. Możliwość wykorzystania wbudowanej przestrzeni dyskowej (lub podłączonego przez USB napędu) tylko jako magazyn kopii zapasowych Time Machine oraz dysk sieciowy w sieci lokalnej to trochę mało, na pewno zbyt mało by skusić wielu użytkowników na zakup TC. Prędzej wybiorą AirPort Extreme plus NAS (jak np. WD My Cloud), lub kompletnie inny router pozbawiony ograniczeń Time Capsule, który dodatkowo np. pozwoli na uruchomienie klienta BitTorrent i pobieranie danych na podpięty dysk zewnętrzny.