Questions about routing issue

Qijiang Fan fqj1994 at gmail.com
Tue Apr 21 16:25:23 CEST 2015


Hello,

I'm running a tinc network including dozens of nodes in switch mode.
Some are running stable branch 1.0, while a small set of nodes are
running 1.1 with ed25519 support.

I discovered some routing issue between two nodes:
(names are hidden)

A (1.1):
ConnectTo = B
ConnectTo = C
IndirectData = yes
Mode = Switch

B (1.0):
Mode = Switch

C (1.1 but only with RSA key):
Mode = Switch
Connect = D
IndirectData = yes

D (1.1):
Mode = Switch
ConnectTo = B

And here are the `tinc dump edges` output, non-releated edges are filtered.
B to A at xxx port xxx local xxx port xxx options 400000d weight 51
B to C at xxx port xxx local xxx port xxx options c weight 706
B to D at xxx port xxx local xxx port xxx options 400000c weight 984
A to B at xxx port xxx local xxx port xxx options d weight 51
A to C at xxx port xxx local xxx port xxx options d weight 29
C to B at xxx port xxx local xxx port xxx options c weight 706
C to A at xxx port xxx local xxx port xxx options 400000d weight 29
C to D at xxx port xxx local xxx port xxx options 400000c weight 182
D to B at xxx port xxx local xxx port xxx options c weight 984
D to C at xxx port xxx local xxx port xxx options c weight 182


Both A and D are configured with both Ed25519 and RSA keys.
Node B and C are configured with only RSA key.

tinc dump nodes on node A | grep D:
D id xxxx at xxx port 655 cipher 0 digest 0 maclength 0 compression 0
options 400000c status 0078 nexthop B via A distance 2 pmtu 1518 (min
0 max 1518)

tinc dump nodes on node D | grep A:
A id xxx at xxx port 8964 cipher 0 digest 0 maclength 0 compression 0
options 400000d status 0078 nexthop B via C distance 2 pmtu 1518 (min
0 max 1518)



And then,
A ping test from A
$ ping D
approx 400ms
Network traffic from both A and D should A send data via B and then D.
and D replies data via B and then A.

Of course ping from D -> A is approx 400ms as ping measures round-trip time.

And next, I did a weird thing, delete the ed25519 key on D, making D
insufficient for sptps, and restart tincd on D.
The dump edges is similiar.
And the ping from A -> D reduced to 200ms immediately.
Network traffic from both A and D shows A send data via B and then D,
and D replies data via C and then A.

Question 1:
Anybody can explain the `dump nodes` on D:
nexthop B via C
Why is it like this? I don't believe the forwarding chain will involve
both of B, and C. I think either B or C is enough.

Question 2:
>From `dump nodes` on A, why tinc forwards data from A to D through B
rather than C. Both of the routes have 2 hops, but forwarding via C
will have lower weight. In tinc's weight, lower weight usually means
better connection.

Question 3:
Why A -> D and D -> A forwards via different sets of nodes when only
RSA keys are used ?
As I know the graph in tinc looks directed but each edge has the same
weight with its reverse edge (at least in my experiment).

Question 4:
Why enabling sptps or removing it will result in different routes?


Thanks


More information about the tinc mailing list