2019-08-15 15:14:35 +00:00
|
|
|
\chapter{\label{summary}Conclusion and Outlook}
|
2019-08-07 13:55:53 +00:00
|
|
|
%** Summary.tex: What have you achieved, what have you presented in this
|
|
|
|
% document. What are the highlights of your work.
|
|
|
|
% It should conclude by a conclusion.
|
|
|
|
|
2019-08-20 14:32:44 +00:00
|
|
|
% Intro
|
2019-08-16 10:23:35 +00:00
|
|
|
The objective of implementing high speed NAT64 in P4 has been
|
2019-08-20 14:32:44 +00:00
|
|
|
achieved.
|
|
|
|
|
|
|
|
% our implementation!
|
|
|
|
Our implementation has been shown to be portable
|
|
|
|
between 2 different P4 targets and we expect it to be portable
|
|
|
|
to other P4 targets, potentially at much higher speeds.
|
|
|
|
Our in-network solution allows novel translations
|
2019-08-22 09:17:56 +00:00
|
|
|
without involving external routers.\footnote{Compare
|
2019-08-20 14:32:44 +00:00
|
|
|
figures \ref{fig:v6v4standard} and \ref{fig:v6v4mixed}.}
|
2019-08-21 17:06:10 +00:00
|
|
|
We expect this to support migration to IPv6 only networks.
|
2019-08-15 15:14:35 +00:00
|
|
|
|
2019-08-16 10:23:35 +00:00
|
|
|
% P4
|
2019-08-21 17:06:10 +00:00
|
|
|
P4 has been proven to us as a suitable programming language for
|
2019-08-22 09:17:56 +00:00
|
|
|
network equipment and we think it has great potential for solving new
|
|
|
|
and existing problems at line rates.
|
|
|
|
However, in the current state
|
2019-08-16 10:23:35 +00:00
|
|
|
the tooling and frameworks are still immature and need significant
|
|
|
|
work to become usable for solving day-to-day challenges or supporting
|
|
|
|
large scale projects. Even with the current state drawbacks, P4 is a
|
|
|
|
very convincing language that has wide range of applications due to
|
|
|
|
its protocol independence and easy to understand architecture.
|
|
|
|
The availability of protocol independent programmable network
|
2019-08-22 09:17:56 +00:00
|
|
|
equipment opens up many possibilities for in-network
|
2019-08-20 08:19:01 +00:00
|
|
|
programming. While this thesis focused on NAT64, the accompanying
|
2019-08-22 09:17:56 +00:00
|
|
|
technology DNS64 could also be implemented in P4, thus
|
2019-08-16 10:23:35 +00:00
|
|
|
completing the translation mechanism.
|
2019-08-12 15:36:43 +00:00
|
|
|
|
2019-08-20 14:32:44 +00:00
|
|
|
% NetPFGA
|
|
|
|
In our opinion, the
|
|
|
|
P4/NetFPGA platform is a good showcase for the capabilities of
|
|
|
|
P4, demonstrating near line speed P4 programs with good capabilities
|
|
|
|
of demonstrating scientific research.
|
|
|
|
However, the supporting code toolchain shows strong weaknesses that
|
2019-08-20 14:40:35 +00:00
|
|
|
render productive deployments difficult.
|
2019-08-20 14:32:44 +00:00
|
|
|
% ----------------------------------------------------------------------
|
|
|
|
% Outlook
|
|
|
|
|
2019-08-22 09:17:56 +00:00
|
|
|
While the project concluded successfully, we see
|
2019-08-20 14:32:44 +00:00
|
|
|
possible improvements to our work as well to the used toolchains.
|
|
|
|
|
|
|
|
% Implementation
|
|
|
|
The implementation of our algorithm uses the IPv4-Compatible
|
2019-08-22 09:17:56 +00:00
|
|
|
IPv6 Address defined in RFC4291 to embed IPv4 addresses.
|
|
|
|
However RFC6052 defines different
|
2019-08-20 14:32:44 +00:00
|
|
|
embeddings depending on the prefix size. A future version should
|
|
|
|
not only support more flexible embeddings, but also consider more in
|
|
|
|
depth translation like ICMP/ICMP6 specifics.
|
2019-08-19 23:29:26 +00:00
|
|
|
|
2019-08-20 14:32:44 +00:00
|
|
|
% P4
|
|
|
|
The P4 language has shown maturity, but the usability and ease of use
|
2019-08-21 17:06:10 +00:00
|
|
|
of the provided toolchains can be significantly improved. Additionally,
|
2019-08-20 14:32:44 +00:00
|
|
|
we envision a stronger tie between the different tools in the P4
|
|
|
|
environment, like a collection of libraries and modules that could
|
|
|
|
form something on the line of a ``P4OS''. This operating system could
|
|
|
|
spawn over network switches with P4, provide a coherent library and
|
|
|
|
define data definitions that can be used in various programming
|
|
|
|
languages bindings.
|
|
|
|
|
|
|
|
% NetFPGA
|
2019-08-20 14:40:35 +00:00
|
|
|
The NetFPGA, from the hardware point of view, is a very
|
2019-08-20 14:32:44 +00:00
|
|
|
interesting hardware platform. Reducing the difficulties
|
|
|
|
we experienced with the surrounding toolchain and making
|
|
|
|
development experience more consistent has the potential to not only
|
2019-08-21 17:06:10 +00:00
|
|
|
make NetFPGA, but also the whole set of P4 hardware more interesting for
|
2019-08-20 14:32:44 +00:00
|
|
|
developers.
|
|
|
|
|
|
|
|
%% PMTU
|
|
|
|
%% handling error cases
|
|
|
|
%% No fragmentation
|
|
|
|
%% No address / mac learning
|
|
|
|
%% session handling
|