Sieć

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.

Twoja cała sieć lokalna pod ręką – Coucou dla OS X

coucou_logo

Tytuł wpisu jest być może trochę na wyrost, ale jest jak najbardziej zgodny z prawdą przy założeniu, że wszystkie posiadane przez nas urządzenia pracujące w sieci wspierają protokół Bonjour (lub ZeroConf). W przypadku, gdy macie „park maszynowy” pochodzący z Cupertino nie ma problemów, ponadto wiele urządzeń sieciowych, takich jak NASy czy drukarki sieciowe również będzie ochoczo współpracować z Coucou, który jest bohaterem dzisiejszego artykułu.

Coucou to program dostępny wyłącznie dla platformy OS X, a za jego narodziny, dorastanie i wychowanie odpowiedzialny jest Boy van Amstel, działający pod szyldem Danger Cove. Powinniście znać go już dobrze, dzięki takim aplikacjom jak Porthole, Reign oraz AirVLC, które miałem przyjemność wcześniej tu opisywać.

W zasadzie trudno jest jednoznacznie zdefiniować przeznaczenie tego kawałka software’u… W podstawowym zakresie możemy wykorzystać Coucou jako skaner sieciowy, dzięki któremy podejrzymy urządzenia w naszej sieci lokalnej (przewodowej oraz WiFi).

coucou_01

Klikając na ikonkę w menu systemowym wyświetlimy urządzenia, które korzystają z protokołu Bonjour, zobaczymy ich nazwy, adresy (IPv6IPv4) oraz uruchomione na nich usługu sieciowe z przypisanymi portami.

W przypadku iUrządzeń (takich jak iPhone czy iPad) dopóki nie włączymy jakiejś usługi (np. serwera DLNA), zamiast nazwy zobaczymy adresy fizyczne interfejsu sieciowego (tzw. adresy MAC). Będą one widoczne na liście pomimo informacji zawartej w preferencjach, że pokazywane są urządzenia Apple, za wyjątkiem tych pracujących pod iOS (notabene Apple TV też pracuje pod tym systemem przecież…).

coucou_02

Z niektórych usług (poprawnie skonfigurowanych) możemy skorzystać bezpośrednio po wybraniu takowej na wykrytym urządzeniu, wprost z menu Coucou.

Nie miałem niestety możliwości sprawdzić połączeń z drukarkami czy serwerami plików NAS. Według zapewnień autora działa to bardzo dobrze. Można np. wyświetlić automagicznie stronę WWW konfiguracji drukarki lub zasoby dysku sieciowego. Generalnie można uznać, że Coucou dzięki Bonjour potrafi za nas uruchomić odpowiednią aplikację (Finder, Terminal, Współdzielenie ekranu, itp.) i podłączyć się do wykrytego urządzenia, z wykorzystaniem wybranej usługi. Bez problemu wejdziemy w ten sposób np. na dysk TimeCapsule. Możemy również łatwo udostępniać ekran czy pliki. Większość tych operacji możemy przeprowadzić systemowo lub za pomocą dedykowanych aplikacji, ale zaletą Coucou jest zminimalizowanie kroków koniecznych do uzyskania pożądanych efektów.

Jedną z ciekawszych opcji jest możliwość udostępniania np. naszej strony WWW (lub jakiegokolwiek projektu webowego przygotowanego w np. Rails, MAMP, Django), którą lokalnie stworzyliśmy i uruchomiliśmy, innym użytkownikom/komputerom dzięki dostępnym w przeglądarce Safari – zakładkom witryn Bonjour. Bliższe wyjaśnienie prezentuje poniższy film:

Gwoli ścisłości w nowej wersji Safari, opcję pokazywania zakładek Bonjour ustawia się w innym miejscu:

bonjour_safari

Nie da się ukryć, że deweloperzy aplikacji sieciowych oraz webmasterzy najbardziej docenią korzyści płynące z tak niepozornego programu. Choć również i zwykłym użytkownikom przyda się takie narzędzie. Zwłaszcza tym posiadającym więcej Maczków.

Coucou jest do nabycia w Mac App Store w cenie €3,59.

VirtualBox: konfiguracja interfejsów sieciowych

Połączenia sieciowe z jakich mogą korzystać nasze maszyny wirtualne, to zdecydowanie jeden z najważniejszych aspektów konfiguracji hostów. W zależności od naszych potrzeb VirtualBox daje nam możliwość przypisywania, różnych interfejsów sieciowych o różnej formie działania. Tym właśnie tematem zajmiemy się w niniejszej części cyklu o naszym ulubionym wirtualizatorze.

