Adam Ierymenko
|
cc1b275ad9
|
Replicate peer endpoints and forget paths if we have them -- this allows two clusters to talk to each other, whereas forgetting all paths does not.
|
2015-10-27 16:47:13 -07:00 |
|
Adam Ierymenko
|
cc6080fe38
|
(1) No need to confirm if we are a root (small optimization), (2) Refactor peer affinity tracking.
|
2015-10-27 15:57:26 -07:00 |
|
Adam Ierymenko
|
6399f6f094
|
This no longer has to be quite so fast.
|
2015-10-27 15:02:15 -07:00 |
|
Adam Ierymenko
|
218ef07d8e
|
Build fix in TRACE mode.
|
2015-10-27 15:01:11 -07:00 |
|
Adam Ierymenko
|
16bc3e0398
|
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
|
2015-10-27 15:00:16 -07:00 |
|
Adam Ierymenko
|
40976c02a4
|
Forget paths to peers if we are handing them off.
|
2015-10-27 14:37:38 -07:00 |
|
Adam Ierymenko
|
f692cec763
|
Change how cluster relays packets -- just PROXY_UNITE and then send packet via normal ZeroTier front plane -- more efficient and eliminates fragmentation issues.
|
2015-10-27 14:04:12 -07:00 |
|
Adam Ierymenko
|
cfe166ef35
|
Tweak some size limits.
|
2015-10-27 12:29:01 -07:00 |
|
Adam Ierymenko
|
0ffbd05c0e
|
--wtf; prevent roots from TCP fallback
|
2015-10-27 12:21:57 -07:00 |
|
Adam Ierymenko
|
a1a0ee4edb
|
Fix infinite loop in Cluster, clean up some stuff elsewhere, and back out rate limiting in PUSH_DIRECT_PATHS for now (but we will do something else to mitigate amplification attacks)
|
2015-10-27 12:01:00 -07:00 |
|
Adam Ierymenko
|
54a99d8e32
|
Well that was broken.
|
2015-10-27 11:14:07 -07:00 |
|
Adam Ierymenko
|
62db18b6dd
|
Lessen this limit just a bit to make cluster settle faster.
|
2015-10-27 11:01:58 -07:00 |
|
Adam Ierymenko
|
f32e9d07dd
|
Don't include COM if not necessary (fix).
|
2015-10-27 10:58:01 -07:00 |
|
Adam Ierymenko
|
700c3166b7
|
Fix inverted sense bug.
|
2015-10-27 10:51:11 -07:00 |
|
Adam Ierymenko
|
17e7528e2c
|
More root cleanup.
|
2015-10-27 10:40:31 -07:00 |
|
Adam Ierymenko
|
8a7a0b6b88
|
Cleanup, including simplification of root server picking algorithm since we no longer need all that craziness.
|
2015-10-27 10:37:39 -07:00 |
|
Adam Ierymenko
|
9617208e40
|
Some cleanup, and use VERB_PUSH_DIRECT_PATHS to redirect newer peers.
|
2015-10-27 09:53:43 -07:00 |
|
Adam Ierymenko
|
69857b4ba8
|
Refactor cluster redirects to move code to push peers out of the actual Cluster function that checks for redirect, and clean up Peer::received() to be a bit more logical.
|
2015-10-27 09:36:48 -07:00 |
|
Adam Ierymenko
|
e713f7a54c
|
Can redirect in response to a few more verbs, just not these.
|
2015-10-26 18:20:40 -07:00 |
|
Adam Ierymenko
|
98d856daa2
|
Only send redirects to the sending InetAddress and only in response to a set of certain frame types to avoid potential race conditions.
|
2015-10-26 17:58:51 -07:00 |
|
Adam Ierymenko
|
8bfb02ba3c
|
Only send redirects for the same address class, and elminiate some TRACE noise.
|
2015-10-26 16:55:55 -07:00 |
|
Adam Ierymenko
|
0b82c9ebad
|
Fix infinite loop if there are no live roots (never happened before?!? wow!)
|
2015-10-26 16:09:56 -07:00 |
|
Adam Ierymenko
|
de761c5a82
|
Fix test world def.
|
2015-10-26 15:47:32 -07:00 |
|
Adam Ierymenko
|
6cf1da166f
|
Add the whole new World, though with test identities at this point.
|
2015-10-26 15:12:28 -07:00 |
|
Adam Ierymenko
|
debed1ac2d
|
Expose cluster status in /status JSON response.
|
2015-10-26 13:06:10 -07:00 |
|
Adam Ierymenko
|
5ff7733f84
|
More plumbing of cluster status.
|
2015-10-26 12:49:17 -07:00 |
|
Adam Ierymenko
|
865acfa40f
|
Cluster status plumbing.
|
2015-10-26 12:41:08 -07:00 |
|
Adam Ierymenko
|
3ce5ad9e2c
|
For forward compatibility, add minimal parse for some future physical address types.
|
2015-10-26 10:42:30 -07:00 |
|
Adam Ierymenko
|
d2b1dfe424
|
Fully specify new network in alice-test, this will (with different identities) eventually become the World.
|
2015-10-23 15:51:50 -07:00 |
|
Adam Ierymenko
|
35676217e8
|
Refactor multicast group announcement to work directly or indirectly.
|
2015-10-23 14:50:07 -07:00 |
|
Adam Ierymenko
|
e9648a6cdf
|
Clarify logic in pinging, and prevent roots from pinging "down."
|
2015-10-23 14:05:12 -07:00 |
|
Adam Ierymenko
|
e6a63f5547
|
Fix bug in setWorld that might have caused a peer entry for myself (which would never be used)
|
2015-10-23 13:57:02 -07:00 |
|
Adam Ierymenko
|
29b966894c
|
(1) Fix bug in geo-ip service that prevented cache lookup, (2) fix problem in SelfAwareness (will need to test ALL versions in the wild with this), and (3) add more TRACE instrumentation to Cluster.
|
2015-10-23 13:03:34 -07:00 |
|
Adam Ierymenko
|
964b30902a
|
Cluster fix: was accumulating remote endpoints endlessly.
|
2015-10-23 11:51:18 -07:00 |
|
Adam Ierymenko
|
7711eba297
|
More cluster wiring...
|
2015-10-22 16:02:01 -07:00 |
|
Adam Ierymenko
|
978b056a01
|
Wire in redirectPeer(), now about ready to test clustering!
|
2015-10-20 17:36:10 -07:00 |
|
Adam Ierymenko
|
6a7b47e5e1
|
Forgot a return true.
|
2015-10-20 17:27:57 -07:00 |
|
Adam Ierymenko
|
d6dee7bb5c
|
Clustered handling of relaying.
|
2015-10-20 17:22:53 -07:00 |
|
Adam Ierymenko
|
35a12b94ea
|
Outfit Cluster with TRACE for debugging.
|
2015-10-20 16:48:49 -07:00 |
|
Adam Ierymenko
|
2258e36a59
|
Move replication of COMs to avoid race condition.
|
2015-10-20 16:34:21 -07:00 |
|
Adam Ierymenko
|
59e1444b27
|
Finish wiring up Cluster, fix some issues with other recent changes.
|
2015-10-20 16:31:41 -07:00 |
|
Adam Ierymenko
|
eb79d4a2f3
|
Wire up peer announcement in cluster.
|
2015-10-20 16:24:21 -07:00 |
|
Adam Ierymenko
|
57e29857cf
|
Cluster work -- integrating with the rest of the code.
|
2015-10-20 15:27:53 -07:00 |
|
Adam Ierymenko
|
5e6eae620b
|
Make _members dynamically allocated due to static array limit on ARM.
|
2015-10-19 16:18:57 -07:00 |
|
Adam Ierymenko
|
69dad37d8f
|
Restore default World for commit to upstream
|
2015-10-19 15:23:43 -07:00 |
|
Adam Ierymenko
|
cfdcce6d12
|
Fix very obscure IP scope classification logic bug.
|
2015-10-19 15:19:04 -07:00 |
|
Adam Ierymenko
|
0b2e5ed499
|
Fix some broken logic in Path::reliable()
|
2015-10-19 15:11:43 -07:00 |
|
Adam Ierymenko
|
9150778757
|
.
|
2015-10-19 15:04:26 -07:00 |
|
Adam Ierymenko
|
50f3ccd3c9
|
.
|
2015-10-19 15:03:58 -07:00 |
|
Adam Ierymenko
|
584072fa6a
|
Fix for V4/V6 stable addressing.
|
2015-10-19 14:04:36 -07:00 |
|
Adam Ierymenko
|
3adb183c5f
|
Fix bad COM attachment bug and eliminate an unnecessary redundant check.
|
2015-10-19 13:38:27 -07:00 |
|
Adam Ierymenko
|
95953b48f9
|
Do not allow VERB_RENDEZVOUS from non-upstream peers to block potential DOS vector.
|
2015-10-19 12:56:29 -07:00 |
|
Adam Ierymenko
|
aa6e3c79a0
|
Some test stuff that will not be pushed elsewhere.
|
2015-10-19 10:49:31 -07:00 |
|
Adam Ierymenko
|
738fa5a5e5
|
.
|
2015-10-16 12:10:57 -07:00 |
|
Adam Ierymenko
|
cc4d0199e7
|
Fix vProto init.
|
2015-10-16 10:58:59 -07:00 |
|
Adam Ierymenko
|
781f06ef82
|
Accept OK for confirm of HELLO or ECHO.
|
2015-10-16 10:48:38 -07:00 |
|
Adam Ierymenko
|
f9f60f89d9
|
Peer save/restore fix.
|
2015-10-16 10:45:58 -07:00 |
|
Adam Ierymenko
|
5ce3aac929
|
Add rate limit on receive of DIRECT_PATH_PUSH to prevent DOS exploitation.
|
2015-10-16 10:28:09 -07:00 |
|
Adam Ierymenko
|
2229e91b57
|
IPv6 support fixes.
|
2015-10-16 10:10:12 -07:00 |
|
Adam Ierymenko
|
2debde3451
|
GitHub issue #235, and I also see no reason not to communicate with people from other Worlds.
|
2015-10-15 07:22:17 -07:00 |
|
Adam Ierymenko
|
9ece8c465e
|
decrypt fix
|
2015-10-14 15:49:41 -07:00 |
|
Adam Ierymenko
|
59389b3dce
|
Untested cluster code, not enabled.
|
2015-10-14 14:17:55 -07:00 |
|
Adam Ierymenko
|
619e113748
|
Work in progress on Cluster for new root infrastructure, multi-homing.
|
2015-10-14 14:12:12 -07:00 |
|
Adam Ierymenko
|
c312ae221f
|
Fix for world size in OK(HELLO)
|
2015-10-14 10:45:33 -07:00 |
|
Adam Ierymenko
|
719233617c
|
Add uint16_t key to Hashtable, and make Salsa20 zero its keyspace on destruction.
|
2015-10-14 10:14:07 -07:00 |
|
Adam Ierymenko
|
489e1a5b83
|
Don't keep connections up longer than the alive timeout (unless they are relays or roots)
|
2015-10-13 13:51:54 -07:00 |
|
Adam Ierymenko
|
824ed99160
|
.
|
2015-10-13 12:42:54 -07:00 |
|
Adam Ierymenko
|
70d8e3ad94
|
Expose world ID and world timestamp in ZT_NodeStatus
|
2015-10-13 12:31:38 -07:00 |
|
Adam Ierymenko
|
e268d9492a
|
cleanup
|
2015-10-13 12:18:47 -07:00 |
|
Adam Ierymenko
|
123c466843
|
Full integration of World and World updates.
|
2015-10-13 12:17:47 -07:00 |
|
Adam Ierymenko
|
5d2f523e81
|
World stuff...
|
2015-10-13 12:10:44 -07:00 |
|
Adam Ierymenko
|
05677f57e2
|
Add C output to mkworld.
|
2015-10-13 08:55:21 -07:00 |
|
Adam Ierymenko
|
cae58f43f1
|
More World stuff, and mkworld.
|
2015-10-13 08:49:36 -07:00 |
|
Adam Ierymenko
|
1b1945c63e
|
Work in progress on refactoring root-topology into World and adding in-band updates.
|
2015-10-12 18:25:29 -07:00 |
|
Adam Ierymenko
|
70fe7dd1fd
|
cleanup
|
2015-10-12 16:40:57 -07:00 |
|
Adam Ierymenko
|
eff1fe3c61
|
Create files for each hop (more convenient) and fix a packet parse bug.
|
2015-10-09 16:22:34 -07:00 |
|
Adam Ierymenko
|
aec13b50fd
|
Be a bit more verbose in circuit test reports to more clearly track current and upstream hop in graph traversal history.
|
2015-10-09 15:05:26 -07:00 |
|
Adam Ierymenko
|
a95fa379cc
|
Circuit tests basically work but need some tweaks, and fix some issues found with valgrind.
|
2015-10-09 14:51:38 -07:00 |
|
Adam Ierymenko
|
0c498556d5
|
Unroll Salsa20 fully for a little more speed (non-SSE now almost as fast as SSE)
|
2015-10-09 09:39:27 -07:00 |
|
Adam Ierymenko
|
3fa6dd377f
|
docs
|
2015-10-09 08:51:57 -07:00 |
|
Adam Ierymenko
|
160278c489
|
Little bit of reorg in Salsa20 which seems to speed things up very slightly.
|
2015-10-08 17:42:53 -07:00 |
|
Adam Ierymenko
|
558775d544
|
Merge branch 'adamierymenko-dev' of http://10.6.6.2/zerotier/ZeroTierOne into adamierymenko-dev
|
2015-10-08 13:26:43 -07:00 |
|
Adam Ierymenko
|
a3876353ca
|
Abiltiy to post a test via the controller web API, and parsing of CIRCUIT_TEST_REPORT messages.
|
2015-10-08 13:25:38 -07:00 |
|
Adam Ierymenko
|
273f0d18b0
|
docs
|
2015-10-08 09:05:25 -07:00 |
|
Grant Limberg
|
9347d6c866
|
Make it so ZeroTierOne.h can be used with a C compiler again.
|
2015-10-07 18:04:40 -07:00 |
|
Adam Ierymenko
|
fea1b6b2c3
|
docs
|
2015-10-07 16:25:08 -07:00 |
|
Adam Ierymenko
|
0ce0bc00d2
|
Make sure received() gets called for some new messages, and docs.
|
2015-10-07 16:20:54 -07:00 |
|
Adam Ierymenko
|
69b44bf9a5
|
Finally add an ECHO.
|
2015-10-07 16:11:50 -07:00 |
|
Adam Ierymenko
|
73cafbe0ec
|
Limit proof of work difficulty to something sane.
|
2015-10-07 13:46:44 -07:00 |
|
Adam Ierymenko
|
e5f168f599
|
Add proof of work request for future DDOS mitigation use.
|
2015-10-07 13:35:46 -07:00 |
|
Adam Ierymenko
|
7d62dbe9f7
|
Tune NAT-t keepalives so that timing is better obeyed, clean up a build warning, and fix a potential source of network recursion (though harmless).
|
2015-10-07 11:57:59 -07:00 |
|
Adam Ierymenko
|
13f14c2f4c
|
Kill debug line.
|
2015-10-07 10:56:47 -07:00 |
|
Adam Ierymenko
|
c952fbbd8d
|
Only enable 128-bit Poly1305 on X86_64 right now. Has compilation issues on ARM, but the 64-bit version should be fine.
|
2015-10-07 10:40:59 -07:00 |
|
Adam Ierymenko
|
ab0228f626
|
More cleanup and simple refactoring, consolidate InetAddres serialize/deserialize into the class.
|
2015-10-07 10:30:47 -07:00 |
|
Adam Ierymenko
|
1b2cac0cc5
|
Trim some cruft that is not used and probably never would be.
|
2015-10-07 09:38:33 -07:00 |
|
Adam Ierymenko
|
598a1d8dd7
|
Try reopening /dev/urandom if there is a problem.
|
2015-10-06 18:10:40 -07:00 |
|
Adam Ierymenko
|
64aaea3978
|
Cleanup, and add an even faster Poly1305 on systems that support it.
|
2015-10-06 18:04:53 -07:00 |
|
Adam Ierymenko
|
477feee8a3
|
Some work on CIRCUIT_TEST, and a significant speedup to Poly1305.
|
2015-10-06 17:55:57 -07:00 |
|
Adam Ierymenko
|
3593fb3462
|
Send initial CIRCUIT_TEST packet.
|
2015-10-06 15:16:41 -07:00 |
|
Adam Ierymenko
|
d3f29d09e8
|
Plumbing through circuit test stuff.
|
2015-10-06 14:42:51 -07:00 |
|
Adam Ierymenko
|
5341afcdcd
|
Handling of CIRCUIT_TEST, should be ready to test.
|
2015-10-06 11:47:16 -07:00 |
|
Adam Ierymenko
|
57c857e89a
|
Fix TRACE output.
|
2015-10-06 06:57:00 -07:00 |
|
Grant Limberg
|
c16ad053b6
|
no toString() method on peer. Commenting out for now.
|
2015-10-02 19:39:46 -07:00 |
|
Grant Limberg
|
6080a45c9c
|
change cert to com. no variable named cert.
|
2015-10-02 19:39:13 -07:00 |
|
Adam Ierymenko
|
5384f185ae
|
Simplify Dictionary and reduce memory usage, now no more std::maps in core.
|
2015-10-01 18:12:16 -07:00 |
|
Adam Ierymenko
|
76a95dc58f
|
The return of peer peristence.
|
2015-10-01 17:09:01 -07:00 |
|
Adam Ierymenko
|
5076c49210
|
Peer serialization and related changes.
|
2015-10-01 15:40:54 -07:00 |
|
Adam Ierymenko
|
2fa21aa676
|
.
|
2015-10-01 13:43:57 -07:00 |
|
Adam Ierymenko
|
3999e468b7
|
Need to hold nconf so *com does not die while being used.
|
2015-10-01 13:43:15 -07:00 |
|
Adam Ierymenko
|
6693149f3e
|
Send COM with MULTICAST_GATHER for future use.
|
2015-10-01 13:34:12 -07:00 |
|
Adam Ierymenko
|
2c196307ee
|
--bugs;
|
2015-10-01 13:01:18 -07:00 |
|
Adam Ierymenko
|
d6676a9d6c
|
Always announce multicast groups, not just to peers with direct links, and push network COMs to any MULTICAST_LIKE recipient for future use.
|
2015-10-01 12:50:19 -07:00 |
|
Adam Ierymenko
|
a7409850d6
|
Get trim() out of core where it is not needed.
|
2015-10-01 12:37:18 -07:00 |
|
Adam Ierymenko
|
53e5f94b99
|
.
|
2015-10-01 12:25:43 -07:00 |
|
Adam Ierymenko
|
64bf3ffe6c
|
Mutex cleanup.
|
2015-10-01 11:44:09 -07:00 |
|
Adam Ierymenko
|
9405150b11
|
Restore group announcement on Peer::receive() but centralize packet composition in one place.
|
2015-10-01 11:37:02 -07:00 |
|
Adam Ierymenko
|
a3db7d0728
|
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
|
2015-10-01 11:11:52 -07:00 |
|
Adam Ierymenko
|
11ff96ba1d
|
Consider IPv6 paths reliable (no constant keepalives needed)
|
2015-09-30 15:20:08 -07:00 |
|
Adam Ierymenko
|
0d0039674f
|
Add new verb names, and fix some Mac compiler flags.
|
2015-09-30 14:48:07 -07:00 |
|
Adam Ierymenko
|
789046ca57
|
Speed up Salsa20 just a bit.
|
2015-09-30 14:35:05 -07:00 |
|
Adam Ierymenko
|
1a4f16e0ed
|
More work on circuit testing...
|
2015-09-30 13:59:05 -07:00 |
|
Adam Ierymenko
|
2d0adb562d
|
Specify circuit test messages.
|
2015-09-27 11:37:39 -07:00 |
|
Adam Ierymenko
|
f69454ec98
|
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
|
2015-09-24 16:21:36 -07:00 |
|
Adam Ierymenko
|
0e5aac6a11
|
Prefer IPv6 paths if available.
|
2015-09-23 16:16:36 -07:00 |
|
Adam Ierymenko
|
a3ed5277ef
|
Make sure ZT_NO_TYPE_PUNNING also obeyed here.
|
2015-09-23 14:09:27 -07:00 |
|
Adam Ierymenko
|
2a527ea82e
|
Fix for timer jitter problem.
|
2015-09-23 14:01:41 -07:00 |
|
Adam Ierymenko
|
367ffde00c
|
Plumb through localInterfaceId to track local interfaces corresponding with remote addresses.
|
2015-09-23 13:49:56 -07:00 |
|
Adam Ierymenko
|
4464fa5d39
|
Eliminate another warning.
|
2015-09-23 10:29:05 -07:00 |
|
Adam Ierymenko
|
86996d4315
|
Eliminate compiler warning.
|
2015-09-23 10:27:53 -07:00 |
|
Adam Ierymenko
|
d656e87395
|
Send a random small payload for NAT keepalives, since zero byte packets seem to fail to keep associations alive behind some NATs.
|
2015-09-22 15:58:00 -07:00 |
|
Adam Ierymenko
|
3664966340
|
Generate local IPv6 addresses from network IDs and addresses.
|
2015-09-17 21:30:32 -07:00 |
|
Adam Ierymenko
|
c1a53a2653
|
ARP cache and responder agent code for use in netcon and iOS.
|
2015-09-11 11:45:04 -07:00 |
|
Adam Ierymenko
|
0d386f1c31
|
Add a bit of useful testing instrumentation to SqliteNetworkController.
|
2015-09-08 11:35:55 -07:00 |
|
Adam Ierymenko
|
85b90f122a
|
Final std::map<> from Switch, and add some smallish default values for hash size.
|
2015-09-04 15:35:43 -07:00 |
|
Adam Ierymenko
|
3dba016a93
|
Almost done... very few std::map<>s remaining in any spot that matters.
|
2015-09-04 15:21:22 -07:00 |
|
Adam Ierymenko
|
db0369e9b8
|
Remove way-overkill multimap from Switch.
|
2015-09-04 14:56:39 -07:00 |
|
Adam Ierymenko
|
0ab3e49be9
|
Starting in on Switch... kill map in defrag queue, which will probably improve performance pretty decently under high load with lots of peers.
|
2015-09-04 14:44:22 -07:00 |
|
Adam Ierymenko
|
f116c4b9c0
|
... and another ...
|
2015-09-04 14:24:31 -07:00 |
|
Adam Ierymenko
|
307e44f7c8
|
Two for one! (std::map removal)
|
2015-09-04 14:14:32 -07:00 |
|
Adam Ierymenko
|
d1341578d8
|
... and another one!
|
2015-09-04 13:53:48 -07:00 |
|
Adam Ierymenko
|
7b8ce16057
|
Another std::map<> dies.
|
2015-09-04 13:42:19 -07:00 |
|
Adam Ierymenko
|
3a959a7763
|
Swap out std::map<> for Hashtable<> for main peer database in Topology. (ongoing std::map-ectomy)
|
2015-09-04 12:14:21 -07:00 |
|
Adam Ierymenko
|
cfd101c9b8
|
Add entries() to go with keys() for future use.
|
2015-09-04 11:50:12 -07:00 |
|
Adam Ierymenko
|
da9a720c3f
|
Hash table bug fix, and add copy constructor and assignment operator for principle of least surprise.
|
2015-09-03 17:33:06 -07:00 |
|
Adam Ierymenko
|
b11ffc9635
|
Integrate Hashtable into Multicaster, where @mwarning found heaviest std::map() overhead.
|
2015-08-27 16:17:21 -07:00 |
|
Adam Ierymenko
|
3947807b1f
|
A simple and fast Hashtable, tested but not yet integrated with anything.
|
2015-08-27 15:36:13 -07:00 |
|
Adam Ierymenko
|
5fcef91278
|
Ignore old root-topology if present -- fix for upgrading on Linux and possibly elsewhere.
|
2015-08-25 09:42:37 -07:00 |
|
Adam Ierymenko
|
facb009a1d
|
Add security notice to auto-update info in -h output, and fix a missing paren.
|
2015-07-31 09:50:55 -07:00 |
|
Adam Ierymenko
|
8d09c37140
|
Remove a bit of redundant logic, and also announce MULTICAST_LIKEs to controllers (for future use).
|
2015-07-31 09:37:13 -07:00 |
|
Adam Ierymenko
|
f6ced547be
|
Dead code removal.
|
2015-07-31 08:56:31 -07:00 |
|