GNU Virtual Private Ethernet
GVPE creates a virtual ethernet (broadcasts supported, any protocol that works with a normal ethernet should work with GVPE) by creating encrypted host-to-host tunnels between multiple endpoints.
Unlike other virtual private "network" solutions which merely create a single tunnel, GVPE creates a real network with multiple endpoints.
It is designed to be very simple and robust (cipher selection done at compiletime etc.), and easy to setup (only a single config file shared unmodified between all hosts).
GVPE can also be used to tunnel into some vpn network using a variety of protocols (raw IP, UDP, TCP, HTTPS-proxy-connect, ICMP and DNS). It is, however, primarily designed to sit on the gateway machines of company branches to connect them together.