Self-DoS

Pierre Beck pbeck at videobuster.de
Sat Jan 2 18:00:03 CET 2016


Hi,

On 31.12.2015 16:01, Guus Sliepen wrote:
> If, on each node, you ConnectTo all other
> nodes, that will cause tinc to generate a lot of metadata. However, you
> don't need to do that, only a few ConnectTo statements is usually enough.
> If you have a few central nodes to which all other nodes ConnectTo, that
> should work fine as well.
~40 ConnectTo lines. When I reduce the ConnectTo lines to say 5 nodes, 
will tinc still use the Address= lines to form a full mesh? So when A & 
B ConnectTo C, A sending data to B will still become direct as long as A 
or B has an Address= line?

Yet it shouldn't crash and burn like that :-)

Topology is roughly like this:

stack of physical servers (tincd, tincd, tincd, ...)
-> virtual servers (more tincd, tincd, tincd, ...)
internet Uplink A, NAT for IPv4, some static IPv6

stack of physical servers (tincd, tincd, tincd, ...)
-> virtual servers (more tincd, tincd, tincd, ...)
internet Uplink B, IPv4 only location, NAT for some IPv4s

satellite root servers (tincd)
-> virtual servers (tincd, tincd, tincd, ...)
internet Uplink C, D, E, ... again some NAT, some not

Now imagine Uplink A failing for some time. Then recovering. Many tincds 
trying to ConnectTo many other tincds. VPN dead.

As for logs, I have also found some of these:
tinc.vpn-13[4578]: Old connection_t for server1053 (x.x.x.x port y) 
status 0010 still lingering, deleting...

But the crash starts out with connection resets, like this between two 
nodes:

server1070 (virtual server on Uplink B):
Dec 30 10:14:52 xxx tinc.vpn-13[4578]: Metadata socket read error for 
server1073 (x.x.x.x port y): Connection reset by peer

server1073 (physical server on Uplink A):
Dez 30 10:17:13 xxx tincd[1124]: Flushing meta data to server1070 
(x.x.x.x port y) failed: Connection reset by peer

And from that point on, almost exclusively the latter random connection 
resets on all nodes, with some "old connection_t" until daemons are 
stopped, restarted.

I will try reducing the ConnectTo lines to a sane set of highly 
available, well connected physical servers.

Happy new year and thanks for the hint,

Pierre Beck


More information about the tinc mailing list