2019-07-29 17:13:47 +00:00
|
|
|
%** Introduction.tex: Contains an introduction to
|
|
|
|
% the topic and motivates the work.
|
|
|
|
% State what the reader can find where.
|
|
|
|
|
2019-08-09 09:49:41 +00:00
|
|
|
%** Problem.tex: Documentation in own words of the problem to
|
|
|
|
% be addressed in this document:
|
|
|
|
% What is the challenge, why is it useful what you
|
|
|
|
% plan to do.
|
|
|
|
|
|
|
|
|
|
|
|
%% In \ref{introduction} we start with our introduction to the problem that we
|
|
|
|
%% are going to address. Since we do not want to waste the readers time we
|
|
|
|
%% go and show the essential issues of latex in section
|
|
|
|
%% \ref{chapter2:essentials}.
|
|
|
|
|
2019-02-21 19:29:50 +00:00
|
|
|
|
|
|
|
\chapter{\label{introduction}Introduction}
|
2019-08-08 12:08:07 +00:00
|
|
|
In this chapter we give an introduction about the topic of the master
|
2019-08-18 10:40:34 +00:00
|
|
|
thesis, the motivation and problemes that we address. We explain the
|
|
|
|
current state of IPv4 exhaustion and IPv6 adoption and describe how
|
|
|
|
it motivates our work to support ease transition to IPv6 networks.
|
2019-02-21 19:29:50 +00:00
|
|
|
|
2019-08-08 12:08:07 +00:00
|
|
|
% ----------------------------------------------------------------------
|
2019-08-09 08:38:54 +00:00
|
|
|
\section{\label{introduction:ipv4ipv6}IPv4 exhaustion and IPv6 adoption}
|
2019-08-08 12:08:07 +00:00
|
|
|
The Internet has almost completely run out of public IPv4 space. The
|
2019-08-08 12:45:16 +00:00
|
|
|
5 Regional Internet Registries (RIRs) report IPv4 exhaustion world wide
|
2019-08-18 21:58:10 +00:00
|
|
|
\cite{ripe_exhaustion},
|
2019-08-08 12:08:07 +00:00
|
|
|
\cite{apnic_exhaustion},
|
2019-08-08 12:45:16 +00:00
|
|
|
\cite{lacnic:_ipv4_deplet_phases},
|
|
|
|
\cite{afrinic:_afrin_ipv4_exhaus},
|
2019-08-18 21:58:10 +00:00
|
|
|
\cite{arin:_ipv4_addres_option}.
|
|
|
|
Figure \ref{fig:riripv4rundown} contains summarised data from all RIRs
|
|
|
|
and projects complete IPv4 addresses depletion by 2021.
|
|
|
|
The LACNIC project even predicts complete exhaustion for 2020 as shown
|
|
|
|
in figure \ref{fig:lacnicexhaust}.
|
2019-08-08 12:45:16 +00:00
|
|
|
\begin{figure}[h]
|
|
|
|
\includegraphics[scale=0.7]{lacnicdepletion}
|
|
|
|
\centering
|
|
|
|
\caption{LACNIC Exhaustion projection,
|
2019-08-18 12:24:22 +00:00
|
|
|
~\cite{lacnic:_ipv4_deplet_phases}}
|
2019-08-08 12:45:16 +00:00
|
|
|
\label{fig:lacnicexhaust}
|
|
|
|
\end{figure}
|
2019-08-18 21:58:10 +00:00
|
|
|
\begin{figure}[h]
|
|
|
|
\includegraphics[scale=0.6]{rir-ipv4-rundown}
|
|
|
|
\centering
|
|
|
|
\caption{RIR IPv4 rundown projection from~\cite{huston:_ipv4_addres_repor}}
|
|
|
|
\label{fig:riripv4rundown}
|
|
|
|
\end{figure}
|
2019-08-08 12:45:16 +00:00
|
|
|
On the other hand IPv6 adoption grows significantly, with at least
|
2019-08-18 12:24:22 +00:00
|
|
|
three countries (India, US, Belgium) surpassing 50\%
|
|
|
|
adoption~\cite{akamai:_ipv6_adopt_visual},
|
|
|
|
\cite{vyncke:_ipv6_deploy_aggreg_status},
|
|
|
|
\cite{cisco:_ipv6}. Traffic from Google users reaches almost 30\% as
|
|
|
|
of 2019-08-08~\cite{google:_ipv6_googl}, see figure \ref{fig:googlev6}.
|
2019-08-08 12:45:16 +00:00
|
|
|
\begin{figure}[h]
|
|
|
|
\includegraphics[scale=0.2]{googlev6}
|
|
|
|
\centering
|
2019-08-18 21:58:10 +00:00
|
|
|
\caption{Google IPv6 Statistics from~\cite{google:_ipv6_googl}}
|
2019-08-08 12:45:16 +00:00
|
|
|
\label{fig:googlev6}
|
|
|
|
\end{figure}
|
2019-08-09 09:49:41 +00:00
|
|
|
We conclude that IPv6 is a technology strongly gaining importance with
|
|
|
|
the IPv4 depletion that is estimated to be world wide happening in the
|
|
|
|
next years. Thus more devices will be using IPv6, while communication
|
|
|
|
to legacy IPv4 devices still needs to be provided.
|
2019-08-18 21:58:10 +00:00
|
|
|
% ok
|
2019-08-09 08:38:54 +00:00
|
|
|
% ----------------------------------------------------------------------
|
|
|
|
\section{\label{introduction:motivation}Motivation}
|
|
|
|
IPv6 nodes and IPv4 nodes cannot directly connect to each other,
|
|
|
|
because the protocols are incompatible to each other.
|
|
|
|
To allow communication between different protocol nodes,
|
2019-08-18 12:24:22 +00:00
|
|
|
several transition mechanism have been
|
2019-08-18 21:58:10 +00:00
|
|
|
proposed~\cite{wikipedia:_ipv6},~\cite{rfc4213}.
|
|
|
|
\begin{figure}[h]
|
|
|
|
\includegraphics[scale=0.4]{v6-v6-separated}
|
|
|
|
\centering
|
|
|
|
\caption{Separated IPv6 and IPv4 network segments}
|
|
|
|
\label{fig:v6v4separated}
|
|
|
|
\end{figure}
|
2019-08-09 08:38:54 +00:00
|
|
|
However installation and configuration of the transition mechanism
|
|
|
|
usually require in depth knowledge about both protocols and require
|
|
|
|
additional hardware to be added in the network.
|
2019-08-18 12:24:22 +00:00
|
|
|
In this thesis we show an in-network transition method based on
|
2019-08-18 21:58:10 +00:00
|
|
|
NAT64~\cite{rfc6146}. Compared to traditional NAT64 methods which
|
|
|
|
require hosts to explicitly use an extra device in the
|
|
|
|
network,\footnote{Usually the default router will take this role.}
|
|
|
|
our proposed method is transparent to the hosts.
|
|
|
|
This way the routing and network configuration does not need to be
|
|
|
|
changed to support NAT64 within a network.
|
2019-08-09 12:25:18 +00:00
|
|
|
Currently network operators have to focus on two network stacks when
|
2019-08-10 15:48:31 +00:00
|
|
|
designing networks: IPv6 and IPv4. While in a small scale setup this
|
2019-08-12 10:13:59 +00:00
|
|
|
might not introduce significant complexity, figure
|
2019-08-18 21:58:10 +00:00
|
|
|
\ref{fig:v6v4separated} shows how the complexity quickly grows
|
|
|
|
even with a small number of hosts.
|
|
|
|
The proposed in-network solution does not only ease the installation and
|
2019-08-09 09:49:41 +00:00
|
|
|
deployment of IPv6, but it also allows line speed translation, because
|
|
|
|
it is compiled into target dependent low level code that can run in
|
2019-08-18 12:24:22 +00:00
|
|
|
ASICs~\cite{networks:_tofin},
|
|
|
|
FPGAs~\cite{netfpga:_p4_netpf_public_github}
|
|
|
|
or even in
|
2019-08-18 21:58:10 +00:00
|
|
|
software~\cite{_implem_your_switc_target_with_bmv2}. Figure
|
|
|
|
\ref{fig:v6v4mixed} shows how the design differs for an in-network
|
|
|
|
solution.
|
2019-08-18 12:24:22 +00:00
|
|
|
Even on fast CPUs, software solutions like
|
|
|
|
tayga~\cite{lutchansky:_tayga_simpl_nat64_linux}
|
2019-08-18 21:58:10 +00:00
|
|
|
can be CPU bound (see section \ref{results:softwarenat64}) and are
|
|
|
|
incapabale of translating protocols at line speed.
|