From bbada059b551838faef71b085b3f987ba21c4a3a Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 9 Aug 2019 14:25:18 +0200 Subject: [PATCH] ++doc --- doc/Background.tex | 217 ++++++++++++++++++++++++++++++++++++- doc/Conclusion.tex | 3 + doc/Introduction.tex | 57 ++-------- doc/Results.tex | 3 + doc/appendix.tex | 45 ++++++++ doc/graphviz/dualstack.dot | 22 ++++ doc/graphviz/dualstack.png | Bin 0 -> 24204 bytes doc/graphviz/v4only.dot | 25 +++++ doc/graphviz/v4only.png | Bin 0 -> 22320 bytes doc/graphviz/v6only.dot | 23 ++++ doc/graphviz/v6only.png | Bin 0 -> 22508 bytes doc/images/p4-from-nsg.png | Bin 0 -> 86904 bytes doc/refs/refs.bib | 15 +++ 13 files changed, 357 insertions(+), 53 deletions(-) create mode 100644 doc/graphviz/dualstack.dot create mode 100644 doc/graphviz/dualstack.png create mode 100644 doc/graphviz/v4only.dot create mode 100644 doc/graphviz/v4only.png create mode 100644 doc/graphviz/v6only.dot create mode 100644 doc/graphviz/v6only.png create mode 100644 doc/images/p4-from-nsg.png diff --git a/doc/Background.tex b/doc/Background.tex index 6e18b17..90dee88 100644 --- a/doc/Background.tex +++ b/doc/Background.tex @@ -1,15 +1,220 @@ \chapter{\label{background}Background} +In this chapter we describe the key technologies involved. \section{\label{background:P4}P4} +P4 is a programming language designed to program inside network +equipment. It's main features are protocol and target independence. +The \textit{protocol independence} refers to the separation of concerns in +terms of language and protocols: P4 generally speaking operates on +bits that are parsed and then accessible in the (self) defined +structures, also called headers. The general flow can be seen in +figure \ref{fig:p4fromnsg}: a parser parses the incoming packet and +prepares it for processing in the switching logic. Afterwards the +packets is output and deparsing of the parsed data might follow. +In the context of NAT64 this is a very important feature: while the +parser will read and parse in the ingress pipeline one protocol +(f.i. IPv6), the deparser will output a different protocol (f.i. IPv4). +\begin{figure}[h] + \includegraphics[scale=0.9]{p4-from-nsg} + \centering + \caption{P4 protocol independence, \cite{vanbever:_progr_networ_data_planes}} + \label{fig:p4fromnsg} +\end{figure} +The \textit{target independence} is the second very powerful feature +of P4: it allows code to be compiled to different targets. While in +theory the P4 code should be completely target independent, in reality +there are some modifications needed on a per-target basis and each +target faces different restrictions. The challenges arising from this +are discussed in section \ref{conclusion:P4}. + +As opposed to general purpose programming languages, P4 lacks some +features, most notably loops. However within its constraints, P4 can guarantee +operation at line speed, which general purpose programming languages +cannot guarantee in general and also fail to achieve in reality +(see section \ref{results:softwarenat64} for details). + +% ---------------------------------------------------------------------- \section{\label{background:ipv6}IPv6} +The first IPv6 RFC \cite{rfc2460} was published in 1998. +The figures \ref{fig:ipv4header} and \ref{fig:ipv6header} show the +packet headers of IPv4 and IPv6. The most notable differences between +the two protocols for this project are: +\begin{itemize} +\item Different address lengths (32 vs 128 bit) +\item Lack of checksum in IPv6 +\item Format of Pseudo headers (see section \ref{background:checksums}) +\end{itemize} +\begin{figure}[h] +\begin{verbatim} -***** Für IPv6, NAT64, transitation mechanism -***** RFC hinzufügen -***** P4 kurz erwähnen + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Version| Traffic Class | Flow Label | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Payload Length | Next Header | Hop Limit | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + + + | | + + Source Address + + | | + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + + + | | + + Destination Address + + | | + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +\end{verbatim} + \centering + \caption{IPv6 Header, \cite{rfc2460}} + \label{fig:ipv6header} +\end{figure} -growth +\begin{figure}[h] +\begin{verbatim} + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |Version| IHL |Type of Service| Total Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Identification |Flags| Fragment Offset | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Time to Live | Protocol | Header Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source Address | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Destination Address | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Options | Padding | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +\end{verbatim} + \caption{IPv4 Header, \cite{rfc791}} + \label{fig:ipv4header} +\end{figure} + +++content! + +% ---------------------------------------------------------------------- +\section{\label{background:transition}IPv6 Transition Mechanisms} +While in this thesis the focus was in NAT64 as a transition mechanism, +there are a variety of different approaches, some of which we would +like to portray here. -\section{\label{background:transition}Transition Mechanisms} proxying translations -\section{\label{background:ipv6}IPv6} +% ---------------------------------------------------------------------- +\subsection{\label{background:transition:nat64}Static NAT64} +1:1 mappings + +% ---------------------------------------------------------------------- +\subsection{\label{background:transition:nat64}Dynamic NAT64} +1:n mappings, requesting temporary ID for connection, used for +outgoing NAT64 + +% ---------------------------------------------------------------------- +\subsection{\label{background:transition:Protocol dependent}Protocol + dependent translation} +http, +https, +TLS sni +TLS1.3 SNI might be unreadable +Disadvantage + +% ---------------------------------------------------------------------- +\subsection{\label{background:transition:Port based}Port based + translation} +tcp/udp +icmp: ?? maybe ID field + + +% ---------------------------------------------------------------------- +\section{\label{background:checksums}Protocol Checksums} + +% ---------------------------------------------------------------------- +\section{\label{background:networkdesign}Network Designs} +\begin{figure}[h] + \includegraphics[scale=0.5]{v4only} + \centering + \caption{IPv4 only network} + \label{fig:v4onlynet} +\end{figure} +In relation to IPv6 and IPv4, there are in general three different +network designs possible: +The oldest form are IPv4 only networks (see figure +\ref{fig:v4onlynet}. +These networks consist of +hosts that are either not configured for IPv6 or are even technically +incapable of enabling the IPv6 protocol. These nodes are connected to +an IPv4 router that is connected to the Internet. That router might be +capable of translating IPv4 to IPv6 and vice versa. +\begin{figure}[h] + \includegraphics[scale=0.5]{dualstack} + \centering + \caption{Dualstack network} + \label{fig:dualstacknet} +\end{figure} +With the introduction of IPv6, hosts can have a separate IP stack +active and in that configuration hosts are called ``dualstack hosts'' +(see figure \ref{fig:dualstacknet}). +Dualstack hosts are capabale of reaching both IPv6 and IPv4 hosts +directly without the need of any translation mechanism. + +The last possible network design is based on IPv6 only hosts, as shown +in figure \ref{fig:v6onlynet}. While it is technically easy to disable IPv4, it +seems that completely removing the IPv4 stack in current operating +systems is not an easy task \cite{ungleich:_ipv4}. +\begin{figure}[h] + \includegraphics[scale=0.5]{v6only} + \centering + \caption{IPv6 only network} + \label{fig:v6onlynet} +\end{figure} +While the three network designs look similar, there are significant +differences in operating them and limitations that are not easy to +circumvent. In the following sections we describe the limitations and +reason how a translation mechanism like our NAT64 implementation +should be deployed. +% ---------------------------------------------------------------------- +\subsection{\label{background:networkdesign:ipv4}IPv4 only network limitations} +As shown in figures \ref{fig:ipv4header} and \ref{fig:ipv6header} +the IPv4 address size is 32 bit, while the IPv6 address size is 128 +bit. +Without an extension to the address space, there is no protocol independent +mapping of IPv4 address to IPv6 (see section +\ref{background:transition:nat64}) +that can cover the whole IPv6 address space. Thus IPv4 only hosts can +never address every host in the IPv6 Internet. While protocol +dependent translations can try to minimise the impact, accessing all +IPv6 addresses independent of the protcol is not possible. +% ---------------------------------------------------------------------- +\subsection{\label{background:networkdesign:dualstack}Dualstack network + maintenance} +While dualstack hosts can address any host in either IPv6 or IPv4 +networks, the deployment of dualstack hosts comes with a major +disadvantage: all network configuration double. The required routing +tables double, the firewall rules roughly double\footnote{The rulesets + even for identical policies in IPv6 and IPv4 networks are not + identical, but similar. For this reason we state that roughly double + the amount of firewall rules are required for the same policy to be + applied.} and the number of network supporting systems (like DHCPv4, +DHCPv6, router advertisement daemons, etc.) also roughly double. +Additionally services that run on either IPv6 or IPv4 might need to be +configured to run in dualstack mode as well and not every software +might be capable of that. +So while there is the instant benefit of not requiring any transition mechanism +or translation method, we argue that the added complexity (and thus +operational cost) of running dual stack networks can be significant. +% ---------------------------------------------------------------------- +\subsection{\label{background:networkdesign:v6only}IPv6 only networks} +IPv6 only networks are our opinion the best choice for long term +deployments. The reasons for this are as follows: +IPv6 hosts can address the whole 32 bit IPv4 Internet mapped in +a single /96 IPv6 network, whithout the need for address extension or +higher protocol dependent translations\footnote{Lower level protocols + like TCP, UDP, ICMP6/ICMP.} diff --git a/doc/Conclusion.tex b/doc/Conclusion.tex index 34efeb0..43cbd5b 100644 --- a/doc/Conclusion.tex +++ b/doc/Conclusion.tex @@ -7,6 +7,8 @@ Sum up what you have done and recapitulate your key findings. %\section{\label{conclusion:overall}Overall} +\section{\label{conclusion:softwarenat64}Software based NAT64} + \section{\label{conclusion:bmv2}BMV2} maybe remove @@ -17,6 +19,7 @@ Easy architecture Limitations in + \section{\label{conclusion:netpfga}NetFGPA} personal note here diff --git a/doc/Introduction.tex b/doc/Introduction.tex index 30e4058..d85d41e 100644 --- a/doc/Introduction.tex +++ b/doc/Introduction.tex @@ -89,55 +89,18 @@ approach and \ref{fig:v6v4innetwork} shows our solution. \label{fig:v6v4standard} \end{figure} +HERE: development difference +Currently network operators have to focus on two network stacks when +designing networks: IPv6 and IPv4. As To simplify network setups + + The in network solution does not only ease the installation and deployment of IPv6, but it also allows line speed translation, because it is compiled into target dependent low level code that can run in ASICs\cite{networks:_tofin}, FPGAs\cite{netfpga:_p4_netpf_public_github} -or even in software \cite{_implem_your_switc_target_with_bmv2}. - -\section{\label{introduction:taskdescription}The Task} - - Milestone 1: Stateless NAT64/NAT46 translations in P4 - - Milestone 2: Stateful (dynamic) NAT64/NAT46 translations - - Milestone 3: Hardware adaption - -This thesis is -into 3 milestone -P4 environment -a lot of potential -Programming language in the network -Not only faster, but also more convienient. - -**** High speed NAT64 with P4 - Currently there are two main open source NAT64 solution available: - tayga and jool. The former is a single threaded, cpu bound user - space solution, the latter a custom Linux kernel module. - - This thesis challenges this status quo by developing a P4 based - solution supporting all features of jool/tayga and comparing the - performance, security and adaptivity of the solutions. - - -Describe your task. - - -\section{\label{chapter2:linespeed}Line Speed NAT64} -NAT64 in software is CPU bound. Hardware can potentially do this at -line speed. - -\section{\label{chapter2:transitition}Simplify IPv6 deployments} -Currently network operators have to focus on two network stacks when -designing networks: IPv6 and IPv4. As To simplify network setups - - -\section{todo} -\begin{verbatim} - -***** Motivation zeigen -***** IPv6, NetPFGA mehr Möglichketien -***** P4 erwähnen -***** Task gut zu zeigen, alles erreicht - use cases / sample applications - - -\end{verbatim} +or even in software +\cite{_implem_your_switc_target_with_bmv2}. +Even on fast CPUs, software solutions like tayga +\cite{lutchansky:_tayga_simpl_nat64_linux} can be CPU bound and are +not capabale of translating protocols at line speed. diff --git a/doc/Results.tex b/doc/Results.tex index 194c39e..a654298 100644 --- a/doc/Results.tex +++ b/doc/Results.tex @@ -50,6 +50,9 @@ Reproducibility: Limits if in actions +\section{\label{results:softwarenat64}NAT64 in Software} +Tayga, Jool + \section{todo} \begin{verbatim} diff --git a/doc/appendix.tex b/doc/appendix.tex index 9097173..0ca1b07 100644 --- a/doc/appendix.tex +++ b/doc/appendix.tex @@ -1492,6 +1492,51 @@ root@ESPRIMO-P956:~# %If you are using TeXniCenter, specify: %"%bm.nlo" -s nomencl.ist -o "%bm.nls" %as beeing the argument list for makeindex. + +%--------------------------------------------------------------------------------------------------------- + +\chapter{\label{bufferssssss}Buffer} + +Stuff that needs to be cleaned up + +\section{Introduction} + +\subsection{\label{introduction:taskdescription}The Task} + - Milestone 1: Stateless NAT64/NAT46 translations in P4 + - Milestone 2: Stateful (dynamic) NAT64/NAT46 translations + - Milestone 3: Hardware adaption + +This thesis is +into 3 milestone +P4 environment +a lot of potential +Programming language in the network +Not only faster, but also more convienient. + +**** High speed NAT64 with P4 + Currently there are two main open source NAT64 solution available: + tayga and jool. The former is a single threaded, cpu bound user + space solution, the latter a custom Linux kernel module. + + This thesis challenges this status quo by developing a P4 based + solution supporting all features of jool/tayga and comparing the + performance, security and adaptivity of the solutions. + + +Describe your task. + + +\begin{verbatim} + +***** Motivation zeigen +***** IPv6, NetPFGA mehr Möglichketien +***** P4 erwähnen +***** Task gut zu zeigen, alles erreicht + use cases / sample applications + + +\end{verbatim} + %--------------------------------------------------------------------------------------------------------- \printnomenclature diff --git a/doc/graphviz/dualstack.dot b/doc/graphviz/dualstack.dot new file mode 100644 index 0000000..4265368 --- /dev/null +++ b/doc/graphviz/dualstack.dot @@ -0,0 +1,22 @@ +graph G { + node [ shape="box"]; + + host1 [ label="Dualstack host"]; + host2 [ label="Dualstack host"]; + host3 [ label="Dualstack host"]; + router [ label="IPv6 & IPv4 router"]; + + v4internet [ label="IPv4 Internet", shape="egg" ]; + v6internet [ label="IPv6 Internet", shape="egg" ]; + + switch1 [ label="Network Switch", shape="oval" ]; + + host1--switch1; + host2--switch1; + host3--switch1; + + switch1--router; + router--v4internet; + router--v6internet; + +} diff --git a/doc/graphviz/dualstack.png b/doc/graphviz/dualstack.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3f3db22e72fee4850e5edd52a3fe93011d95f8 GIT binary patch literal 24204 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 literal 0 HcmV?d00001 diff --git a/doc/graphviz/v6only.dot b/doc/graphviz/v6only.dot new file mode 100644 index 0000000..626ad17 --- /dev/null +++ b/doc/graphviz/v6only.dot @@ -0,0 +1,23 @@ +graph G { + node [ shape="box"]; + + + v6host1 [ label="IPv6 only host"]; + v6host2 [ label="IPv6 only host"]; + v6host3 [ label="IPv6 only host"]; + v6router [ label="IPv6 router"]; + + v4internet [ label="IPv4 Internet", shape="egg" ]; + v6internet [ label="IPv6 Internet", shape="egg" ]; + + switch1 [ label="Network Switch", shape="oval" ]; + + v6host1--switch1; + v6host2--switch1; + v6host3--switch1; + + switch1--v6router; + v6router--v4internet; + v6router--v6internet; + +} diff --git a/doc/graphviz/v6only.png b/doc/graphviz/v6only.png new file mode 100644 index 0000000000000000000000000000000000000000..ac160b8e953e2ca2771cbceee25f7807e9cee031 GIT binary patch literal 22508 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 literal 0 HcmV?d00001 diff --git a/doc/images/p4-from-nsg.png b/doc/images/p4-from-nsg.png new file mode 100644 index 0000000000000000000000000000000000000000..4d06b5583317a949720f05c484b95a99d8753864 GIT binary patch literal 86904 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

!_=FV~KrtlIytg>75-`#b2B|j^i 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 literal 0 HcmV?d00001 diff --git a/doc/refs/refs.bib b/doc/refs/refs.bib index 1a2560d..22b3f49 100644 --- a/doc/refs/refs.bib +++ b/doc/refs/refs.bib @@ -63,3 +63,18 @@ author = {Barefoot Networks}, title = {Tofino2}, howpublished = {\url{https://barefootnetworks.com/products/brief-tofino-2/}}} + +@Misc{lutchansky:_tayga_simpl_nat64_linux, + author = {Nathan Lutchansky}, + title = {TAYGA - Simple, no-fuss NAT64 for Linux}, + howpublished = {\url{http://www.litech.org/tayga/}}} + +@Misc{vanbever:_progr_networ_data_planes, + author = {Laurent Vanbever}, + title = {Programming Network Data Planes}, + howpublished = {\url{https://github.com/nsg-ethz/p4-learning/blob/master/slides/02_p4_env.pdf}}} + +@Misc{ungleich:_ipv4, + author = {ungleich}, + title = {Die IPv4, die!}, + howpublished = {\url{https://ungleich.ch/en-us/cms/blog/2019/01/09/die-ipv4-die/}}}