-.TH GNUNET\-NAT 1 "October 26, 2018" "GNUnet"
-.SH NAME
-gnunet\-nat \- interact with the NAT service
-.SH SYNOPSIS
-.B gnunet\-nat
-.RI [ options ]
-.SH DESCRIPTION
-This tool allows testing various NAT traversal functions, as well as
-attempting auto\-configuration.
-.SH OPTIONS
-.IP "\-b ADDRESS, \-\-bind=ADDRESS"
+.\" This file is part of GNUnet.
+.\" Copyright (C) 2001-2019 GNUnet e.V.
+.\"
+.\" Permission is granted to copy, distribute and/or modify this document
+.\" under the terms of the GNU Free Documentation License, Version 1.3 or
+.\" any later version published by the Free Software Foundation; with no
+.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
+.\" copy of the license is included in the file
+.\" ``FDL-1.3''.
+.\"
+.\" A copy of the license is also available from the Free Software
+.\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
+.\"
+.\" Alternately, this document is also available under the General
+.\" Public License, version 3 or later, as published by the Free Software
+.\" Foundation. A copy of the license is included in the file
+.\" ``GPL3''.
+.\"
+.\" A copy of the license is also available from the Free Software
+.\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
+.\"
+.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
+.\"
+.Dd October 26, 2018
+.Dt GNUNET-NAT 1
+.Os
+.Sh NAME
+.Nm gnunet-nat
+.Nd
+interact with the NAT service
+.Sh SYNOPSIS
+.Nm
+.Op Fl b Ar ADDRESS | Fl \-bind= Ns Ar ADDRESS
+.Op Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
+.Op Fl e Ar ADDRESS | Fl \-external= Ns Ar ADDRESS
+.Op Fl i Ar ADDRESS | Fl \-in= Ns Ar ADDRESS
+.Op Fl r Ar ADDRESS | Fl \-remote= Ns Ar ADDRESS
+.Op Fl S Ar NAME | Fl \-section= Ns Ar NAME
+.Op Fl s | \-stun
+.Op Fl t | \-tcp
+.Op Fl u | \-udp
+.Op Fl W | \-watch
+.Sh DESCRIPTION
+This tool allows testing various NAT traversal functions, as well as attempting auto-configuration.
+.Sh OPTIONS
+.Bl -tag -width Ds
+.It Fl b Ar ADDRESS | Fl \-bind= Ns Ar ADDRESS
Assume that the service is (locally) bound to ADDRESS.
-.IP "\-c FILENAME, \-\-config=FILENAME"
+.It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
Use the configuration file FILENAME.
-.IP "\-e ADDRESS, \-\-external=ADDRESS"
+.It Fl e Ar ADDRESS | Fl \-external= Ns Ar ADDRESS
Assume that ADDRESS is the globally visible address of the peer.
-.IP "\-i ADDRESS, \-\-in=ADDRESS"
+.It Fl i Ar ADDRESS | Fl \-in= Ns Ar ADDRESS
Assuming we are listening at ADDRESS for connection reversal requests.
-.IP "\-r ADDRESS, \-\-remote=ADDRESS"
-Ask the peer at ADDRESS for connection reversal, using the local
-address for the target address of the reversal.
-.IP "\-S NAME, \-\-section=NAME"
+.It Fl r Ar ADDRESS | Fl \-remote= Ns Ar ADDRESS
+Ask the peer at ADDRESS for connection reversal, using the local address for the target address of the reversal.
+.It Fl S Ar NAME | Fl \-section= Ns Ar NAME
Name of section in configuration file to use for additional options.
-.IP "\-s, \-\-stun"
+.It Fl s | \-stun
Enable processing of STUN requests.
-Will try to read UDP packets from the bind address and handle the
-packets if they are STUN packets.
+Will try to read UDP packets from the bind address and handle the packets if they are STUN packets.
Will only work with UDP.
-.IP "\-t, \-\-tcp"
+.It Fl t | \-tcp
Use TCP.
-.IP "\-u, \-\-udp"
+.It Fl u | \-udp
Use UDP.
-.IP "\-W, \-\-watch"
+.It Fl W | \-watch
Watch for connection reversal requests.
-.SH EXAMPLES
-.PP
-\fBBasic examples\fR
-.TP
-# gnunet-nat -i 0.0.0.0:8080 -u
-We are bound to "0.0.0.0:8080" on UDP and want to obtain all
-applicable IP addresses.
-.TP
-# gnunet-nat -i '[::0]':8080 -t
-We are bound to "::0" on port 8080 on TCP and want to obtain all
-applicable IP addresses.
-.TP
-# gnunet-nat -i 127.0.0.1:8080 -u
-We are bound to "127.0.0.1:8080" on UDP and want to obtain all
-applicable IP addresses:
-.PP
-\fBICMP-based NAT traversal:\fR
-.TP
-# gnunet-nat -Wt -i 192.168.178.12:8080
-Watch for connection reversal request (you must be bound to NAT range
-or to wildcard, 0.0.0.0), only works for IPv4:
-.TP
-# gnunet-nat -t -r 1.2.3.4:8080 -i 2.3.4.5:8080
-Initiate connection reversal request from peer at external IPv4
-address 1.2.3.4, while we are running ourselves at 2.3.4.5:8080 (must
-use IPv4 addresses):
-.TP
-# gnunet-nat -t -r 1.2.3.4:8080 -i 0.0.0.0:8080
-Initiate connection reversal request from peer at external IPv4
-address 1.2.3.4, and let the kernel fill in whatever IPv4 address we
-happen to have:
-.PP
-\fBManual hole punching:\fR
-.TP
-# gnunet-nat -t -p AUTO:8080
+.El
+.Sh EXAMPLES
+.Ss Basic examples
+.Pp
+.Dl # gnunet-nat -i 0.0.0.0:8080 -u
+.Pp
+We are bound to "0.0.0.0:8080" on UDP and want to obtain all applicable IP addresses.
+.Pp
+.Dl # gnunet-nat -i '[::0]':8080 -t
+.Pp
+We are bound to "::0" on port 8080 on TCP and want to obtain all applicable IP addresses.
+.Pp
+.Dl # gnunet-nat -i 127.0.0.1:8080 -u
+.Pp
+We are bound to "127.0.0.1:8080" on UDP and want to obtain all applicable IP addresses:
+.Ss ICMP-based NAT traversal
+.Pp
+.Dl # gnunet-nat -Wt -i 192.168.178.12:8080
+.Pp
+Watch for connection reversal request (you must be bound to NAT range or to wildcard, 0.0.0.0), only works for IPv4:
+.Pp
+.Dl # gnunet-nat -t -r 1.2.3.4:8080 -i 2.3.4.5:8080
+.Pp Initiate connection reversal request from peer at external IPv4 address 1.2.3.4, while we are running ourselves at 2.3.4.5:8080 (must use IPv4 addresses):
+.Pp
+.Dl # gnunet-nat -t -r 1.2.3.4:8080 -i 0.0.0.0:8080
+.Pp
+Initiate connection reversal request from peer at external IPv4 address 1.2.3.4, and let the kernel fill in whatever IPv4 address we happen to have:
+.Ss Manual hole punching
+.Pp
+.Dl # gnunet-nat -t -p AUTO:8080
+.Pp
Assume manually punched NAT, but determine external IP automatically:
-.PP
-\fBSTUN-based XXX:\fR
-.TP
-# gnunet-nat FIXME -s
+.Ss STUN-based XXX:
+.Pp
+.Dl # gnunet-nat FIXME -s
+.Pp
XXX
-.SH BUGS
-Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending
-electronic mail to <gnunet\-developers@gnu.org>
-.SH SEE ALSO
-gnunet\-transport(1)
-The full documentation for
-.B gnunet
-is maintained as a Texinfo manual. If the
-.B info
-and
-.B gnunet
-programs are properly installed at your site, the command
-.IP
-.B info gnunet
-.PP
+.Sh SEE ALSO
+.Xr gnunet-transport 1
+.sp
+The full documentation for gnunet is maintained as a Texinfo manual.
+If the
+.Xr info 1
+and gnunet programs are properly installed at your site, the command
+.Pp
+.Dl info gnunet
+.Pp
should give you access to the complete handbook,
-.IP
-.B info gnunet-c-tutorial
-.PP
+.Pp
+.Dl info gnunet-c-tutorial
+.Pp
will give you access to a tutorial for developers.
-.PP
-Depending on your installation, this information is also
-available in
-\fBgnunet\fP(7) and \fBgnunet-c-tutorial\fP(7).
+.sp
+Depending on your installation, this information is also available in
+.Xr gnunet 7 and
+.Xr gnunet-c-tutorial 7 .
+.\".Sh HISTORY
+.\".Sh AUTHORS
+.Sh BUGS
+Report bugs by using
+.Lk https://bugs.gnunet.org
+or by sending electronic mail to
+.Aq Mt gnunet-developers@gnu.org .