emanuele-f
c89ece71ca
Code rework changes
- Remove keyschedule leftover and adapt to new API
- Fix cleanup functions
- Remove unused random_device_mac
6 years ago
emanuele-f
f577d997a7
Drop keyschedule support
- Legacy features are now moved to the legacy directory with readme
- Keyschedule feature is not supported anymore
6 years ago
emanuele-f
e757f94efa
Initial code rework (wip)
- The edge structure is now opaque
- The configuration is now exposed via an API
- Code cleanup: using multiple transops at once is not supported anymore
6 years ago
emanuele-f
08b992cbb7
Add more detailed error message when TAP open fails
Closes #94
6 years ago
emanuele-f
fc16352198
Add decryption test in benchmark
6 years ago
emanuele-f
c702ca8686
Move AES IV out of struct sa_aes
6 years ago
emanuele-f
84593a2254
memcpy fix
6 years ago
emanuele-f
bb07f0426e
Properly initialize AES IV and hash the AES key
This implements the changes discussed in #68 and #72 .
This breaks compatibility with the previous AES implementation.
This also fixes two problems reported by valgrind:
==4887== Invalid write of size 2
==4887== at 0x483E9DB: memmove (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4887== by 0x10E37F: setup_aes_key (transform_aes.c:378)
==4887== by 0x10E451: add_aes_key (transform_aes.c:401)
==4887== by 0x10ED10: transop_aes_setup_psk (transform_aes.c:580)
==4887== by 0x10A547: main (benchmark.c:92)
==4887== Address 0x4d574a0 is 0 bytes after a block of size 16 alloc'd
==4887== at 0x4839B65: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4887== by 0x10E337: setup_aes_key (transform_aes.c:374)
==4887== by 0x10E451: add_aes_key (transform_aes.c:401)
==4887== by 0x10ED10: transop_aes_setup_psk (transform_aes.c:580)
==4887== by 0x10A547: main (benchmark.c:92)
==13057== Use of uninitialised value of size 8
==13057== at 0x49023B3: ??? (in /usr/lib/libcrypto.so.1.1)
==13057== by 0x490346A: AES_cbc_encrypt (in /usr/lib/libcrypto.so.1.1)
==13057== by 0x11270A: transop_encode_aes (transform_aes.c:230)
==13057== by 0x10F5CD: send_packet2net (edge_utils.c:1224)
==13057== by 0x10F813: readFromTAPSocket (edge_utils.c:1278)
==13057== by 0x1106A8: run_edge_loop (edge_utils.c:1596)
==13057== by 0x10B9F7: main (edge.c:701)
6 years ago
emanuele-f
d689691599
n2n.h cleanup
6 years ago
emanuele-f
3149a77753
Replace fprintf with traceEvent
6 years ago
emanuele-f
49d5ecf2a8
Reduce duplicated code in quick_edge_init
6 years ago
emanuele-f
50bc1492e2
Remove unnecessary structures in AES encryption
This undoes most of the changes made in 37233553a4
as the problem with the drops was only mitigated.
The actual fix for the dropped packets was in e989f475a1
and the invalid initialization was the root cause
6 years ago
emanuele-f
e3951631b9
Improve benchmark
Sample on i3 2GHz:
Run [transop_null] for 3s (512 bytes): 11203585 packets 3734.5 Kpps 1912.1 MB/s
Run [transop_twofish] for 3s (512 bytes): 60705 packets 20.2 Kpps 10.4 MB/s
Run [transop_aes] for 3s (512 bytes): 467937 packets 156.0 Kpps 79.9 MB/s
6 years ago
emanuele-f
d4205d36fd
Additional fix for missing SO_REUSEPORT
edge_utils already fixed in 77392f8e53
6 years ago
emanuele-f
e989f475a1
Fix invalid initializations
6 years ago
emanuele-f
f5b2d00b06
Show multicast group join error code
6 years ago
emanuele-f
03761fc84c
Handle WSAECONNRESET to avoid stopping the supernode on Windows
6 years ago
emanuele-f
03dbedd52b
Change supernode registration messages log to info
6 years ago
emanuele-f
c71f629d1b
Fix encryption key being zeroed by AES initialization
6 years ago
emanuele-f
9e2aa47bf0
Add Centos packaging instructions
6 years ago
emanuele-f
7e5fd863a8
Improve Windows compilation instructions
6 years ago
emanuele-f
327a847681
Version fix
6 years ago
emanuele-f
77392f8e53
Add check for SO_REUSEPORT
Fixes #51
6 years ago
emanuele-f
5742ef978f
Add Windows compilation instructions
6 years ago
Emanuele Faranda
d7b3b2c06b
Merge pull request #66 from csheely/windows-cmake-build
Submit minor changes to enable Windows CMake builds w/o requiring additional local mods.
6 years ago
Emanuele Faranda
585ed22a5d
Merge pull request #67 from emanuele-f/fix_aes_multiedge
Fixes packet drops while communicating with multiple nodes in AES PSK
6 years ago
Emanuele Faranda
c4b96bea42
Merge pull request #71 from emanuele-f/udp_timeout
Reduce the registration timeout to keep the connection open
6 years ago
emanuele-f
5f4dfdc683
Reduce the registration timeout to keep the connection open
6 years ago
emanuele-f
37233553a4
Fixes packet drops while communicating with multiple nodes in AES PSK
Per-node AES structures must be kept as CBC cannot work with a single structure across multiple nodes
6 years ago
Chris Sheely
ba0ecabbf6
Submit minor changes to enable Windows CMake builds w/o further mods.
6 years ago
emanuele-f
5feb00bcf8
Create gitignore
6 years ago
Luca
dcf96a0809
Added #ifdef's for AES
6 years ago
Luca Deri
d275965e00
Merge pull request #60 from emanuele-f/enable_aes
Add AES CBC psk encryption
6 years ago
emanuele-f
200cfd24a3
Fix benchmark AES lib
6 years ago
emanuele-f
5d7db5f332
Add transopts benchmarks
6 years ago
emanuele-f
e4601590aa
Add -A option to enable AES CBC psk encryption
6 years ago
Luca Deri
63e74ccc6a
Added support for ARM64 platforms
6 years ago
emanuele-f
a96237f83d
Use systemd helpers to honor system wide preferences on service enable/start
Also fix services being started after upgrade even if they were disabled but config existed
6 years ago
Luca Deri
1e8b61806d
Added note to fix /dev/tap problems
6 years ago
emanuele-f
f02b68f5af
Use after network-online to avoid DNS resolve and multicast bind issues
6 years ago
Emanuele Faranda
d896a9c3e8
Fix missing n2n-ntopng in configure
6 years ago
emanuele-f
3bd4e2c335
Add n2n-ntopng to bind the services lifetimes
6 years ago
Luca Deri
55d5392cd2
Added check for missing argument (-l)
6 years ago
emanuele-f
e07ae72c17
Fix multicast self registration
Trace: (192.168.1.10/AE:C4:1F:99:D7:16 is the edge node itself)
02/Dec/2018 23:01:44 [edge_utils.c:175] Registering with multicast group 224.0.0.68:1968
02/Dec/2018 23:01:44 [edge_utils.c:533] send REGISTER 224.0.0.68:1968
02/Dec/2018 23:01:44 [edge_utils.c:463] sendto sent=36 to
02/Dec/2018 23:01:44 [edge_utils.c:1500] Received packet from multicast socket
02/Dec/2018 23:01:44 [edge_utils.c:1296] ### Rx N2N UDP (36) from 192.168.1.10:48122
02/Dec/2018 23:01:44 [edge_utils.c:1341] Rx REGISTER src=AE:C4:1F:99:D7:16 dst=00:00:00:00:00:00 from peer 192.168.1.10:48122 (192.168.1.10:48122)
02/Dec/2018 23:01:44 [edge_utils.c:567] send REGISTER_ACK 192.168.1.10:48122
02/Dec/2018 23:01:44 [edge_utils.c:463] sendto sent=36 to
02/Dec/2018 23:01:44 [edge_utils.c:1296] ### Rx N2N UDP (36) from 192.168.1.10:48122
02/Dec/2018 23:01:44 [edge_utils.c:1367] Rx REGISTER_ACK src=AE:C4:1F:99:D7:16 dst=AE:C4:1F:99:D7:16 from peer 192.168.1.10:48122 (192.168.1.10:48122)
02/Dec/2018 23:01:44 [edge_utils.c:266] set_peer_operational: AE:C4:1F:99:D7:16 -> 192.168.1.10:48122
02/Dec/2018 23:01:44 [edge_utils.c:318] Failed to find sender in pending_peers.
6 years ago
Luca Deri
e7cfa00435
Path fix
6 years ago
Luca Deri
b758d69e6c
Config files are installed with the .sample extension
You can now do 'cp edge.conf.sample edge.conf' to create a n2n configuration. If the .conf (for edge and supernode) are present, the service is enabled automatically. This prevents unwanted services to be enabled, and it preserves services activation across updates
6 years ago
Emanuele Faranda
b84cedd8b8
Add support for multi-service n2n edge
E.g. systemctl start edge@n2n1 will read /etc/n2n/edge-n2n1.conf
6 years ago
Luca Deri
2e2654dd2a
Disable automatic n2n startup
6 years ago
Luca Deri
48c7ff78bd
Merge pull request #53 from emanuele-f/honor_no_routing
Fix packets from clients being routed even when routing is disabled
6 years ago
emanuele-f
7fd1778d7c
Fix packets from clients being routed when routing is disabled
6 years ago