aboutsummaryrefslogtreecommitdiffstats
path: root/ipv6-6to4.howto
blob: 28543ff81992f9592657fed98e0df506492dfbfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
v1.1 18th Apr 2001, Pekka Savola <pekkas@netcore.fi>
v1.2 23th May 2001, Pekka Savola <pekkas@netcore.fi>

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.