ip-v8 / rust-ipv8

Rust implementation of the IPv8 application.
https://ip-v8.github.io/rust-ipv8/ipv8
GNU Lesser General Public License v3.0
13 stars 2 forks source link

Add ipv6 support #11

Open dsluijk opened 5 years ago

dsluijk commented 5 years ago

The problem

py-ipv8 does not seem to support IPv6 for some unknown reason. It also appears to be quite hardcoded into it [1].

Suggested solution

My suggestion is to use a special reserved IPv4 address to indicate that the program should look for the ipv6 address later in the payload, as it will clearly not fit in the currently allocated space for IP address. The benefit of using a reserved ipv4 address for this purpose as opposed to a flag bit is that so the flag bits could be used for other purposes down the line.

Remarks

As everyone gets their own IPv6 address NAT hole puncturing should not be necessary for connecting clients together if they can use IPv6.

Copied from #10

ichorid commented 5 years ago

I would suggest implementing protocol detection procedure based on magic numbers (community numbers, etc) instead. Please, describe possible packet exchange scenarios in this issue, so we can discuss it thoroughly.

Do you realize that you now have the opportunity not only to reimplement the protocol but to redesign it properly?

jdonszelmann commented 5 years ago

yes we do realize this :) thanks for the feedback!