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