U6RD(8)                 NetBSD System Manager's Manual                 U6RD(8)

NAME
     u6rd -- user-space 6rd (RFC 5569) implementation

SYNOPSIS
     u6rd [-dFhV] [-r v4_common_len] [-u user] tunN prefix/prefixlen
          relay_v4_addr my_v4_addr

DESCRIPTION
     The u6rd daemon is a userland implementation of 6rd (RFC 5569) for 6rd
     customer edge routers.  It does not provide the functionality of 6rd
     relay routers.

     It runs in the user-space using the tun(4) interface and the raw socket
     interface.

     The following options are available:

     -d      Output debug messages to stderr.  This option is usually combined
             with -F, which prevents stderr from being redirected to
             /dev/null.

     -F      Run in the foreground.  The u6rd program does not detach itself
             from the terminal and does not become a daemon.  Log messages are
             output to the stderr in addition to syslog.  No PID file is cre-
             ated.

     -h      Show simple help messages and exit.

     -r v4_common_len
             Specify the common prefix length of the IPv4 addresses in your
             6rd addressing domain.  This should not be confused with the
             length of the netmask.  The default value is 0.

     -u user
             Run with the privilege of the specified user instead of root.

     -V      Show the version and exit.

     The argument prefix/prefixlen specifies the 6rd prefix, which does not
     count the embedded IPv4 address part.  relay_v4_addr is the IPv4 address
     of the 6rd relay router.  my_v4_addr is your global IPv4 address.

     Currently, u6rd does only minimal preparation;
     o   setting the MTU of the interface to 1280, and
     o   setting UP and RUNNING flags on it.
     You need to create a tun interface, set parameters on it, and modify the
     routing table by yourself.  See EXAMPLES section.

     The u6rd daemon exits on SIGTERM or SIGINT.  Packet counts are logged to
     syslog (with LOG_INFO priority) on SIGINFO.

FILES
     /var/run/u6rd.pid
               The PID file of the current instance of the daemon.

EXAMPLES
     Example parameters in this section:
     The 6rd prefix from your ISP
                   2001:db8::/32
     The 6rd relay router of your ISP
                   198.51.100.1
     Your global IPv4 address
                   203.0.113.1

     Your 6rd delegated prefix is calculated to be 2001:db8:cb00:7101::/64.
     Note that, converting from IPv4 decimal to IPv6 colon hexadecimal nota-
     tion, 203.0.113.1 corresponds to cb00:7101.

     The IPv6 default route in the following examples (2001:db8::1) was chosen
     semi-arbitrary within the 6rd prefix but outside of delegated prefix, so
     that all IPv6 packets are routed into the tun0 interface.  It could be
     specified explicitly by the "-ifp tun0" option.

   FreeBSD 9.0
     # ifconfig tun0 create
     # ifconfig tun0 inet6 2001:db8:cb00:7101::1/32
     # ifconfig tun0 inet6 -nud
     # route add -inet6 default 2001:db8::1
     # u6rd -u nobody tun0 2001:db8::/32 198.51.100.1 203.0.113.1

     FreeBSD's tun driver will reset its address after the owning process
     exits.  When you restart u6rd, remember to reconfigure the address.

   FreeBSD 9.0 (configuring at start up)
     /etc/rc.conf
           cloned_interfaces="tun0"
           ifconfig_tun0_ipv6="inet6 2001:db8:cb00:7101::1/32 -nud"
           ipv6_defaultrouter="2001:db8::1"
     /etc/start_if.tun0
           /usr/local/sbin/u6rd -u nobody tun0 2001:db8::/32 \
                   198.51.100.1 203.0.113.1

   NetBSD 5.1
     # ifconfig tun0 create
     # ifconfig tun0 inet6 2001:db8:cb00:7101::1/32
     # ndp -i tun0 -- -nud
     # sysctl -w net.inet6.tcp6.mss_ifmtu=1
     # route add -inet6 default 2001:db8::1
     # u6rd -u nobody tun0 2001:db8::/32 198.51.100.1 203.0.113.1

     Setting net.inet6.tcp6.mss_ifmtu to 1 is recommended.

   Mac OS X 10.7 (Darwin 11.3.0)
     # u6rd -u nobody utun0 2001:db8::/32 198.51.100.1 203.0.113.1
     # ifconfig utun0 inet6 2001:db8:cb00:7101::1/32
     # ndp -i utun0 -- -nud
     # route add -inet6 default 2001:db8::1

     The utun device, instead of tun, is used on Mac OS X.  A utun interface
     is created by the daemon (cannot be created with ifconfig), so the inter-
     face address and the default route need to be configured after executing
     the daemon.

   More complex example on FreeBSD
     Parameters are same except that the common prefix length is 8 bits in
     your 6rd addressing domain.  In this case, the delegated prefix is con-
     catenation of the 6rd prefix (32 bits) and unique bits of your IPv4
     address (32 - 8 = 24 bits), so its length is 56 bits.

     # ifconfig tun0 create
     # ifconfig tun0 inet6 2001:db8:71:100::1/32
     # ifconfig tun0 inet6 -nud
     # ifconfig em0 inet6 2001:db8:71:101::1/64
     # route add -inet6 default 2001:db8::1
     # route add -inet6 2001:db8:71:100:: -prefixlen 56 ::1 -reject
     # u6rd -u nobody -r 8 tun0 2001:db8::/32 198.51.100.1 203.0.113.1

SEE ALSO
     tun(4), ifconfig(8), route(8), sysctl(8)

     B. Carpenter and K. Moore, Connection of IPv6 Domains via IPv4 Clouds,
     RFC 3056, February 2001.

     P. Savola and C. Patel, Security Considerations for 6to4, RFC 3964,
     December 2004.

     R. Despres, IPv6 Rapid Deployment on IPv4 Infrastructures (6rd), RFC
     5569, January 2010.

     W. Townsley and O. Troan, IPv6 Rapid Deployment on IPv4 Infrastructures
     (6rd) -- Protocol Specification, RFC 5969, August 2010.

AUTHORS
     KAMADA Ken'ichi.

BUGS
     o   Relay router functionality is not (and will never be) implemented.
     o   Some policies (e.g., rejecting private addresses) are hard-coded.
         You need to modify the source code to change those policies, when,
         for example, you want to use private addresses as described in Sec-
         tion 4 of RFC 5569.
     o   Packets are discarded silently without returning ICMPv6 messages.

NetBSD 6.1.1                   January 22, 2014                   NetBSD 6.1.1