sed -i -e 's/jool/Jool/g' -e 's/tayga/Tayga/g' *.tex
+ manual fixes on that one
This commit is contained in:
parent
c2e8b9bf75
commit
971c0e02c3
4 changed files with 20 additions and 20 deletions
|
@ -270,7 +270,7 @@ to solve this problem:
|
||||||
and inserts the original packet afterwards back into the
|
and inserts the original packet afterwards back into the
|
||||||
switch. Figure \ref{fig:p4switchstateful} shows the flow of a packet
|
switch. Figure \ref{fig:p4switchstateful} shows the flow of a packet
|
||||||
with stateful translation in detail.
|
with stateful translation in detail.
|
||||||
\item With tayga we rely on the Linux kernel NAT44 capabilities
|
\item With Tayga we rely on the Linux kernel NAT44 capabilities
|
||||||
\item Jool implements its own stateful mechanism based on port
|
\item Jool implements its own stateful mechanism based on port
|
||||||
ranges
|
ranges
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -296,7 +296,7 @@ commands allow interactive testing on TCP and UDP connections, while
|
||||||
the iperf commands fully utilise the available bandwidth with test
|
the iperf commands fully utilise the available bandwidth with test
|
||||||
data.
|
data.
|
||||||
The socat and iperf commands are used to verify all three NAT64
|
The socat and iperf commands are used to verify all three NAT64
|
||||||
implementations (p4, tayga, jool).
|
implementations (p4, Tayga, Jool).
|
||||||
\begin{table}[htbp]
|
\begin{table}[htbp]
|
||||||
\begin{center}\begin{minipage}{\textwidth}
|
\begin{center}\begin{minipage}{\textwidth}
|
||||||
\begin{tabular}{| c | c | c |}
|
\begin{tabular}{| c | c | c |}
|
||||||
|
@ -377,9 +377,9 @@ networks and IPv6 addresses are used:
|
||||||
\hline
|
\hline
|
||||||
2001:db8:42::a00:2a & In-network IPv6 address mapped to 10.0.0.42 (p4)\\
|
2001:db8:42::a00:2a & In-network IPv6 address mapped to 10.0.0.42 (p4)\\
|
||||||
\hline
|
\hline
|
||||||
2001:db8:23::a00:2a & IPv6 address mapped to 10.0.0.42 (tayga) \\
|
2001:db8:23::a00:2a & IPv6 address mapped to 10.0.0.42 (Tayga) \\
|
||||||
\hline
|
\hline
|
||||||
2001:db8:23::2a & IPv6 address mapped to 10.0.0.42 (jool)\\
|
2001:db8:23::2a & IPv6 address mapped to 10.0.0.42 (Jool)\\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
|
@ -405,9 +405,9 @@ from the 10.0.0.0/8 range as follows:
|
||||||
\hline
|
\hline
|
||||||
10.0.0.66 & In-network IPv4 address mapped to 2001:db8:42::42 (p4)\\
|
10.0.0.66 & In-network IPv4 address mapped to 2001:db8:42::42 (p4)\\
|
||||||
\hline
|
\hline
|
||||||
10.0.1.42 & IPv4 address mapped to 2001:db8:42::42 (tayga)\\
|
10.0.1.42 & IPv4 address mapped to 2001:db8:42::42 (Tayga)\\
|
||||||
\hline
|
\hline
|
||||||
10.0.1.66 & IPv4 address mapped to 2001:db8:42::42 (jool)\\
|
10.0.1.66 & IPv4 address mapped to 2001:db8:42::42 (Jool)\\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
|
|
|
@ -102,6 +102,6 @@ software~\cite{_implem_your_switc_target_with_bmv2}. Figure
|
||||||
\ref{fig:v6v4mixed} shows how the design differs for an in-network
|
\ref{fig:v6v4mixed} shows how the design differs for an in-network
|
||||||
solution.
|
solution.
|
||||||
Even on fast CPUs, software solutions like
|
Even on fast CPUs, software solutions like
|
||||||
tayga~\cite{lutchansky:_tayga_simpl_nat64_linux}
|
Tayga~\cite{lutchansky:_Tayga_simpl_nat64_linux}
|
||||||
can be CPU bound (see section \ref{results:softwarenat64}) and are
|
can be CPU bound (see section \ref{results:softwarenat64}) and are
|
||||||
incapable of translating protocols at line speed.
|
incapable of translating protocols at line speed.
|
||||||
|
|
|
@ -19,8 +19,8 @@ NAT64~\cite{schottelius:thesisrepo}. It contains parsers
|
||||||
for all related protocols (IPv6, IPv4, UDP, TCP, ICMP, ICMP6, NDP,
|
for all related protocols (IPv6, IPv4, UDP, TCP, ICMP, ICMP6, NDP,
|
||||||
ARP), supports EAMT as defined by RFC7757 ~\cite{rfc7757}, and is
|
ARP), supports EAMT as defined by RFC7757 ~\cite{rfc7757}, and is
|
||||||
feature equivalent to the two compared software solutions
|
feature equivalent to the two compared software solutions
|
||||||
tayga~\cite{lutchansky:_tayga_simpl_nat64_linux} and
|
Tayga~\cite{lutchansky:_Tayga_simpl_nat64_linux} and
|
||||||
jool~\cite{mexico:_jool_open_sourc_siit_nat64_linux}.
|
Jool~\cite{mexico:_Jool_open_sourc_siit_nat64_linux}.
|
||||||
Due to limitations in the P4 environment of the
|
Due to limitations in the P4 environment of the
|
||||||
NetFPGA environment, the BMV2 implementation
|
NetFPGA environment, the BMV2 implementation
|
||||||
is more feature rich.
|
is more feature rich.
|
||||||
|
@ -429,7 +429,7 @@ warm up phase.\footnote{iperf -O 10 parameter, see section \ref{design:tests}.}
|
||||||
% ok
|
% ok
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
\subsection{\label{results:benchmark:summary}Benchmark Summary}
|
\subsection{\label{results:benchmark:summary}Benchmark Summary}
|
||||||
Overall \textbf{tayga} has shown to be the slowest translator with an achieved
|
Overall \textbf{Tayga} has shown to be the slowest translator with an achieved
|
||||||
bandwidth of \textbf{about 3 Gbit/s}, followed by \textbf{Jool} that translates at
|
bandwidth of \textbf{about 3 Gbit/s}, followed by \textbf{Jool} that translates at
|
||||||
about \textbf{8 Gbit/s}. \textbf{Our solution} is the fastest with an almost line rate
|
about \textbf{8 Gbit/s}. \textbf{Our solution} is the fastest with an almost line rate
|
||||||
translation speed of about \textbf{9 Gbit/s}.
|
translation speed of about \textbf{9 Gbit/s}.
|
||||||
|
@ -443,7 +443,7 @@ in the UDP benchmarks incorporates the packets loss (compare tables
|
||||||
\ref{tab:benchmarkv6v4udp} and \ref{tab:benchmarkv6v4udp}).
|
\ref{tab:benchmarkv6v4udp} and \ref{tab:benchmarkv6v4udp}).
|
||||||
|
|
||||||
Both software solutions showed significant loss of packets in the UDP
|
Both software solutions showed significant loss of packets in the UDP
|
||||||
based benchmarks (tayga: up to 91\%, jool up to 71\%), while the
|
based benchmarks (Tayga: up to 91\%, Jool up to 71\%), while the
|
||||||
P4/NetFPGA showed a maximum of 0.01\% packet loss. Packet loss is only
|
P4/NetFPGA showed a maximum of 0.01\% packet loss. Packet loss is only
|
||||||
recorded by iperf for UDP based benchmarks, as TCP packets are confirmed and
|
recorded by iperf for UDP based benchmarks, as TCP packets are confirmed and
|
||||||
resent if necessary.
|
resent if necessary.
|
||||||
|
@ -455,7 +455,7 @@ identical in different benchmark runs.
|
||||||
|
|
||||||
The CPU load for TCP based benchmarks with Jool was almost negligible,
|
The CPU load for TCP based benchmarks with Jool was almost negligible,
|
||||||
however for UDP based benchmarks one core was almost 100\%
|
however for UDP based benchmarks one core was almost 100\%
|
||||||
utilised. In all benchmarks with tayga, one CPU was fully
|
utilised. In all benchmarks with Tayga, one CPU was fully
|
||||||
utilised. When the translation for P4/NetFPGA happens within the
|
utilised. When the translation for P4/NetFPGA happens within the
|
||||||
NetFPGA card, there was no CPU utilisation visible on the NAT64 host.
|
NetFPGA card, there was no CPU utilisation visible on the NAT64 host.
|
||||||
|
|
||||||
|
@ -476,11 +476,11 @@ connections might be affected by the load generator limits. While
|
||||||
there is no visible evidence in our results, this problem might become
|
there is no visible evidence in our results, this problem might become
|
||||||
more significant with higher speed links.
|
more significant with higher speed links.
|
||||||
|
|
||||||
While tayga's performance is reduced with the growing number of
|
While Tayga's performance is reduced with the growing number of
|
||||||
parallel connections, both Jool and our P4/NetFPGA implementations
|
parallel connections, both Jool and our P4/NetFPGA implementations
|
||||||
vary only slighty.
|
vary only slighty.
|
||||||
|
|
||||||
Overall the performance of tayga, a Linux user space program, is as
|
Overall the performance of Tayga, a Linux user space program, is as
|
||||||
expected. We were surprised about the good performance of Jool, which,
|
expected. We were surprised about the good performance of Jool, which,
|
||||||
while slower than the P4/NetFPGA solution, is almost on par with our solution.
|
while slower than the P4/NetFPGA solution, is almost on par with our solution.
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
|
|
|
@ -1300,7 +1300,7 @@ root@ESPRIMO-P956:~#
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
%---------------------------------------------------------------------------------------------------------
|
%---------------------------------------------------------------------------------------------------------
|
||||||
\section{\label{benchmark:tayga}Tayga}
|
\section{\label{benchmark:Tayga}Tayga}
|
||||||
Tayga is installed from the regular package database:
|
Tayga is installed from the regular package database:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
ii tayga 0.9.2-6 amd64 userspace stateless NAT64
|
ii tayga 0.9.2-6 amd64 userspace stateless NAT64
|
||||||
|
@ -1366,7 +1366,7 @@ net.ipv6.conf.all.forwarding = 1
|
||||||
[15:20] nsg-System:~# sysctl -w net.ipv4.ip_forward=1
|
[15:20] nsg-System:~# sysctl -w net.ipv4.ip_forward=1
|
||||||
net.ipv4.ip_forward = 1
|
net.ipv4.ip_forward = 1
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
And we test NAT64 with tayga:
|
And we test NAT64 with Tayga:
|
||||||
\begin{tiny}
|
\begin{tiny}
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
nico@ESPRIMO-P956:~$ ping -c2 10.0.1.42
|
nico@ESPRIMO-P956:~$ ping -c2 10.0.1.42
|
||||||
|
@ -1407,9 +1407,9 @@ rtt min/avg/max/mdev = 0.240/0.320/0.400/0.080 ms
|
||||||
nico@ESPRIMO-P956:~$
|
nico@ESPRIMO-P956:~$
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
%---------------------------------------------------------------------------------------------------------
|
%---------------------------------------------------------------------------------------------------------
|
||||||
\section{\label{benchmark:jool}Jool}
|
\section{\label{benchmark:Jool}Jool}
|
||||||
We install Jool 4.0.1 from source from
|
We install Jool 4.0.1 from source from
|
||||||
\url{https://www.jool.mx/en/download.html} as follows:
|
\url{https://www.Jool.mx/en/download.html} as follows:
|
||||||
\begin{tiny}
|
\begin{tiny}
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
nico@nsg-System:~$ wget https://github.com/NICMx/Jool/releases/download/v4.0.1/jool_4.0.1.tar.gz
|
nico@nsg-System:~$ wget https://github.com/NICMx/Jool/releases/download/v4.0.1/jool_4.0.1.tar.gz
|
||||||
|
@ -1426,8 +1426,8 @@ We enable forwarding:
|
||||||
sysctl -w net.ipv4.conf.all.forwarding=1
|
sysctl -w net.ipv4.conf.all.forwarding=1
|
||||||
sysctl -w net.ipv6.conf.all.forwarding=1
|
sysctl -w net.ipv6.conf.all.forwarding=1
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
We configure jool to map the network prefixes and setup iptables to
|
We configure Jool to map the network prefixes and setup iptables to
|
||||||
redirect the traffic into the jool instance:
|
redirect the traffic into the Jool instance:
|
||||||
\begin{tiny}
|
\begin{tiny}
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
[16:53] nsg-System:~# modprobe jool_siit
|
[16:53] nsg-System:~# modprobe jool_siit
|
||||||
|
|
Loading…
Reference in a new issue