DragonFly On-Line Manual Pages
DTCPS(8) DragonFly System Manager's Manual DTCPS(8)
NAME
dtcps - Dynamic Tunnel Configuration Protocol daemon
SYNOPSIS
dtcps [-cdDoU] [-b udp-port] [-g address] [-i interfaces]
[-I udp-interface] [-p port] [prefix]
DESCRIPTION
dtcps implements Dynamic Tunnel Configuration Protocol (DTCP for short)
proposed by Trumpet. This listens to IPv4 TCP port 20200 (or port
specified by port), for DTCP client connections.
dtcps will use APOP password database file (pop.auth) as password
database.
Clients requesting tunnel typed "tunnelonly" will get simple IPv6-over-
IPv4 tunnel. No global address will be assigned to the configured tunnel
link. It is up to administrators to assign global IPv6 address to the
client host, or to the client network. Static assignment by hand or use
of router advertisement packet should do the trick. Use of router
renumbering protocol may be a candidate.
Clients requesting tunnel typed "network" aka "tunnelroute" will get
IPv6-over-IPv4 tunnel with appropriate static route for the connected
user installed. This can be used for prefix delegation. The routes for
each user is specified in /usr/local/etc/routetable. No global address
will be assigned to the configured tunnel link.
If prefix argument is specified, dtcps will accept tunnel request for
"host" tunnel type. The tunnel type needs a pair of temporary global
IPv6 address for the configured tunnel link, like 3ffe:ffff:ffff:ffff::5
and 3ffe:ffff:ffff:ffff::6. The address pair will be assigned from
specified prefix. Prefixlen for the temporary global address will be
128, and it will be computed by using interface number of tunnel
interface.
dtcps assumes all gif interfaces are available to use. If -i interfaces
argument is specified, dtcps will use only specified interfaces.
interfaces accepts regular expression.
If interfaces is not regular expression but an exact interface name,
dtcps acts as interface cloning mode which dtcps creates and deletes
interfaces appropriately. In this mode, interfaces means a lower
interface to be created.
With interface cloning mode, if -o is specified, dtcps creates the
interfaces appropriately, but prevents destroying and reuses created
interfaces.
If -U is specified, dtcps accepts request for an IPv6 over an UDP/IPv4
tunnel as well. The lower value of an UDP port is specified by -b, and
its default is "4028". dtcps assumes all netgraph interfaces are
available to use. If -I interface argument is specified, dtcps creates
and deletes interfaces appropriately. interface means a lower interface
to be created. An IPv6 over an UDP/IPv4 tunnel requires Netgraph.
(Experimental)
You may want to use specific interface for certain user. You can specify
the interface to 3rd field of /usr/local/etc/routetable. It can be used
not only for tunnel typed "network" but also "tunnelonly" and "host". If
you don't want to assign prefix for your user, you can specify `-' for
2nd field.
-D prevents dtcps from daemonizing on invocation.
-c disables interface cloning mode.
-d puts dtcps into debug mode.
In normal situation, you cannot serv DTCP from behind your NAT box.
However, you may serv DTCP in such situation with the help of NAT box.
In such case, you need to respond actual global address to a client. -g
address is specified, dtcps responds the address as the actuall IPv4
global address of your NAT box.
RETURN VALUES
dtcps will exit with positive value on errors.
FILES
/usr/local/etc/routetable
This file is used for "network" tunnel type, and maps between
the user and the assigned IPv6 prefix for the user. The format
is a space separated list of the user name, the assigned IPv6
prefix and the interface. The IPv6 prefix is a pair of IPv6
address and prefixlen like addr/prefixlen. Multiple IPv6
prefixes can be specified by using comma as separator. The
interface is optional, and if interface is specified, the
interface is used for the user.
/usr/local/etc/pop.auth
The APOP password database.
/var/run/dtcps.pid
Contains the process ID of the dtcps listening for connections.
The content of this file is not sensitive; it can be world-
readable.
SEE ALSO
daemon(3), gif(4), dtcpauth(8), dtcpc(8), gifconfig(8), ifconfig(8),
qpopauth(8)
HISTORY
The dtcps command first appeared in WIDE/KAME IPv6 protocol stack kit.
"network" tunnel type and other useful facilities were added by Hajimu
UMEMOTO <ume@mahoroba.org>.
BUGS
DTCP needs to keep TCP connection between server and client. Therefore,
maximum number of client served by single dtcps will be bounded by the
maximum number of filehandle allowed to a process (100 or so).
dtcps invokes several external commands, like ifconfig(8) and
gifconfig(8). Command search path must be configured properly before
invoking dtcps.
dtcps requires qpopauth shipped with qpopper to maintain APOP password
database. There is dtcpauth for this purpose. Though the ability of
dtcpauth is still limitted, you can use it for the replacement for
qpopauth.
dtcps was written in Ruby. :-)
January 6, 2006