DTCPCLIENT(8)

NAME
dtcpclient - Dynamic Tunnel Configuration Protocol client

SYNOPSIS
dtcpclient [-b udp-port] [-B nat-port] [-d] [-D] [-f pidfile] [-l] [-m mtu] [-n] [-p port] [-s script] [-t tuntype] [-u user] [-U] server

DESCRIPTION
dtcpclient implements Dynamic Tunnel Configuration Protocol (DTCP for short) proposed by Trumpet. dtcpclient will first ask the DTCP password to the user. Then, the program will try to connect DTCP server via IPv4 TCP, login as DTCP client, and maintain IPv6 over IPv4 tunnel connection.

The following options are available:

-b port
    Sets the port number to bind on local for an UDP tunnel to port. The default is “4028”.

-B port
    If you are behind NAT which is statically configured to forward the UDP tunnel traffic arrived to the specific port, sets the port number to port. This option is meaningful only with -U option, and is usually used with -n. The default is not defined.

-D  dtcpclient becomes daemon.

-d  Put dtcpclient to debug mode.

-f file
    If dtcpclient is invoked as daemon, the process ID of the dtcpclient are held in /var/run/dtcpclient.pid by default. You may want to change the file name.

-l  By default, when connection to the server is closed, dtcpclient will exit. When this option is specified, dtcpclient doesn't exit on connection close, and continuously tries to re-connect.

-m mtu
    Sets the MTU of the tunnel to mtu. The default is “1280”.

-n  By default, dtcpclient checks if the IPv4 address which DTCP server recognized is equal to the actuall IPv4 address of your box. This check can be ommitted by specifying this option. It may save the user lives behind NAT that maps private IPv4 address to global IPv4 address.

-p port
    Sets the port number to port. The default is “20200”.

-s script
    Specify the command to invoke on DTCP session is established or closed. The default is /usr/pkg/sbin/dtcpclient-script.

-t tuntype
    The spec defines several kind of tunnel requests. dtcpclient will request tunnel typed tuntype to the DTCP server. “tunnelonly”, “host” and “network” are available for tuntype. The default value is “tunnelonly”.

-u user
    Specifies the user. It is needed when DTCP user account is different from the login name on the host.

-U  By default, dtcpclient creates a generic tunnel. If this option is set, dtcpclient creates an IPv6 over an UDP/IPv4 tunnel instead. An IPv6 over an UDP/IPv4 tunnel requires Netgraph. (Experimental)

server
    DTCP server which dtcpclient try to connect.

Upon receipt of signal SIGHUP, dtcpclient will try to reconnect to the DTCP server.

RETURN VALUES
dtcpclient will exit with positive value on errors.

PARAMETERS PASSED TO SCRIPTS
The invoked scripts get passed these parameters:

state
    Why this script is called. Possible state are “up” and “down”.

server
    DTCP server which dtcpclient connect to.

myaddr
    My actuall IPv4 address.

tuntype
    The tunnel type. The value is one of “tunnelonly”, “host” or “network”

me  My IPv4 address which DTCP server recognize.

her The destination IPv4 address of the tunnel.

me6 The IPv6 address for local tunnel end point if this is a “host” tunnel type or numbered tunnel when tunnel type is “network”.

her6
    The IPv6 address for remote tunnel end point if this is a “host” tunnel type or numbered tunnel when tunnel type is “network”.

prefix
    The IPv6 prefix assigned to local network when this is a “network” tunnel type .

FILES
/usr/pkg/etc/dtcpclient.auth
    You can specify your password to connect to DTCP server in this file. If your password is found in this file, dtcpclient does not ask for your password. The format is a colon-separated list of the server name, the user name and the password.
/usr/pkg/sbin/dtcpclient-script
    Default script invoked for setup or cleanup tunnel when DTCP session is established or closed.
/var/run/dtcpclient.pid
    Contains the process ID of the dtcpclient listening for connections. The content of this file is not sensitive; it can be world-readable. This file name may be changed by -f option.

SEE ALSO
dtcps(8)

AUTHOR
Hajimu UMEMOTO <ume@mahoroba.org>.

BUGS
dtcpclient will not work if you are behind a NAT box ( This is a protocol feature, not a bug). -n may help you on such case. But, it is still depend on the behavior of your NAT box.