Czy są jakieś VPN-y rozproszone / podobne do siatki / P2P?

12

Mam swoją osobistą sieć VPN, łączącą kilka urządzeń, aby mogły mieć stałe adresy IP w zawsze dostępnej sieci (o ile są podłączone do Internetu). Jest to dla mnie konieczne, ponieważ moje urządzenia mogą być w ruchu, w różnych i nieprzewidywalnych sieciach (telefon komórkowy 4G, laptop na uniwersytecie, domowy serwer w domu), a ja mam serwer zapasowy, który musi się z nimi połączyć (i czasami , Ja też muszę).

Zastanawiam się także nad zainstalowaniem czegoś takiego jak synchronizacja, która może również skorzystać z mniejszych opóźnień i bliższych węzłów.

Ponadto jestem leniwy i lubię odtwarzać / wstrzymywać odtwarzanie muzyki na moim serwerze domowym ze smartfona, który może nie być w tej samej sieci (powinien, ale nie zawsze tak jest).

Oznacza to, że mam jeden serwer OpenVPN, a openvpnklient działa na każdym urządzeniu. Wszystkie łączą się z serwerem, a wszelki ruch z dwóch dowolnych węzłów musi przechodzić przez serwer, który jest stosunkowo daleko i ma bardzo ograniczoną przepustowość. Oznacza to opóźnienie i powolność. A kiedy nacisnę przycisk „Pauza”, odtwarzanie muzyki może potrwać do 10 sekund. Nawet jeśli oba węzły są w tej samej sieci LAN (ponieważ rozmawiają przez VPN). Meh

Idealnie byłoby istnieć jakiś sposób na stworzenie sieci VPN, która byłaby w stanie znaleźć najkrótsze ścieżki między węzłami i próbować połączyć je bezpośrednio. Coś jak sposób, w jaki Skype współpracował z supernodami?

Podczas gdy serwer jest daleko stąd, jeden z węzłów ma publiczny adres IP, a inne węzły mogą do niego dotrzeć. Może działać jako serwer - nawet jeśli nie jest to sam serwer, chociaż dla niektórych węzłów byłby to lepszy wybór .

Wyobrażam sobie, że mógłbym zrobić coś podobnego, aby uruchomić zarówno klienta, jak i serwer, i połączyć je w tym węźle, ale to nie wygląda elegancko. Jest hackerski, komplikuje PKI, dzieli VPN. Nie podoba mi się

Chociaż mogłem użyć prostej sieci VPN, takiej jak PPTP, która tak naprawdę nie zapewnia bezpieczeństwa komunikacji, zdecydowałem, że nie chcę zawracać sobie głowy konfigurowaniem Baculi do szyfrowania połączeń między węzłami, co oznacza, że ​​ruch w sieci VPN jest prosty. Hermetyzacja VPN jest jedynym zabezpieczeniem, więc nie powinna być słaba. Jednak wszystko, co rozwiązuje sieć typu „mesh” bez poufności, byłoby dobrym początkiem - upewniłbym się, że ruch zacznie przechodzić przez SSL / TLS.

To wygląda na problem, który mógł mieć ktoś inny, i do tej pory rozwiązany. Czy jest coś takiego?

Istnieje również szansa, że ​​patrzę na to w niewłaściwy sposób, ale jak dotąd wydaje się to najlepszym podejściem do zapewnienia, że ​​zawsze mogę połączyć się z dowolnym urządzeniem zdalnie, bez względu na to, gdzie jestem lub gdzie się znajdują.

Valmiky Arquissandas
źródło
Tak, to, czego chcesz, istnieje, do komunikacji w sieci LAN, jeśli urządzenia są lokalne. To Azure Service Bus
goodguys_activate

Odpowiedzi:

6

Nie jestem pewien, czy całkowicie spełnia twoje potrzeby, ale prawdopodobnie powinieneś spojrzeć na tinc: http://www.tinc-vpn.org/ . Całkiem ściśle pasuje do sieci kratowej zorganizowanej przez centralny serwer, jak opisano, ale nie jestem pewien, czy uda mu się wykryć sieci równorzędne w sieci lokalnej.

Steffan Karger
źródło
3

Najłatwiejszą siecią VPN, którą znalazłem i użyłem, jest PeerVPN ( http://www.peervpn.net/ ).

Funkcje PeerVPN

  • Obsługa tunelowania Ethernet za pomocą urządzeń TAP.
  • Obsługa IPv6.
  • Topologia sieci z pełną siatką.
  • Automatycznie buduje tunele poprzez zapory ogniowe i NAT bez dodatkowej konfiguracji (na przykład przekierowanie portów).
  • Obsługa szyfrowania i uwierzytelniania klucza współdzielonego.

Konfiguracja jest prosta .. jeden plik konfiguracyjny, który edytujesz, a dla podstawowej siatki VPN istnieje tylko 6 ustawień, które musisz określić, zobacz samouczek PeerVPN, który ma tylko 1 stronę: http://www.peervpn.net/tutorial/

Klucz szyfrowania / uwierzytelniania PSK może mieć maksymalnie 512 bitów (64 bajty).

Do tej pory ustawiłem peervpn na wielu zdalnych serwerach i działa bardzo dobrze. Ponadto nie ma wymogu „superwęzła”, ponieważ można go spotkać w innych implementacjach VPN typu VPN.

Węzły w peervpn dowiadują się o nowo dodanych węzłach do VPN automatycznie bez potrzeby zmiany konfiguracji. Ruch z węzła do węzła jest również bezpośredni i nie odbywa się przez jakiś centralny hub VPN.

Uwaga: przeczytaj domyślny plik peervpn.conf, aby dowiedzieć się o wielu innych opcjach, z których możesz „skorzystać”. Ale dla podstawowej sieci VPN, jak powiedziałem, musisz ustawić tylko 6 opcji (nazwa VPN, PSK, adres IP punktu końcowego tunelu lokalnego, „nazwa” interfejsu, którą chcesz zobaczyć / użyć w systemie Linux i numer portu, którego chcesz użyć „że” VPN ... Uwaga: możesz użyć peervpn do wielu niezależnych sieci VPN na serwerze)

bmullan
źródło
0

Miałem dokładnie ten sam problem lata temu. Miałem ~ 30 biur, z których wszystkie musiały mieć możliwość bezpośredniej komunikacji, ale były one skonfigurowane w konfiguracji „hub-and-speak”. Napisałem narzędzie w Pythonie do automatycznego generowania n x (n-1)/2liczby połączeń w OpenVPN między biurami. Później dodałem obsługę routingu RIP między stronami po dziwnym problemie Comcast, w którym jedno biuro widziało wszystkie inne, ale nie główne. Wreszcie dodałem możliwość automatycznego generowania zwrotnego DNS dla adresów IP łącza oraz możliwość wypychania pakietów do każdego routera.

Spójrz na OpenMesher . Właśnie dziś rano postanowiłem odkurzyć go na nadchodzący projekt. Mam nadzieję, że robi to, co chcesz. Jeśli nie, zgłoś problem, a pomogę.

Aaron C. de Bruyn
źródło