X-Git-Url: http://git.rohieb.name/skm-ma-ws1314.git/blobdiff_plain/f3ae23359ae6387d32103e650770e785173e111a..932685a2f40daa909e4080109d93cd9013bae1d9:/address-allocation.tex diff --git a/address-allocation.tex b/address-allocation.tex new file mode 100644 index 0000000..8970d2d --- /dev/null +++ b/address-allocation.tex @@ -0,0 +1,81 @@ +\subsection{Address allocation} +Considering the TCP/IP protocol suite, in order to be able to communicate on the +IP layer, a device needs to configure one of its network interfaces with +an IP address that can be reached from the network that the device wants to connect +to. There are several ways of achieving this: + +\begin{itemize} + \item The IP address is pre-selected by a human and stored in the device + configuration. This process is cumbersome when more than one device needs to + be configured, and humans have to remember which addresses are configured on + which device, and which addresses are still free to use on additional + devices. + + \item Deploying a central server that assigns network addresses + to the devices in the network, which in order query the server (for example + via broadcast or on a lower layer) for a unique address before they use the + IP layer for the first time. This technique supersedes the dependency of + human memory for mapping IP addresses to devices, and can easily be combined + with additional central configuration management, like the automatic + assignment of a static gateway, or a DNS resolver.\\ + The DHCP protocol is one example of central IP address management. + + \item A third alternative is the use of a distributed protocol which enables + the devices on the network to choose addresses in accordance with other + devices on the same network, so no IP address is used more than once. In + respect to the Internet of Things, this approach has the advantage that + those devices can easily be used in different scenarios without needing + central deployment at all, and also allowing them to change their addresses + dynamically, therefore easily reacting to changes in the network. \\ + There are two major protocols which are used for dynamic configuration of IP + addresses. In the IPv4 world, Link-Local Addressing~\cite{rfc3927} is often + used, and in IPv6 networks, Stateless Address + Autoconfiguration~\cite{rfc4862} is a fundamental feature built into every + device. + +\end{itemize} + +\todo + +\paragraph{IPv4 Link-Local Addressing} + +Link-Local Addressing uses the IPv4 subnet 169.254.0.0/16 for addressing. Every +device first chooses a random address from that address space. Then it checks if +the chosen address is used by any other device on the network by probing the +chosen address, which is usually done using the ARP protocol. If the probing +process results that the address is not used on the network (e.~g. no device +returned an ARP response during a random time interval), the device claims its +chosen address and uses it for communication on the IPv4 layer. If the chosen +address is already used, the device continues the process, subsequently choosing +a new random address and trying to claim it, until a free address has been +found. + +\paragraph{IPv6 Stateless Address Autoconfiguration} + +Similar to IPv4 Link-Local Addressing, devices configured with IPv6 Stateless +Addressing Autoconfiguration use an IPv6 address from the subnet fe80::/64. +Then, an \emph{interface identifier} is generated using the interface's MAC +address. Since MAC addresses must be unique in the network, a unique IPv6 +address is obtained by combining the subnet prefix and the interface identifier. +To ensure that no other device exists with this generated IPv6 address, the +device performs \emph{Duplicate Address Detection} on the network through +\emph{Neighbor Advertisement} messages and listening for \emph{Neighbor +Solicitation} messages. If such messages are received from other hosts, the +configured address cannot be used by the device and must be discarded. +Therefore, in order to use IPv6 effectively, it must be guarranteed that MAC +addresses are unique on the network. + +In contrast to IPv4 Link-Local Addressing, IPv6 Stateless Address +Autoconfiguration can also be used with a central server. In this case, a +central server broadcasts \emph{Router Advertisement} messages on the network which +contain a global network prefix. The hosts on the network can then use that +prefix instead to configure a global IPv6 address. + +addressing + +automatic address configuration via Zeroconf/APIPA (IPv4, \cite{rfc3927}) or +IPv6 stateless auto-configuration \cite{rfc4862} + +\pages{1} + +% vim: set ft=tex et ts=2 sw=2 :