1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
2<!-- $Id: INTRO.html,v 1.5 2008/03/31 09:18:15 psavola Exp $ -->
3<html lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>RADVD Introduction</title>
7</head>
8
9<body>
10<h1>RADVD Introduction</h1>
11
12<p>
13by <a href="mailto:lf@elemental.net">Lars Fenneberg</a> et al. Updated
142002-01-12.
15</p>
16
17<p>
18<a href="http://www.ietf.org/rfc/rfc2460.txt">IPv6</a> has a lot more
19support for autoconfiguration than
20<a href="http://www.ietf.org/rfc/rfc791.txt">IPv4</a>. But for this
21autoconfiguration to work on the hosts of a network, the <em>routers</em>
22of the local network have to run a program which answers the
23autoconfiguration requests of the hosts.
24</p>
25
26<p>
27On Linux this program is called
28<a href="http://v6web.litech.org/radvd/">radvd</a>, which stands for
29Router ADVertisement Daemon. This daemon listens to Router Solicitations
30(RS) and answers with Router Advertisement (RA). Furthermore unsolicited
31RAs are also send from time to time.
32<a href="http://www.ietf.org/rfc/rfc4861.txt">RFC 4861</a> defines most
33functions of radvd.
34</p>
35
36<p>
37Router Advertisements contain information, which is used by hosts to
38configure their interfaces. This information includes address prefixes,
39the MTU of the link and information about default routers.
40</p>
41
42<p>
43Of course the routers can't autoconfigure themselves, so the information
44on the routers has to be provided by the administrator of the system.
45This is done by manually configuring the interfaces and routes and by
46configuring the router advertisement daemon.
47</p>
48
49<p>
50A small and simple configuration file for radvd might look like this:
51</p>
52
53<p>
54<pre>
55
56interface eth0
57{
58        AdvSendAdvert on;
59        prefix 2001:db8:0:1::/64
60        {
61                AdvOnLink on;
62                AdvAutonomous on;
63        };
64};
65
66</pre>
67
68<p>
69It says that radvd should advertise (AdvSendAdvert on) the prefix
702001:db8:0:1:: which has a lenght of 64 on the interface eth0.
71Also the prefix is marked as autonomous (AdvAutonomous on) and as on-link
72(AdvOnLink on). The both currently default to enabled but are included
73here for introductory purposes; it isn't necessary to define them.
74All the other options are left on their default values.
75</p>
76
77<p>
78Autonomous means that the prefix can be used for automatic address
79configuration and on-link means that the hosts can assume that all the hosts
80which use this prefix are reachable via the interface on which the host
81received this RA.
82</p>
83
84<p>
85The prefix must be 64 bits long (apart from very few exceptions), as dictated by
86<a href="http://www.ietf.org/rfc/rfc2464.txt">RFC 2464</a> and other
87standards for different link-layer technologies. For more
88details, see <a href="http://www.ietf.org/rfc/rfc4862.txt">RFC 4862</a>
89(IPv6 Stateless Address Autoconfiguration) and
90<a href="http://www.ietf.org/rfc/rfc2464.txt">RFC 2464</a>
91(Transmission of IPv6 Packets over Ethernet Networks). For more information
92on configuring radvd please look at the manual pages which are included in
93the radvd distribution.
94</p>
95
96<p>
97So, when an interface on a hosts is UPed and a RA is received, the host
98can configure an address on the interface by using the prefix and
99appending the EUI-64 identifier derived from the hardware address
100(also called link-layer token). The EUI-64 identifier is simply appended
101after the prefix. For example:
102</p>
103
104<p>
105<pre>
106
107   Announced prefix:    2001:db8:0:1::
108
109   MAC address:         00:07:E9:7B:02:59
110
111   EUI-64 identifier:   0207:e9ff:fe7b:259
112
113   Configured address:  2001:db8:0:1:207:e9ff:fe7b:259
114
115</pre>
116
117<p>
118The host can also choose a default router by examining the RA.
119the rest works automatically.
120</p>
121
122<p>
123So now we've configured radvd, but we still need to configure the interfaces
124and set the routes (on the router).  There's a lot of good material on
125setting up IPv6, and the reader is encouraged to have a look
126at it; for example:
127</p>
128
129<p>
130<ul>
131<li><a href="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html">http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html</a></li>
132<li><a href="http://people.debian.org/~csmall/ipv6/setup.html">http://people.debian.org/~csmall/ipv6/setup.html</a> (for non-Debian too)</li>
133</ul>
134
135<hr>
136
137<p>
138Copyright &copy; 1997 <a href="mailto:lf@elemental.net">Lars Fenneberg</a>
139</p>
140
141</body>
142</html>
143