Co drukarka sieciowa wie na temat routingu?

5 komentarzy

Jestem w szoku.

Zacznijmy od początku. Kupiłem drukarkę z Wi-Fi, wszystko cacy, będę mógł sobie bezprzewodowo drukować. Podłączenie do sieci systemem Wi-Fi Protected Setup i po kilku sekundach drukarka otrzymała adres 192.168.1.254 z DHCP routera. A, co tam! Wpisze ją do tablicy, niech ma ten adres na stałe...

2 dni później przyszła ochota na domowy VPN. Kilka godzin zagłębiania się w temat, herbatka i zaczynamy. Jako że testowanie działania tunelu w obrębie sieci lokalnej mija się z celem, udało mi się namówić członka rodziny oddalonego o kilka kilometrów o zdalne udostępnienie swojego peceta do testowania połączenia.

Instalacja OpenVPN na debianie, generowanie certyfikatów, kluczy i na końcu konfiguracja i testowanie. OpenVPN daje nam możliwość zestawienia tunelu w trybie routera bądź mostu. Zaletą pierwszego jest ograniczenie wysyłania danych sieciowych tunelem do niezbędnego minimum; brak broadcastów (wysyłał ktoś magic pakiety Wake On Lan przez VPN? Awangarda w sieci.) , IPX'ów i innych. Teoretycznie jedyną wadą trybu routera jest konieczność zadbania we własnym zakresie o trasowanie, co za chwilę okaże się gwoździem programu.

Trasa wygląda następująco:

Po wstępnej konfiguracji OpenVPN w trybie tun, klient był w stanie spingować wewnętrzny interfejs serwera (192.168.1.2). Sukces!

Zasoby samby i inne wodotryski dostępne globalnie poprzez \\\192.168.1.2. Jedziemy dalej. Byłoby miło uzyskać dostęp do całej sieci domowej - nie tylko serwer udostępnia swoje usługi. Próba spingowania lokalnych komputerów przez klienta zakończona porażką, brak routingu.

Dodajemy push "route 192.168.1.0 255.255.255.0" do konfiguracji servera VPN w celu wskazania klientowi, że sieć 192.168.1.0/24 znajduje się na końcu tunelu. Dalej porażka. Pingujemy router - nic, pingujemy laptopa - nic, pingujemy netbooka - nic. pingujemy drukarkę - Sukces!

Tcpdump informuje o wędrujących pakietach ICMP echo request/reply między klientem a drukarką. Jakim cudem drukarka jest jedynym urządzeniem sieciowym znającym trasę powrotną pakietów od klienta? Na początku myślałem, że to za sprawą jej adresu - 192.168.1.254. Szybki test, odłączenie drukarki, nadanie hostowi w sieci lokalnej adresu 192.168.1.254. Ping nie dochodzi. Wygląda na to, że ten adres nie ma dużo wspólnego z zaistniałym ewenementem. Kolejny krok to zmiana adresu drukarki na 192.168.1.10. Pingujemy, działa.

Podsumowując. W sieci lokalnej wszyscy wszystkich pingują i się nawzajem widzą. Na routerze nie ma zablokowanych pingów, żaden z pecetów w sieci lokalnej w czasie testów nie miał włączonego firewalla. Wszystkie urządzenia otrzymują adres IP z wcześniej skonfigurowanej tablicy DHCP routera. Analiza ruchu wykazała, że wszystkie urządzenia w sieci lokalnej odbierają pakiety ICMP echo wysłane przez klienta tunelem VPN lecz nie znają trasy powrotnej i nie są w stanie odpowiedzieć.

Drukarka jakimś trafem trasę zna i wie, że klient (10.8.0.6) znajduje się na końcu tunelu którego bramą jest serwer (192.168.1.2) a nie jak myślą inne urządzenia - router (192.168.1.1). Skąd? :-)

FreeNAS w służbie udostępniania usług sieciowych

8 komentarzy

Po długich i nieudanych bojach związanych z konfiguracją Slackware na moim serwerze postanowiłem przesiąść się na FreeNAS. Czym jest FreeNAS?

Jest to darmowy system wbudowany oparty na FreeBSD obsługujący :

- Samba
- SSH
- (T)FTP
- WWW
- NFS
- AFP
- iSCSI
- UPnP
- iTunes/DAAP
- Dyn DNS
- SNMP
- obsługa Rsync i Unison
- klient BitTorrent

FreeNAS ponadto umożliwia szyfrowanie dysków (AES, Blowfish, Camellia, 3DES), software'owy RAID 0/1/5 oraz ZFS. Moim zdaniem największym plusem jest możliwość konfiguracji całego systemu z poziomu przeglądarki. Każda usługa posiada swoją zakładkę i konfiguracja opiera się na kilku kliknięciach myszką. Ponadto mamy możliwość samodzielnego edytowania plików konfiguracyjnych jak i wydawania komend systemowych również z poziomu www. Dodatkowo mamy dostęp do przejrzystych statystyk interfejsów, sieci czy obciążenia i temperatury dysków twardych.

FreeNAS możemy zainstalować na kilka sposobów. Najpopularniejszą metodą jest instalacja w wersji Embedded, gdy system uruchamiany jest w RAMdisku a jedynie pliki konfiguracyjne zapisywane są na dysku/pamięci flash/karcie CF. Możemy również przy instalacji wybrać opcję "full" w której system zainstaluje nam się na dysku. Korzenie we FreeBSD pozwalająnam na instalowanie paczek tbz, lecz niestety nie ma możliwości instalowania oprogramowania ze źródeł :-(

System pracuje u mnie w wersji full na Pentium III 550 Mhz z 320MB Ramu. Aktualnie działa SSH, Samba, Rsync, serwer www i klient bitTorrent. Dodatkowo podłączona jest drukarka HP 5150. Zainstalowanie LPRng pozwoliło uruchomić drukowanie i udostępnić drukarkę w sieci.

Znalazlem ciekawy overview na youtube. Polecam!




lypse(at)lypse.net