X-Git-Url: http://git.rohieb.name/skm-ma-ws1314.git/blobdiff_plain/a1c81dce7c7d4e3a0e6e1f446eaeb893845fd680..2ef57bbd89d873de5a76d1053966cb53dec5af47:/sec-address-allocation.tex diff --git a/sec-address-allocation.tex b/sec-address-allocation.tex index 4198074..0ca0764 100644 --- a/sec-address-allocation.tex +++ b/sec-address-allocation.tex @@ -1,39 +1,24 @@ \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} +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. Letting the user choose and configure IP addresses manually is a cumbersome +when it comes to several devices. Deploying a central server for assigning IP +addresses automatically from a pre-configured address pool is possible (e.~g. by +using DHCP~\cite{rfc2131}), however, there is also the alternative +to use a distributed protocol which enables the devices on a network to choose +addresses in accordance with each other, so no IP address is used twice. + +In respect to the Internet of Things, this decentralized approach has the +advantage that devices can easily be used in different deployments, even where +central infrastructures do not exist, and it also allows them to change their +addresses dynamically in order to react 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 specified in the IPv6 protocol. \paragraph{IPv4 Link-Local Addressing} @@ -46,27 +31,28 @@ 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. +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 \term{IPv6 -Stateless Addressing Autoconfiguration} use an IPv6 address from the subnet -\code{fe80::/64}. First, an \term{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 \term{Duplicate Address Detection} on the network -through \term{Neighbor Advertisement} messages and listening for \term{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. +Stateless Address Auto\-configuration} use an IPv6 address from the subnet +\code{fe80::/64}. First, a 64-bit \term{interface identifier} is generated, +which can be random, or based on the interface's MAC address. Most likely, this +interface identifier is unique in the network, so a unique IPv6 address is +obtained by combining the subnet prefix and the interface identifier. +Nonetheless, to ensure that no other device uses the generated IPv6 address, the +device performs \term{Duplicate Address Detection} on the network by +broadcasting its generated address with \term{Neighbor Advertisement} messages +and listening for \term{Neighbor Solicitation} messages. If such a message is +received from another hosts, the generated address cannot be used by the device +and must be discarded, and the address generation process is repeated until a +unique address has been found. 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 \term{Router Solicitation} messages on the network +Autoconfiguration can also be used with a central server. In this case, the +server broadcasts \term{Router Solicitation} 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.