home | help
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  speci-
     fied 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 proto-
     col 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 cre-
     ated.

     With interface cloning mode, if -o is specified, dtcps creates  the  inter-
     faces appropriately, but prevents destroying and reuses created interfaces.

     If -U is specified, dtcps accepts request for an IPv6 over an UDP/IPv4 tun-
     nel  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 in-
     terfaces 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.  How-
     ever, 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 op-
	       tional, and if interface is specified, the interface is used  for
	       the user.
     /usr/local/etc/qpopper/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-read-
	       able.

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 max-
     imum 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. :-)

				   Jan 6, 2006				DTCPS(8)

home | help