master-thesis/doc/Conclusion.tex

79 lines
3.3 KiB
TeX
Raw Normal View History

\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}.}
We expect this to support migration to IPv6 only networks.
2019-08-16 10:23:35 +00:00
% P4
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
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
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
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
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