John Goerzen
2021-08-31 03:01:06 UTC
Hi folks,
If you haven't heard of it, NNCP [1] is to UUCP approximately what ssh is to
rsh/telnet. NNCP is asynchronous, delay-tolerant for fire-and-forget secure
reliable files, file requests, Internet mail (and now NEWS) and commands
transmission. All packets are integrity checked, end-to-end encrypted,
explicitly authenticated by known participants public keys. Onion encryption is
applied to relayed packets. Each node acts both as a client and server, can use
push and poll behaviour model. NNCP can operate over a lot of transports:
Internet, USB sticks, tapes, CD-ROMs, ssh, Dropbox, etc.
So basically it's UUCP for the modern world. I've used NNCP for everything from
automated git repo synchronization [2] to hundreds-of-GB ZFS backup streams.
And I now intend to offer Usenet feeds to interested people that would like to
receive them over NNCP. The setup is easier than with UUCP, the environment is
more secure, and the approach is so similar that it needs only a tiny bit of
glue to drop in to INN in place of UUCP.
Over at https://github.com/jgoerzen/nncp-tools/blob/main/docs/usenet.org you can
find my instructions on doing this. It contains instructions both for
communicating with news.quux.org over NNCP (including prerequisites and
expectations) as well as some background on setting up NNCP for standalone
INN-based non-public networks.
It is also a sort of brief-ish tutorial on the minimum setup necessary to get
INN working with NNCP in this way. It could also, by extension, be somewhat of
a starting point for the INN side of things for those wishing to use UUCP as
well. The primary difference is using nncp-exec instead of uux, and there is a
small shell wrapper to pretend to be uux and transform the uux invocation into
an nncp-exec one. No INN patching is necessary.
For those interested, NNCP's integration page [3] discusses how to integrate it
with Postfix or Exim (agin using UUCP-like techniques), BitTorrent, etc. Over
at my nncp-tools page [4] I have information on the NNCP public relay I operate,
tunneling NNCP over other transports, and so forth.
I would welcome any corrections, contributions, feedback, etc. on any of this.
Thanks,
John
[1] http://www.nncpgo.org/ or https://nncp.mirrors.quux.org/
[2] https://changelog.complete.org/archives/10274-distributed-asynchronous-git-syncing-with-nncp
[3] https://nncp.mirrors.quux.org/Integration.html
[4] https://github.com/jgoerzen/nncp-tools
If you haven't heard of it, NNCP [1] is to UUCP approximately what ssh is to
rsh/telnet. NNCP is asynchronous, delay-tolerant for fire-and-forget secure
reliable files, file requests, Internet mail (and now NEWS) and commands
transmission. All packets are integrity checked, end-to-end encrypted,
explicitly authenticated by known participants public keys. Onion encryption is
applied to relayed packets. Each node acts both as a client and server, can use
push and poll behaviour model. NNCP can operate over a lot of transports:
Internet, USB sticks, tapes, CD-ROMs, ssh, Dropbox, etc.
So basically it's UUCP for the modern world. I've used NNCP for everything from
automated git repo synchronization [2] to hundreds-of-GB ZFS backup streams.
And I now intend to offer Usenet feeds to interested people that would like to
receive them over NNCP. The setup is easier than with UUCP, the environment is
more secure, and the approach is so similar that it needs only a tiny bit of
glue to drop in to INN in place of UUCP.
Over at https://github.com/jgoerzen/nncp-tools/blob/main/docs/usenet.org you can
find my instructions on doing this. It contains instructions both for
communicating with news.quux.org over NNCP (including prerequisites and
expectations) as well as some background on setting up NNCP for standalone
INN-based non-public networks.
It is also a sort of brief-ish tutorial on the minimum setup necessary to get
INN working with NNCP in this way. It could also, by extension, be somewhat of
a starting point for the INN side of things for those wishing to use UUCP as
well. The primary difference is using nncp-exec instead of uux, and there is a
small shell wrapper to pretend to be uux and transform the uux invocation into
an nncp-exec one. No INN patching is necessary.
For those interested, NNCP's integration page [3] discusses how to integrate it
with Postfix or Exim (agin using UUCP-like techniques), BitTorrent, etc. Over
at my nncp-tools page [4] I have information on the NNCP public relay I operate,
tunneling NNCP over other transports, and so forth.
I would welcome any corrections, contributions, feedback, etc. on any of this.
Thanks,
John
[1] http://www.nncpgo.org/ or https://nncp.mirrors.quux.org/
[2] https://changelog.complete.org/archives/10274-distributed-asynchronous-git-syncing-with-nncp
[3] https://nncp.mirrors.quux.org/Integration.html
[4] https://github.com/jgoerzen/nncp-tools