mxre / n2n

N2N V2 VPN with IPv6 support, Windows Services and Linux Capability Awareness
GNU General Public License v3.0
17 stars 10 forks source link

n2n_v2(ntop/n2n) has been updated but do not support IPV6 #1

Open llfj opened 4 years ago

llfj commented 4 years ago

can you update mxre/n2n to refer to ntop's. Because there are some new functions in it, and there are AES encryption parameters to choose from. thank you!

mxre commented 4 years ago

True, I forked https://github.com/MuJJus/n2n because it was the code base I was originally using on my system. But the changes I made are purposefully different some of those in https://github.com/ntop/n2n eg, I modified AES encryption (which already existed previously in n2n to use OpenSSL EVP instead of primitives so that I can leverage Hardware AES (which makes a huge difference on systems like EspressoBin), other SSL Libraries where, Windows support with SCM, IPv6 where just programming exiercieses for me.

I use this code base daily for myself and it works if I have the time I will consider rebasing some of my stuff onto ntop's code and maybe putting in pullrequests (after I'm sufficiently sure that these are safe; eg my implementation of AES is not 100% compatible with ntops version and it sometimes happens that they can't talk to each other, and there are probably many more bugs like that)

lucktu commented 4 years ago

Yeah, well, hopefully you'll join ntop, and it'll last longer, unless there's a big difference between the ntop and your ideology.

I wonder how your AES works?

By the way, can you share your compiled edge and supernode?

mxre commented 4 years ago

Compiled versions are available for Windows on the releases page: https://github.com/mxre/n2n/releases

I use Arch Linux myself and I've made bad experiences sharing compiled executables since Arch libraries are cutting edge and ELFs compiled for arch usually don't work on less up-to-date distributions. But compiling for Linux is way easier than for Windows. You just need cmake and a working gcc.

As for AES: n2n uses OpenSSL AES primitives which are software implementations of AES. This version of edge uses OpenSSL EVP which selects the AES implementation based on CPU and hardware availability. Furthermore I added support for other Crytpo libraries (Nettle, gcrypt, mbedtls, BCrypt (aka. Windows NG Crypto Provider)).

It might be possible to make a pull request for upstream n2n but I currently don't have the time, if someone else is willing to do so, I've no objections

lucktu commented 4 years ago

Unfortunately, there is no n2n for x86. Thank you!

Logan007 commented 4 years ago

@mxre: Sir, we must be on some kind of the very same schedule... it feels a bit spooky :smile:

I just got aware of your fork and changes to the original – I promise!