OnionCat is a Tor-based decentralized peer-to-peer VPN. It acts like a single IPv6 subnet hidden inside Tor permitting a hidden service to be transformed into an IPv6 address on the subnet. In BSD land this shows up as a tun(4) device. One can do udp (dns, nfs, etc) or tcp or even IPSec between OnionCat instances (and only between OnionCat instances; not out to the clearnet).
As the OpenBSD ports tree states:
OnionCat creates a transparent IP layer on top of Tor's hidden services. It transmits any kind of IP-based data transparently through the Tor network on a location hidden basis. You can think of it as a point-to-multipoint VPN between hidden services.
More info can be found here. OnionCat is not officially associated with the Tor Project.
I try an alternative simplistic explanation.
- You need to set up a hidden service.
- Your partner needs to set up a hidden service.
- connects from hidden service to hidden service.
- provides an IPv6 for you
- provides an IPv6 for your partner
Now you can use IPv6, TCP and UDP with your partner.
What is OnionCat NOT: