++notes ++begin nat64 prefix

This commit is contained in:
Nico Schottelius 2019-03-06 14:07:47 +01:00
parent 25405a6ae1
commit f7fc8ef412
2 changed files with 17 additions and 3 deletions

View file

@ -64,14 +64,16 @@
| 2019-03-06 | Meet Laurent #3 | | | 2019-03-06 | Meet Laurent #3 | |
| | - Checksum's in scapy | | | | - Checksum's in scapy | |
| | - Python2 ipaddress fix (import future) | | | | - Python2 ipaddress fix (import future) | |
| | - Added custom package format / additional information in packet | |
| | - (partial) NDP working in controller | |
| | - P4 checksum_with_payload | | | | - P4 checksum_with_payload | |
| | - Reading scapy / inet6 | | | | - Reading scapy / inet6 | |
| | - Further checksum tests -> required everywhere in IPv6 | | | | - Further checksum tests -> required everywhere in IPv6 | |
| | - (partial) NDP working in controller | |
| | - icmp6 echo request working in controller | | | | - icmp6 echo request working in controller | |
| | - Hosts can ping6 the switch | | | | - Hosts can ping6 the switch | |
| | - Ran into P4 casting bug: https://github.com/p4lang/p4c/issues/1765 | | | | - Ran into P4 casting bug: https://github.com/p4lang/p4c/issues/1765 | |
| | -> seems to be more than just casting bug | | | | -> seems to be more than just casting bug | |
| | - Default route for ipv6 hosts | |
| | | | | | | |
| | Next target: | | | | Next target: | |
| | - Focus on enabling the "Internet" with ICMP6 translation | | | | - Focus on enabling the "Internet" with ICMP6 translation | |
@ -171,7 +173,7 @@ DEBUG:main:cpu = <CpuHeader task=ICMP6_NS ingress_port=1 type=0x86dd |<Raw loa
DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::1 dst=ff02::1:ff00:42 |<ICMPv6ND_NS type=Neighbor Solicitation code=0 cksum=0xd3a4 res=0 tgt=2001:db8::42 |<ICMPv6NDOptSrcLLAddr type=1 len=1 lladdr=00:00:0a:00:00:01 |>>>> DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::1 dst=ff02::1:ff00:42 |<ICMPv6ND_NS type=Neighbor Solicitation code=0 cksum=0xd3a4 res=0 tgt=2001:db8::42 |<ICMPv6NDOptSrcLLAddr type=1 len=1 lladdr=00:00:0a:00:00:01 |>>>>
DEBUG:main:Doing neighbor solicitation DEBUG:main:Doing neighbor solicitation
***** TODO For other nodes -> multicast ***** DONE For other nodes -> multicast
***** TODO Maybe implement link local addresses (missing at the moment) ***** TODO Maybe implement link local addresses (missing at the moment)
****** ff02::/?? ****** ff02::/??
****** rfc4861 ****** rfc4861
@ -185,7 +187,17 @@ multicast address of the target address."
**** DONE Make switch answer icmp6 echo request for **** DONE Make switch answer icmp6 echo request for
**** TODO Make switch answer icmp echo request for **** TODO Make switch answer icmp echo request for
**** TODO Add default route for v6 and v4 hosts **** DONE Add default route for v6 hosts
p4@ubuntu:~/master-thesis$ mx h1 ip -6 r
sudo: unable to resolve host ubuntu
2001:db8::/64 dev h1-eth0 proto kernel metric 256 pref medium
fe80::/64 dev h1-eth0 proto kernel metric 256 pref medium
default via 2001:db8::42 dev h1-eth0 metric 1024 pref medium
p4@ubuntu:~/master-thesis$
**** TODO Add default route for v4 hosts
**** TODO Translate ipv6 --> ipv4 with a (freely programmable) prefix
***** TODO Insert prefix into switch
***** TODO Implement the calculation
**** TODO Translate icmp <-> icmp6 **** TODO Translate icmp <-> icmp6
**** TODO Create table entry for mapping v4->v6 [net] **** TODO Create table entry for mapping v4->v6 [net]
**** TODO Create table entry for mapping v6->v4 [net] **** TODO Create table entry for mapping v6->v4 [net]
@ -512,6 +524,7 @@ DEBUG:main:INCOMING: <Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x
**** Solicited node multicast address https://en.wikipedia.org/wiki/Solicited-node_multicast_address **** Solicited node multicast address https://en.wikipedia.org/wiki/Solicited-node_multicast_address
**** Scapy / IPv6: https://www.idsv6.de/Downloads/IPv6PacketCreationWithScapy.pdf **** Scapy / IPv6: https://www.idsv6.de/Downloads/IPv6PacketCreationWithScapy.pdf
**** V1 model: https://github.com/p4lang/p4c/blob/master/p4include/v1model.p4 **** V1 model: https://github.com/p4lang/p4c/blob/master/p4include/v1model.p4
**** Cisco NAT64 https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/xe-3s/nat-xe-3s-book/iadnat-stateful-nat64.pdf
* Proposal / task description * Proposal / task description
** Task description for mystudies ** Task description for mystudies
*** High speed NAT64 with P4 *** High speed NAT64 with P4

View file

@ -64,6 +64,7 @@ class L2Controller(object):
self.info['v4_gen'] = self.info['v4_base'].subnets(new_prefix=self.info['v4_mask']) self.info['v4_gen'] = self.info['v4_base'].subnets(new_prefix=self.info['v4_mask'])
self.info['switch_suffix'] = 0x42 self.info['switch_suffix'] = 0x42
self.info['nat64_nat_prefix'] = ipaddress.ip_network("64:ff9b::/96")
self.v6_routes = {} self.v6_routes = {}
self.v6_routes[None] = [] self.v6_routes[None] = []