In order to avoid loops, etc., we've enabled STP on our VPN nodes.
The upshot of all this is the following: we now have a fully
functioning, pretty rock-solid implementation.
Sadly we have a niggle (there's always one). Because we're using STP,
one node is always elected as the root node. Lets's say node A is
elected. Now all communications from C -> B must go through A. This
is slower than the ideal situation, where comms from C -> B (and back)
would go through the C -> B VPN link.