master-thesis/doc/plan.org

107 lines
4.3 KiB
Org Mode
Raw Normal View History

2019-02-20 11:37:39 +00:00
* Time table
2019-02-20 12:31:21 +00:00
| 2019-02-22 | kick-off |
| 2019-02-22 | have all papers handed in |
| 2019-02-22 | Have rough definition of tasks |
| 2019-03-01 | Feature list / priority list / roadmap clear |
| 2019-03-08 | NAT46 1:1 table TCP/UDP working |
| 2019-03-15 | NAT46 1:1 table ICMP, ICMPv6 working |
| | |
| 2019-08-05 | Latest start writing documentation |
| 2019-08-21 | hand in thesis |
2019-02-20 11:37:39 +00:00
* Topics / Tasks
2019-02-20 12:01:57 +00:00
** Admin
*** TODO Create task description to be handed in mystudies
*** TODO Get OK from Ueli Maurer that thesis is valid in Information Security Area
*** TODO Create list of tasks / initial brainstorming
*** TODO Find out how-when-whom-where to meet / define schedule
*** TODO Latex and/or org-mode for the thesis?
2019-02-20 12:31:21 +00:00
*** TODO Add initial milestones
**** 180d plan
**** 25w
2019-02-20 12:01:57 +00:00
** Thesis implementation
*** TODO Get feature list of jool
*** TODO Get feature list of tayga
2019-02-20 12:31:21 +00:00
*** TODO Setup P4 base / structure
*** DONE Setup test VM for P4: 2a0a:e5c0:2:12:400:f0ff:fea9:c3e3
*** TODO Setup test VM [dual stack] for Jool:
*** TODO Setup test VM [dual stack] for tayga:
*** NAT64/NAT46 Features in jool and tayga
**** TODO Static 1:1 NAT46: translate from IPv4 to IPv6 with a table
***** TCP, UDP
***** ICMP <-> ICMPv6
**** TODO Stateless Prefix based NAT64: IPv6 to IPv4 translation prefix based
***** Allows IPv6 hosts to reach the IPv4 Internet
2019-02-20 12:01:57 +00:00
** Thesis documentation
2019-02-20 12:31:21 +00:00
*** Motivation
TBD
*** Current state of the art tayga/jool
TBD
*** P4 based implementation
TBD
*** Performance comparison
*** Feature/Functionality difference / overview
**** Not included
- DNS64 - has already been solved in a different domain
*** References / Follow up
**** RFC 6052
2019-02-20 12:01:57 +00:00
* Proposal / task description
** Task description for mystudies
*** 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.
** Original ideas
Proposal 1: Automating NAT64 with P4
In IPv6 only data centers IPv4 connectivity is still a business
requirement. Current state of the art methods include layer 7 proxying
or static assignments. both featuring static assignments.
A flexible, dynamic assignment of IPv4 addresses to IPv6 hosts, similar
to lease times in DHCPv4 and prefix delegations in DHCPv6 could reduce
the pressure on IPv4 addresses.
I would suggest the develop of a new protocol (likely UDP embedded) that
allows hosts to request on-network support for IPv4 addresses. As IPv4
addresses have to be treated as "expensive", an accounting metric has to
be introduced. While in the business world this is usually related to
money, in the network world IPv4 users could be paying the network by
(reduced) bandwidth.
If such a metric existed, devices attached to the network could also try
to negotiate and wait for using IPv4, when the price / penality for IPv4
is low (this might be very suitable for mail exchangers for instance).
Proposal 2: High speed NAT64 with P4
Currently there are two main open source NAT64 solution available:
tayga[0] and jool[1]. The former is a single threaded, cpu bound user
space solution, the latter a custom Linux kernel module.
I would like to challenge this status quo and develop a P4 based
solution supporting all features of jool/tayga and comparing the
performance and adaptivity of the solutions.
[0] http://www.litech.org/tayga/
[1] https://www.jool.mx/en/index.html
Proposal 3: Challenging the status quo with IPv10
The de facto standard in networking is to treat IPv4
and IPv6 as "impossible to combine". This proposal is
to challenge this notion with three different methods:
- Extensions to IPv4 to request remote IPv6 transport
- Extensions to IPv6 to request remote IPv4 transport
- Support in network equipment to handle the extensions
As the IPv4 header does not allow embedding IPv6 addresses due to size
limitations, embedding the destination address in a secondary header
might be necessary (possibly encapsulated in UDP).