]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/integration/ppp.texi
PPP example
[nncp.git] / doc / integration / ppp.texi
diff --git a/doc/integration/ppp.texi b/doc/integration/ppp.texi
new file mode 100644 (file)
index 0000000..d5076c7
--- /dev/null
@@ -0,0 +1,78 @@
+@node PPP
+@section Serial connection
+
+It is not trivial to run online @command{nncp-daemon},
+@command{nncp-call} and @command{nncp-caller} commands over the serial
+link, because it is link without built-in error detection. For efficient
+usage you have to use some kind of window-sliding error correction
+protocol, like Kermit, ZMODEM, UUCP's g-protocol and similar well known
+ones.
+
+However TCP is already satisfying and existing protocol for the same
+purposes. So it would be more easier to bring up the IP interconnection
+and use TCP over it. Most distributions already have
+@url{https://en.wikipedia.org/wiki/Point-to-point_protocol, PPP}
+protocol out-of-box.
+
+Ordinary man page for @command{ppp} in FreeBSD is enough for being able
+to setup it:
+
+@itemize
+
+@item Enable PPP-aware default terminal to run @command{ppplogin} script:
+
+@example
+/etc/gettytab:
+    default:pp=/usr/local/bin/ppplogin:...
+@end example
+
+@example
+/usr/local/bin/ppplogin:
+    #!/bin/sh
+    exec /usr/sbin/ppp -direct incoming
+@end example
+
+@item Enable listening on necessary UART:
+
+@example
+/etc/ttys:
+    ttyU0 "/usr/libexec/getty 3wire.115200" vt100 on
+@end example
+
+@item
+Create @code{incoming} PPP profile, allowing authenticated @code{ppp}
+user to log in:
+
+@example
+/etc/ppp/ppp.conf:
+    incoming:
+        allow ppp
+        disable deflate pred1 mppe protocomp vjcomp ipcp dns
+        enable lqr # null-modem cables might not have carrier detection
+/etc/ppp/ppp.secret:
+    ppp        PASSWORD
+@end example
+
+@item
+Configure PPP client to access that server:
+
+@example
+/etc/ppp/ppp.conf:
+    outgoing:
+        set device /dev/cuaU0
+        set speed 115200
+        set dial
+        set login
+        set authname ppp
+        set authkey PASSWORD
+        disable deflate pred1 mppe protocomp vjcomp ipcp dns
+        enable lqr
+@end example
+
+@end itemize
+
+That configuration does not negotiate any kind of IPv4 addresses,
+routing or DNS servers. Also all compression is turned off, because
+NNCP's traffic is encrypted and uncompressible. Only IPV6CP will
+negotiate IPv6 link-local addresses, on which you can run @ref{MCD,
+multicast discovered} daemons for simplicity.