Reachability testing and channel is_local assume private addresses are local
Split from #13718 (moved).
The way tor determines reachability is broken for test, internal, and local networks.
When we set is_local on a channel, we assume private addresses are local
DirAllowPrivateAddresses is 0. We then use is_local to determine whether a connection is from another router.
To properly bootstrap a testing tor network on private address(es), we must assume that every incoming OR connection is remote.
So we ignore is_local when TestingTorNetwork is 1.
I'm working on a patch that, when we're on a local address and DirAllowPrivateAddresses is 1, then checks whether we're connecting to our own digest, or another router's. When we don't (yet) have this information (e.g. a reverse proxied connection), I think it's safer to assume local, and defer confirmation of reachability until we know who is at the other end. (This is no worse than the current behaviour.)