dtcpc implements Dynamic Tunnel
Configuration Protocol (DTCP for short) proposed by Trumpet.
dtcpc will first ask the DTCP password to the user.
Then, the program will try to connect DTCP server on
server, to IPv4 TCP port 20200 (or port specified by
port), login as DTCP client, and maintain IPv6 over
IPv4 tunnel connection.
The spec defines several kind of tunnel requests.
dtcpc will request tunnel typed
tuntype to the DTCP server. The default value for
tuntype is
“tunnelonly”. For tunnel types, please
refer to
dtcps(8).
By default, dtcpc dynamically creates
gif as tunnelling device on such platform as
interface cloning is available. You can disable use of interface cloning by
using -c. When -o is
specified, dtcpc creates an interface dynamically
but don't destroy it at exit. On the platform where interface cloning is not
available, dtcpc will use
gif0 as tunnelling device. This can be altered by
using -i.
If -U is specified, an IPv6 over an
UDP/IPv4 tunnel is created instead of generic tunnel. An UDP port is
specified by -b, and its default is
“4028”. An IPv6 over an UDP/IPv4 tunnel requires
Netgraph. (Experimental)
-r specifies how the default route is
configured. If “static” is specified
as routecommand, dtcpc uses
the
route(8)
command to install the default route towards the corresponding tunnel
interface. This is the default behavior. If
“solicit” is specified,
dtcpc will call the
rtsol(8)
command to send router solicitation messages toward the other end of the
tunnel.
By default, when routecommand is
“static”, the default route is
configured. But, in some situation, you may want to install the specific
routes instead of the default route towards the corresponding tunnel
interface. You can specify the destination with -R
destination. The destination is
an acceptable form by
route(8),
like as “3ffe:505:2:: -prefixlen 48”.
If you are running recent FreeBSD, it can be simplifed by
“3ffe:505:2::/48”. The
destination may be comma separated list.
-u is needed when DTCP user account is
different from the login name on the host.
When -A address is
specified, address is added to the corresponding
tunnel interface. The address is a acceptable form by
ifconfig(8),
like as “3ffe:505:2:ffff::1 -prefixlen
128”. It may help some situation. The
address may be comma separated list.
-n may save the user lives behind NAT that
maps private IPv4 address to global IPv4 address.
dtcpc can be configured to do
prefix-delegation. When -P
prefix-delegation is specified,
dtcpc initialize the LAN interfaces. The format of
prefix-delegation is a comma separated list of the
interface, SLA-id, host-id and prefixlen. And the interface, SLA-id, host-id
and prefixlen should be written as a slant separated list such as
“fxp0/1/0:0:0:1”. If you omit host-id, EUI-64 address is
assumed to be used. If you omit prefixlen, 64 is assumed.
When prefix-delegation is enabled and
rtadvd(8)
is not running, dtcpc invokes
rtadvd(8)
appropriately. You can disable this behvior by specifying
-a.
When -D is specified,
dtcpc becomes daemon.
By default, when connection to the server is closed,
dtcpc will exit. -l is
specified, dtcpc doesn't exit on connection close,
and continuously tries to re-connect.
If dtcpc is invoked as daemon, the process
ID of the dtcpc are held in
/var/run/dtcpc.pid by default. You may want to
specify -f file to change the
file name.
When -m mtu is
specified, set the MTU of the tunnel to mtu. The
default is “1280”.
-d puts dtcpc to
debug mode.
Upon receipt of signal SIGHUP,
dtcpc will try to reconnect to the DTCP server.