cunicu
A zeroconf peer-to-peer mesh VPN using Wireguard
cunīcu is a user-space daemon managing WireGuard interfaces to establish a mesh of peer-to-peer VPN connections in harsh network environments. To achieve this, cunīcu utilizes a signaling layer to exchange peer information such as public encryption keys, hostname, advertised networks, and reachability information to automate the configuration of the networking links. From a user perspective, cunīcu alleviates the need of manual configuration such as exchange of public keys, IP addresses, endpoints, etc.. Hence, it adopts the design goals of the WireGuard project, to be simple and easy to use. Thanks to Interactive Connectivity Establishment (ICE), cunīcu is capable of establishing direct connections between peers that are located behind NAT firewalls such as home routers. In situations where ICE fails, or direct UDP connectivity is not available, cunīcu falls back to using TURN relays to reroute traffic over an intermediate hop or encapsulate the WireGuard traffic via TURN-TCP.