|FAITH(4)||Device Drivers Manual||FAITH(4)|
faithinterface captures IPv6 TCP traffic, for implementing userland IPv6-to-IPv4 TCP relay similar to faithd(8).
Special action will be taken when IPv6 TCP traffic is seen on a
router, and the routing table suggests routing it to the
faith interface. In this case, the packet will be
accepted by the router, regardless of the list of IPv6 interface addresses
assigned to the router. The packet is captured by an IPv6 TCP socket, if it
IN6P_FAITH flag turned on and it has
matching address/port pairs. Thus,
captured IPv6 TCP traffic to be relayed to some specific destination
addresses. Userland programs, such as
faithd(8) can use this
behavior to relay IPv6 TCP traffic to IPv4 TCP traffic. The program can
accept some specific IPv6 TCP traffic, perform
getsockname(2) to get
the IPv6 destination address specified by the client, and perform
application-specific address mapping to relay IPv6 TCP to IPv4 TCP.
IN6P_FAITH flag on an IPv6 TCP socket
can be set by using
setsockopt(2), with level
IPPROTO_IPV6 and optname set to
To handle error reports by ICMPv6, some of the ICMPv6 packets
routed to the
faith interface will be delivered to
IPv6 TCP, as well.
To understand how
faith can be used, take
a look at the source code of
faith interface implements a
potentially dangerous operation, great care must be taken when configuring
faith interface. To avoid possible misuse, the
net.inet6.ip6.keepfaith must be set to
1 prior to use of the interface. When
0, no packet is captured by the
faith interface is intended to be used
on routers, not on hosts.
Jun-ichiro itojun Hagino and Kazu Yamamoto, An IPv6-to-IPv4 transport relay translator, RFC 3142, June 2001, ftp://ftp.isi.edu/in-notes/rfc3142.txt.
|May 31, 2007||OpenBSD-5.1|