Uma conexão OpenVPN requer que uma extremidade seja um cliente e que a outra seja um servidor.
Portanto, você precisará construir sua malha manualmente, garantindo que cada nó tenha uma configuração de servidor e uma configuração de cliente. Cada nó precisará executar duas instâncias do OpenVPN, uma para o cliente e outra para o servidor.
O OpenVPN suporta publicidade de rotas disponíveis por trás da interface virtual que cria. Assim, você pode fazer com que os nós do OpenVPN redirecionem o tráfego não destinado a esse nó para outro nó. Novamente, você precisa configurá-lo manualmente com as instruções iroute
em seus arquivos de configuração.
Em cada arquivo de configuração, você pode especificar vários servidores para um cliente para tentar se conectar. Assim, você pode especificar vários nós de entrada para cada arquivo de configuração.
Para fazer isso da maneira correta, você precisa criar uma autoridade de certificação para cada par de cliente e servidor. Você pode comprometer e ter uma única CA para toda a malha. Você pode comprometer ainda mais e apenas fazer senhas, mas ainda precisa de certificados para identificação do servidor.
Acho que, para estar realmente seguro, você precisaria de outra rede virtual interior que não seja acessível diretamente por clientes externos, mas acessível a qualquer coisa, uma vez que eles estejam na rede virtual.
Muito trabalho para acompanhar tudo, mas com certeza é possível.
Se os clientes não confiarem no servidor, eles precisam se comunicar pelo servidor usando criptografia. Você poderia ir tão longe a ponto de executar o Tor internamente nessa rede mesh em cada servidor, então a correlação direta entre um nó e um serviço seria difícil de fazer.