Estou lutando com uma configuração openVPN para conectar dois sites.
É assim que o cenário se parece
Office 1 (servidor):
- rede local: 192.168.178.0/24
- servidor openvpn ip público: 192.168.178.2 em br0
- ip interno do servidor openvpn: 192.168.0.1 no tun0
Office 2 (cliente):
Ambos, o cliente e o servidor, estão atrás de roteadores NAT com endereços IP atribuídos dinamicamente.
Basicamente, as máquinas envolvidas em qualquer escritório devem "ver" umas as outras.
Depois de configurar o túnel e configurar corretamente as tabelas de roteamento em ambos os sites, os hosts regulares em ambas as redes podem executar ping em todas essas duas redes. Bom até agora.
No entanto, os pontos de extremidade só podem ver um ao outro, mas nenhum dos hosts em sua respectiva rede de extremidade distante. Por exemplo, se um
ping 192.168.178.2
do endpoint VPN 192.168.177.2, ele funciona muito bem, qualquer outro endereço não funcionará; os anfitriões não responderão.
Agora, observe a saída do tcpdump, quando faço ping em outro endereço, por exemplo, 192.168.178.3.
11:11:28.104640 IP 192.168.0.6 > 192.168.178.3: ICMP echo request, id 2130, seq 1, length 64
O IP de origem não parece correto. Pertence à rede interna do OpenVPN e não recebo resposta do ICMP.
As coisas começam a funcionar quando eu instruo explicitamente o ping a usar o IP de origem adequado:
ping 192.168.178.3 -I 192.168.177.2
Agora, a saída do tcpdump também está ok:
11:20:08.266271 IP 192.168.177.2 > 192.168.178.3: ICMP echo request, id 7883, seq 17, length 64
11:20:08.316037 IP 192.168.178.3 > 192.168.177.2: ICMP echo reply, id 7883, seq 17, length 64
Olhando para a entrada crítica na tabela de roteamento do cliente, é óbvio que o endereço de origem é da rede interna:
default via 192.168.177.1 dev p2p1
192.168.0.1 via 192.168.0.5 dev tun0
192.168.0.5 dev tun0 proto kernel scope link src 192.168.0.6
192.168.177.0/24 dev p2p1 proto kernel scope link src 192.168.177.2
192.168.178.0/24 via 192.168.0.5 dev tun0
Existe a possibilidade de fazer o OpenVPN criar essa entrada com um src ??
apropriado?
Aqui estão os meus arquivos de configuração do openVPN.
Vou pular as partes do TLS, já que o próprio túnel funciona como esperado.
Servidor no escritório 1:
local 192.168.178.2
server 192.168.0.0 255.255.255.0
proto tcp-server
port 1194
dev tun
mssfix
user nobody
group nogroup
keepalive 20 120
ping-timer-rem
persist-tun
persist-key
float
comp-lzo
push "comp-lzo"
push "route 192.168.178.0 255.255.255.0"
route 192.168.177.0 255.255.255.0
client-config-dir client-configs
Existe uma configuração de cliente, que se parece com isso:
iroute 192.168.177.0 255.255.255.0
push "route 192.168.178.0 255.255.255.0 vpn_gateway"
Cliente no escritório 2:
client
dev tun0
remote <server address>
proto tcp-client
port 1194
connect-retry 15
comp-lzo
user nobody
group nogroup
persist-tun
persist-key
Eu estou realmente perdido aqui ... sua ajuda é muito apreciada.