Por que precisamos de uma interface física de LAN conectada com a interface OpenVPN TAP para obter o OpenVPN funcional no modo bridge?

3

Aqui eu tenho algumas perguntas (ligeiramente diferentes), mas relacionadas umas com as outras, então eu preferi perguntar em uma pergunta.

Eu tenho tentado permitir que meus clientes OpenVPN (OpenVPN é configurado no modo bridge) se conectem a contêineres do Docker.
Como é de conhecimento, os contêineres do Docker são conectados entre si por meio de uma ponte ( docker0 bridge ou o que quer que seja).

Eu sempre usei minha própria ponte ( br0 ) no meu servidor doméstico, onde eu configurei o Docker para usar essa ponte ( br0 ), e eu conecto a interface OpenVPN ( tap0 ) nessa ponte, e minha interface física ( eth0 ), que é conectada via LAN ao meu roteador doméstico. E isso sempre funcionou para mim e todos os clientes do OpenVPN sempre puderam acessar cada contêiner do Docker conectado em br0 (os clientes do OpenVPN e os contêineres do Docker têm IPs no meu intervalo de LAN).

Um par de dias atrás eu aluguei um VPS, onde minha interface física está diretamente conectada à internet (tem IP público único). Eu fiz o mesmo que antes (definindo o Docker para usar meu br0 para todos os contêineres) e fiz uma ponte com o OpenVPN tap0 on br0 .

O problema que enfrentei é que meu cliente OpenVPN NÃO conseguiu fazer ping ou acessar nenhum dos contêineres do Docker (os contêineres conseguiram fazer ping e acessar outros contêineres do Docker, mas NÃO o cliente OpenVPN) e os clientes NÃO foram capazes de pingar uns aos outros também.

Isso tem alguma coisa que eu não tenho interface física em ponte? Se sim, eu estava me perguntando por que eu deveria ligar a interface do meu servidor (conectada a qualquer roteador via LAN talvez) além da interface OpenVPN TAP para obter um OpenVPN funcional no modo bridge?

E esse problema levantou uma outra questão relacionada em mente: desde que os clientes façam parte da interface tap0 , por que eles não podem acessar um ao outro sem passar por algum motivo fora da interface TAP? Qual é o papel da minha interface física?

Se o meu problema foi realmente por causa de não haver nenhuma interface física conectada, como posso fazer com que o OpenVPN funcione totalmente no modo bridge sem essa interface física (ou pelo menos talvez qualquer solução para isso, desde que minha interface física seja conectado diretamente à internet sem qualquer LAN)?

Espero que alguém possa me ajudar a fazer com que o OpenVPN funcione

ADICIONADO:

Depois de assistir a alguns vídeos, ainda tenho essa pergunta: se eu tivesse duas interfaces TAP , cada uma delas seria mapeada para um sistema virtualbox . tap0 -> vb0 , tap1 -> vb1 e ambos tap0 and tap1 estão conectados a uma ponte br0 (que não está conectada a nenhuma interface física), somente tap0 e tap1 são ligados juntos, vb0 and vb1 será capaz de pingar uns aos outros? (Não estou interessado em nenhum tipo de conexão externa agora). De acordo com a @shodanshok resposta, NÃO eles não, certo? até agora eu não sou capaz de entender exatamente porque eles não podem, você poderia por favor explicar esse ponto em mais detalhes?

    
por Mohammed Noureldin 15.07.2017 / 18:20

2 respostas

0

OK, depois de muitos experimentos, agora posso responder minha pergunta e compartilhar minha experiência:

Preciso de uma ponte (por exemplo, br0 no linux) para poder executar OpenVPN no modo bridge?

Não! Sempre achei o contrário, mas agora posso confirmar que, assim que você configurar o OpenVPN corretamente, poderá conectar todos os seus clientes OpenVPN diretamente e eles estarão em sua própria rede isolada. Ou seja A interface tap0 não faz parte de nenhuma ponte. Da mesma forma, não há necessidade de nenhuma interface física com tap0 , somente tap0 com OpenVPN configurado corretamente fará o trabalho!

Por que não funcionou para mim inicialmente? (Agora funciona!)

O problema estava realmente no lado do cliente! Eu sempre usei, que OpenVPN clientes estão todos em meu intervalo de IP de LAN , portanto nenhuma configuração firewall adicional foi necessária, mas agora, o intervalo de IP é diferente é uma nova rede isolada), portanto o windows firewall de todos os clientes estava simplesmente removendo todo o ping de outros clientes, quando eu o desabilitava (ou permitia que meu OpenVPN IP pool range) conectasse, tudo funcionou perfeitamente!

E quanto ao Docker? Você conseguiu unir os contêineres com tap0 e se conectar aos contêineres dos seus OpenVPN clientes?

Sim! Eu usei apenas uma configuração muito simples (netmask e IP range eram os mesmos), netmask /24 , e tudo era muito básico, só para ter certeza de que tudo funciona, e tudo realmente funcionou!

    
por 18.07.2017 / 00:01
5

Interface OpenVPN tap opera na camada 2 do modelo ISO / OSI e, portanto, precisa de uma conexão de camada 2 (leitura: bridge / switch) para a interface principal e real.

Eu sugiro strongmente que você reconfigure sua conexão OpenVPN para usar tun interfaces que, operando em um nível mais alto (nível 3) para a pilha, não precisam de uma conexão em ponte com a interface principal (em vez disso, eles rotearão pacotes conforme especificado na tabela de roteamento).

Dê uma olhada na seção "ponte do servidor" em página de manual do openvpn para mais informações.

    
por 15.07.2017 / 22:21