Subject: Re: NNCP road warrior

From: Koushik Roy <[email-masked]>
Date: Fri, 07 Jan 2022 23:17:49 -0800

John Goerzen <[email-masked]> writes:

> One is Yggdrasil network, https://yggdrasil-network.github.io/ .  This
> is an overlay network atop the public Internet, that is fully end-to-end
> encrypted all the time.  More particularly, the entire global network is
> an auto-healing mesh, so if you take your laptop from home to work, it
> will find a new path online (or re-establish a link with the same peer)
> and your IP address remains the same.  IP addresses are v6 only and are
> derived from the node's public key, so each person gets basically a
> globally-routable static IP, plus also a /64 subnet if you like.  You
> can also run Yggdrasil in an entirely closed network by simply never
> connecting any of the nodes to a public peer on the main network (though
> the moment one node is connected to the main network, they all are
> reachable there via mesh routing)

I've joined the public mesh for this before and played around. It never
occurred to me to try to use this (or CJDNS) and have the underlying
mesh handle the routing for me. This sounds like a pretty great idea
honestly. It might even be a fun "social" way for folks to peer on
NNCP. Offering a handoff between an NNCP net on Hyperboria or the
Yggdrasil equivalent and a separate NNCP network on the regular net
might be interesting too. Lots of possibilities here!

>
> Tinc vpn https://tinc-vpn.org/ is another option.  While it came along
> long before Yggdrasil, I think of it as sort of a private-only
> alternative.  Like Yggdrasil, it has mesh routing so you can reach any
> of your nodes via any others so long as there is a path somewhere,
> somehow.  Unlike Yggdrasil, it's aimed more at traditional VPN uses and
> lets you specify your own IP ranges, routing between networks, etc.

The reason I didn't want to go with a Tinc/OpenVPN/WireGuard solution is
configuration. Configuring routes is a pain, and I don't want to have to
remember different IPs in different situations. Though when I phrase it
this way, it makes it sound like a silly first-world problem :) It's
just that alternatives like CJDNS and Yggdrasil exist. I've used OpenVPN
in the past when I was traveling in a country that was heavy-handed with
internet censorship and offered access to friends when traveling in
censored countries as well.

> A sort of third option is Tor.  I've tried this for awhile, and operate
> a couple of nncp-daemons as a Tor onion service.  This achieves the
> portability I'm looking for, but is slow.  EXTREMELY slow.  So slow, in
> fact, that NNCP seems to have a 10-second timeout on connect that often
> gets triggered.

Tor seems a bit overkill here? NNCP is already doing its own
encryption. The onion routing doesn't seem as useful, but then again, it
depends on your use case. It would be interesting to setup an NNCP
hidden service that hands messages off to Usenet. Or this would only be
interesting to me and I'm weird, which is a perfectly acceptable result.

Thanks for the recommendation I have no idea why I completely forgot
about CJDNS and Yggdrasil. I'm probably going to set those up instead
and mesh my machines together and use NNCP over that. I can't believe I
missed something so obvious. I never ended up doing any measurements to
see what the overhead incurred by the mesh was the last time I was
playing around with CJDNS and Yggdrasil, so this seems like a good
opportunity to.

- Koushik