tinc 1.1 "Got ADD_EDGE ... which does not match existing entry"
Sven-Haegar Koch
haegar at sdinet.de
Fri May 15 22:26:46 CEST 2015
Hallo,
Another strange and difficult to understand thing - seems like all the
easy bugs in 1.1 are gone ;)
waehring (1.1)
|
+-------------------+--------------+
| | |
vpnhub1 (1.1) igor (1.1) turing (1.0)
| | |
+-------------------+--------------+
|
tokamak
Whenever another node outside of the graph connects to vpnhub or igor I
receive a huge amount of "Got ADD_EDGE from ... which does not
match existing entry" log entries (log level 3)
(huge amount == at least 3 or 4 per edge direction in the network)
After extending the debug log messages a bit I can see that it is always
about the local_address field - essentially switching from an IP to
unknown back and forth.
Here unrelated node "vlad" connected to aaa_vpnhub1 and to igor, on
waehring I receive for the link tokamak<->igor:
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for haegar_tokamak
-> igor which does not match existing entry (Local address 2.3.4.5
!= unknown)
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for haegar_tokamak
-> igor which does not match existing entry (Local address unknown !=
2.3.4.5)
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for igor ->
haegar_tokamak which does not match existing entry (Local address
3.4.5.6 != unknown)
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for haegar_tokamak
-> igor which does not match existing entry (Local address 2.3.4.5
!= unknown)
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for igor ->
haegar_tokamak which does not match existing entry (Local address
3.4.5.6 != unknown)
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for haegar_tokamak
-> igor which does not match existing entry (Local address unknown !=
2.3.4.5)
Got ADD_EDGE from aaa_vpnhub1 (1.2.3.4 port 443) for igor ->
haegar_tokamak which does not match existing entry (Local address
unknown != 3.4.5.6)
What I think may happen is that the 1.1 nodes pass on the local_address,
but the 1.0 nodes (as they don't know that field) do not - resulting in
"unknown" in an ADD_EDGE message, which in turn the 1.1 nodes pass on.
Wouldn't it make sense that when the only difference between the update
and the current edge record is the local_address, and the ADD_EDGE
message says "unknown local_address", to not remove a perhaps
pre-existing local_address entry, and more important to not send this
"unknown" out again to all others, in turn making them forget about it,
until the "unknown" ADD_EDGE reaches the node itself, which will then
send out another ADD_EDGE with the again filled-in value?
So accepting and propagating new/different local_address from ADD_EDGE,
but not removing the existing value if ADD_EDGE contains "unknown".
c'ya
sven-haegar
--
Three may keep a secret, if two of them are dead.
- Ben F.
More information about the tinc-devel
mailing list