IPOP

IPOP
Oryginalni autorzy Renato Figueiredo
Magazyn
Napisane w Python , C , Bash
Typ VPN
Licencja Licencja MIT
Strona internetowa ipop-project .org

IPOP (IP-Over-P2P) to zorientowana na użytkownika wirtualna sieć typu open source , umożliwiająca użytkownikom końcowym definiowanie i tworzenie własnych wirtualnych sieci prywatnych (VPN). Wirtualne sieci IPOP zapewniają kompleksowe tunelowanie IP lub Ethernet przez łącza „TinCan” i są zarządzane za pomocą kontrolnego interfejsu API w celu tworzenia różnych nakładek VPN zdefiniowanych programowo .

Historia

IPOP rozpoczął się jako projekt badawczy na Uniwersytecie Florydy w 2006 roku. Podczas projektowania i wdrażania pierwszej generacji IPOP został zbudowany na szczycie ustrukturyzowanych łączy P2P zarządzanych przez bibliotekę C# Brunet . W swoim pierwszym projekcie IPOP opierał się na ustrukturyzowanej sieci nakładkowej P2P firmy Brunet do przesyłania wiadomości peer-to-peer, powiadomień, przechodzenia NAT i tunelowania IP. IPOP Brunet jest nadal dostępny jako kod open source ; jednak architektura i implementacja IPOP ewoluowały.

Od września 2013 r. projekt jest finansowany przez National Science Foundation w ramach programu SI2 (Software Infrastructure for Sustained Innovation), aby udostępnić go jako „element oprogramowania naukowego” typu open source do badań nad przetwarzaniem w chmurze. Projekt drugiej generacji IPOP obejmuje standardy (XMPP, STUN, TURN) i biblioteki ( libjingle ), które ewoluowały od początku projektu, tworząc tunele P2P – które nazywamy łączami TinCan. Obecna implementacja IPOP oparta na TinCan jest oparta na modułach napisanych w C/C++, które wykorzystują libjingle do tworzenia linków TinCan i udostępniania zestawu interfejsów API modułom kontrolera, które zarządzają konfiguracją, tworzeniem i zarządzaniem linkami TinCan. W celu zwiększenia modułowości moduł kontrolera działa jako odrębny proces od modułu C/C++, który implementuje łącza TinCan i komunikuje się za pośrednictwem systemu RPC opartego na JSON; w ten sposób kontroler może być napisany w innych językach, takich jak Python.

Zobacz też

Linki zewnętrzne