v1.1 18th Apr 2001, Pekka Savola v1.2 23th May 2001, Pekka Savola HOW TO SET UP IPV6 WITH 6TO4 ---------------------------- 6TO4 IN SHORT ------------- 6to4 is a method of creating automatic IPv6 tunnels. You can connect to IPv6 Internet very easily without a need for a manually configured tunnel. For every globally unique IPv4 address, there exists a mapping for a subnettable /48 network (2^16 for subnetting, 2^64 bits for hosts). Return route can sometimes be non-optimal, leading to higher round-trip times. See below for references and more information. ASSUMPTIONS ----------- 1. You're running Red Hat Linux 7.1 or later. This is required for correct IPv6 by default settings, and IPv6 being enabled as a kernel module by default. 2. Your initscripts >= 6.02, for 6to4 support. 3. You have a static, globally unique IPv4 address. This is not an absolute requirement, but the only scenario discussed here. 4. Protocol 41 (IPv6) is not being filtered in any firewall. 5. 'iproute' package is installed. This is used by default for a lot more powerful tunneling capabilities. INFORMATION NEEDED ------------------ You need to know: 1. The IPv4 address of a 6to4 relay router See: http://www.kfu.com/~nsayer/6to4/ for public ones. Here, 194.95.108.191 (6to4.ipv6.fh-regensburg.de) is used. SETTING UP THE 6TO4 CONFIGURATION --------------------------------- Now, set up the configuration as follows: 1. Add 'NETWORKING_IPV6=yes' to /etc/sysconfig/network: echo "NETWORKING_IPV6=yes" >> /etc/sysconfig/network 2. Add static routes to IPv6 Internet (this includes 6bone): echo "sit0 2000::/3" >> /etc/sysconfig/static-routes-ipv6 NOTE: sit0 is used for 6to4 routing. 3. Edit your outbound (Internet) interface configuration. This can be e.g. ippp0, eth0, or the like. Here, eth0 is used. /etc/sysconfig/network-scripts/ifcfg-eth0: --- DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=xx.yy.zz.ww NETMASK=aa.bb.cc.dd [IPv4 settings up to this point] IPV6INIT=yes IPV6TO4INIT=yes IPV6TO4_RELAY=194.95.108.191 --- USING 6TO4 ---------- 6to4 automatic tunneling is brought up when the interface is brought up. You will see your 6to4 address prefix in device sit0 when done: inet6 addr: 2002:c15e:a001::1/48 Scope:Global Note that 'c15e:a001' is the hexadecimal representation of dotted-quad IPv4 address (IPADDR= above), here '193.94.160.1'. NOTE: iproute tools give more reliable data, try e.g. '/sbin/ip addr ls'. SUBNETTING ---------- If you want to provide IPv6 for your LAN using your Linux system as a router, this can be done rather easily with 6to4. You will need to enable IPv6 forwarding (IPV6FORWARDING=yes in /etc/sysconfig/network) and install a router advertisement daemon. One such, 'radvd' is available in Powertools. You must configure the prefix your IPv4 maps to (see sit0 above) in /etc/radvd.conf or use certain automatic hooks. This is not covered here in detail; see radvd.conf(5) and /etc/sysconfig/network-scripts/ifup-ipv6 for details. MORE INFORMATION ---------------- http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html is a good source of IPv6 related Linux-information. ftp://ftp.isi.edu/in-notes/rfc3056.txt ("Connection of IPv6 Domains via IPv4 Clouds") is the RFC about 6to4. ftp://ftp.itojun.org/pub/paper/draft-itojun-ipv6-transition-abuse-01.txt ("Possible abuse against IPv6 transition technologies") explains some security considerations in 6to4.