reachability status contradicts information in /topology
Context
i have nodes that are on native IPv6, with a lousy IPv4 tunnel (consumer line in hungary from the former UPC, now swallowed by Vodafone).
the IPv4 tunnel is hopeless for any inbound connections, but the nodes are reachable through IPv6 (as reported by https://port.tools/port-checker-ipv6/).
Summary
i think this contradiction tells is all:
$ curl -s localhost:1800/topology | jq | grep inbound
"sessionConnectionDirection": "inbound",
$ curl -s localhost:1800/status | jq
{
"peer": "a7f58b127093f576f7374449767a242c433353972226baa17f189f204f16fa0d",
[...]
"isReachable": false
}
Expected behavior
if there are any inbound connections, then the node should consider itself reachable.
Possible solution
-
in case of any inbound connections, set the reachable flag?
-
smarten up the reachability tester to understand underlay addresses and select remotes wisely? (for testing reachability through an underlay address, a remote should be chosen that is reachable through that protocol)
-
this is a tangential: if feasible, then the
/topologyendpoint should also include the underlay address through which the remote node is connected
since then i have managed to test it, and these nodes are indeed reachable on IPv6 (as per telnet -6 [address] [port]), but all of them report themselves to be unreachable.
at the time of testing there were not any inbout connections, though.