OpenVPN não pode alcançar outros clientes, as respostas arp vão para o cliente em vez do servidor

2

Eu tenho o OpenVPN configurado em três VMs do VirtualBox que executam o Ubuntu 16.04.

A configuração da rede é a seguinte: imagem de configuração de rede .

Configuração do servidor:

local 192.168.2.2
port 1194
proto udp
dev tap0

ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

ifconfig-pool-persist ipp.txt

server-bridge 192.168.0.2 255.255.255.0 192.168.0.50 192.168.0.100
client-to-client

keepalive 10 20
cipher AES-128-CBC
comp-lzo

persist-key
persist-tun
verb 3

Configuração do cliente:

client
dev tap
proto udp

remote 192.168.2.2 1194
resolv-retry infinite

nobind
persist-key
persist-tun

ca ca.crt
cert client1.crt
key client1.key

cipher AES-128-CBC
comp-lzo
verb 3

Estou usando os scripts bridge-start e bridge-stop que vêm com o OpenVPN para usar a ponte. A conexão é aberta sem problemas. Eu posso pingar os clientes do servidor e do servidor dos clientes. O problema é que não consigo efetuar ping de cliente para cliente, por ex. ping do cliente remoto (lab3) para o outro cliente (lab2) só recebe From 192.168.0.50 icmp_seq=1 Destination Host Unreachable .

Parece que o problema tem algo a ver com ARP, porque quando eu tcpdump em br0 no servidor, vejo que há uma questão %código%. Então no cliente (lab2) eu vejo:

ARP, Request who-has 192.168.0.1 tell 192.168.0.50, length 46
ARP, Reply 192.168.0.1 is-at 08:00:27:c8:1c:c7, length 28

Mas as respostas parecem não chegar a nenhuma máquina.

Quando a conexão OpenVPN está aberta, a tabela de roteamento parece estar correta:

Servidor:

default via 10.0.2.1 dev enp0s3 
10.0.2.0/24 dev enp0s3  proto kernel  scope link  src 10.0.2.4 
192.168.0.0/24 dev br0  proto kernel  scope link  src 192.168.0.2 
192.168.2.0/24 dev enp0s9  scope link 
192.168.2.0/24 dev enp0s9  proto kernel  scope link  src 192.168.2.2

Cliente:

default via 10.0.2.1 dev enp0s3 
10.0.2.0/24 dev enp0s3  proto kernel  scope link  src 10.0.2.7 
192.168.0.0/24 dev enp0s8  proto kernel  scope link  src 192.168.0.1 

Cliente remoto:

default via 10.0.2.1 dev enp0s3 
10.0.2.0/24 dev enp0s3  proto kernel  scope link  src 10.0.2.6 
192.168.0.0/24 dev tap0  proto kernel  scope link  src 192.168.0.50 
192.168.2.0/24 dev enp0s8  proto kernel  scope link  src 192.168.2.1 

Alguma idéia de como fazer com que as mensagens fluam entre os dois clientes? Estou fazendo algo errado ou faltando alguma coisa nas configurações?

    
por jaine 21.03.2017 / 16:07

2 respostas

1

Isso foi resolvido configurando o adaptador de rede do GW conectado à rede 192.168.0.0/24 para o modo promíscuo das configurações do VirtualBox, portanto a interface que faz a ponte está no modo promíscuo. Apesar de tudo, é claramente mencionado que o VirtualBox precisa de um modo promíscuo para poder fazer a ponte corretamente, mas pelo menos eu posso mencionar isso aqui!

    
por 22.03.2017 / 11:48
0

Você deve verificar se o seu servidor VPN possui o encaminhamento de ipv4 ativado:

cat /proc/sys/net/ipv4/ip_forward

1 = ativado, 0 = desativado

habilite-o com:

echo 1 > /proc/sys/net/ipv4/ip_forward

Para fazer essa configuração sobreviver a uma reinicialização, assegure-se de que a seguinte linha esteja em /etc/sysctl.conf:

net.ipv4.ip_forward = 1
    
por 21.03.2017 / 17:27