Wszystkie opcje związane z konfiguracją połączeń sieciowych znajdują się w panelu Settings, do którego dostajemy się za pomocą ikony na górnej belce aplikacji. Następnie przechodzimy do zakładki Network, gdzie ukażą nam się dostępne do wyboru sekcje opisane jako Adapter 1-4. VirtualBox pozwala nam na skonfigurowanie właśnie czterech niezależnych interfejsów sieciowych podłączonych do naszej maszyny wirtualnej. Myślę, że jest to całkowicie wystarczająca liczba. Dany adapter uruchamiamy poprzez kliknięcie pola wyboru nazwanego Enable Network Adapter, po wybraniu tej opcji nasza karta sieciowa domyślnie rozpocznie pracę w trybie NAT, oczywiście użytkownik może wybrać inny tryb pracy z listy rowijalnej. Oto wyjaśnienie poszczególnych opcji:

  • Not Attached – interfejs sieciowy jest dostępny w systemie goszczonym, jednak będzie on wykazywał brak podłączonego kabla sieciowego.
  • NAT – domyślne ustawienie VirtualBox, które powoduje że system goszczony zachowuje się jakby był podłączony do routera, który udostępnia nam połączenie sieciowe. W zupełności wystarcza to do pracy maszyny w internecie, jednak posiada swoje ograniczenia w perspektywie połączeń sieciowych z wirtualną maszyną ze środowisk fizycznych
  • Bridged Networking – powoduje zmostkowanie wirtualnego interfejsu z fizyczną kartą sieciową, jaką wykorzystujemy do połączenia z siecią. Pozwala to na bezpośredni przepływ danych pomiędzy systemem goszczonym a środowiskiem fizycznym. Uaktywnienie tej opcji, pozwala nam na wybór karty sieciowej z której chcemy skorzystać.
  • Internal Networking – opcja ta powoduje uruchomienie wirtualnej sieci, w której znajdują się maszyny mając bezpośrednie połączenie sieciowe ze sobą. Jest to zdecydowanie najpopularniejsza forma połączenia, która pozwala na tworzenie zamkniętych środowisk laboratoryjnych służących testom usług i wzajemnej współpracy systemów. Po wybraniu opcji możemy dowolnie nazwać naszą wewnętrzną sieć wirtualną.
  • Host-only Networking – jest to konfiguracja podobna do Internal Network jednak powoduje ona, że w wirtualnej sieci znajduje się również nasza maszyna fizyczna. Co ważne, do tego połączenia nie jest wykorzystywany nasz fizyczny interfejs sieciowy. VirtualBox, tworzy na maszynie fizycznej dodatkowy kontroler sieci, który to właśnie odpowiada za zachowanie komunikacji pomiędzy środowiskiem wirtualnym i fizycznym
  • Generic Networking – jest to niezwykle rzadko używana opcja, która pozwala na użycie dowolnego sterownika, i dystrybuuje go do maszyny wirtualnej. W 99% jest to nie użyteczna opcja dla użytkowników.

Poza wspomnianymi powyżej trybami pracy mamy również możliwość ingerencji w ustawienia zaawansowane, które są dostępne po rozwinięciu zakładki Advanced. W tej części możemy dokonać wyboru emulowanej karty sieciowej, domyślnie jest to interfejs Intel Pro 1000/MT, który stanowi pewien standard i jest bezproblemowo obsługiwany przez większość obecnych na rynku systemów operacyjnych. Poza nim emulowane są następujące modele kart:

  • AMD PCNet PCI II (Am79C970A)
  • AMD PCNet PCI II (Am79C970A)
  • AMD PCNet FAST III (Am79C973, the default)
  • Intel PRO/1000 MT Desktop (82540EM)
  • Intel PRO/1000 T Server (82543GC)
  • Intel PRO/1000 MT Server (82545EM)
  • Paravirtualized network adapter (virtio-net) – jest to wirtualna karta sieciowa, która nie posiada fizycznego odpowiednika, jednak jest ona stworzona w celach stricte wirtualizacyjnych i charakteryzuje się podniesioną wydajnością. Nie jest ona jednak wspierana automatycznie przez systemy operacyjne i wymaga ręcznego doinstalowania sterowników ze strony projektu KVM w ramach którego została ona stworzona.

Poza wyborem adaptera, mamy możliwość skonfigurowania opcji Promiscuous Mode, która to określa dostępność interfejsu w stosunku do pozostałych istniejących w sieci kart. Do wyboru mamy opcje:

  • Deny – wyłącza dostępność
  • Allow VM’s – uruchamia dostęp tylko dla maszyn wirtualnych
  • Allow All – uruchamia dostęp do dla wszystkich urządzeń w sieci

Kolejna możliwości to modyfikacja adresu MAC karty sieciowej, który poza ręcznym wpisaniem możemy wygenerować losowo za pomocą znajdującej się obok pola tekstowego ikony odświeżania. Ostatnią pozycją opcji zaawansowanych jest przycisk Port Forwarding, który aktywuje się po uruchomieniu trybu pracy interfejsu sieciowego jako NAT. Kliknięcie powoduje otwarcie okna z tabelą przekierowań portów, analogicznej do tych, które znamy z routerów na co dzień używanych przez nas do połączenia z Internetem. Konfigurujemy tutaj przekierowania, które pozwolą nam uzyskać dostęp do usług skonfigurowanych na naszej maszynie wirtualnej w zależności od portów na jakich są one udostępnione.

Zachęcam Was do przetestowania wszystkich opisanych tutaj opcji konfiguracji wirtualnych interfejsów sieciowych. Dobrym ćwiczeniem będzie dla Was skonfigurowanie maszyny wirtualnej, która będzie posiadała dwa interfejsy LAN z czego jeden będzie bramą do internetu a drugi będzie odpowiedzialny za komunikację z wewnętrzną siecią wirtualną. Dobrej zabawy!

Zapraszam Was również do zapoznania się z poprzednimi artykułami na temat VirtualBox: