On a node, there exist different network devices. They can be collected in classes
Physically bounded, like eth0, tr0
Virtually existing, like ppp0, tun0, tap0, sit0, isdn0, ippp0
Physically bounded interfaces like Ethernet or Token-Ring are normal ones and need no special treatment.
Virtually bounded interfaces always need special support
These interfaces are normally named sitx. The name sit is a shortcut for Simple Internet Transition. This device has the capability to encapsulate IPv6 packets into IPv4 ones and tunnel them to a foreign endpoint.
sit0 has a special meaning and cannot be used for dedicated tunnels.
PPP interfaces get their IPv6 capability from an IPv6 enabled PPP daemon.
IPv6 capability for HDLC with encapsulation ip is already built-in in the kernel
ISDN PPP interfaces (ippp) aren't IPv6 enabled by kernel. Also there are also no plans to do that because in kernel 2.5.+ they will be replaced by a more generic ppp interface layer.
Like mentioned earlier, this interfaces don't support IPv6 transport (sending is OK, but dispatching on receiving don't work).
Ether-tap devices are IPv6-enabled and also stateless configured. For use, the module “ethertap” has to be loaded before.
Currently not tested by me.
01/2002: Aren't currently supported by vanilla kernel, supported by USAGI extension
Did I forget an interface?...