Problema de Roteamenton OpenVPN (Filial e Matriz)

Iniciado por leandro.miranda, 27 de Agosto de 2010, 17:25

tópico anterior - próximo tópico

leandro.miranda

Pessoal,

Seguinte tenho 2 servidores um em cada loja, O Servidor Matriz recebe conexão da filial via OpenVPN. Eu consegui pingar o servidor pelo seu ip de rece local.

Matriz 192.168.0.0/24
Filial 192.168.1.0/24

Use esses comandos que estão no /etc/rc.local

[Filial]
echo > 1 /proc/sys/net/ipv4/ip_forward
iptables -t nat -s 10.0.0.2 -A POSTROUTING -o eth0 -j MASQUERADE
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.1 dev tun0


[Matriz]
echo > 1 /proc/sys/net/ipv4/ip_forward
iptables -t nat -s 10.0.0.1 -A POSTROUTING -o eth1 -j MASQUERADE
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2 dev tun0

Quando eu acesso o console da filial via SSH eu pingo 192.168.0.254 (matriz) e tudo ocorre normalmente, mais quando eu pingo qualquer outro IP dentro da rede matriz eu não consigo pingar... Ao acessar o servidor MATRIZ eu consigo pingar todas as demais maquinas.

Alguem pode me ajudar?
Obrigado,

Ass. Leandro Miranda

zekkerj

#1
Como eu resolvi isso:

1) Não é necessário o MASQUERADE.

2) A rota pode ser criada no arquivo de configuração do próprio OpenVPN:

route 192.168.0.0/24 # na filial

route 192.168.1.0/24 # na matriz

3) O roteamento tem que ser ativado, mas vc não precisa fazer aí. Edite o arquivo "/etc/sysctl.conf" e descomente a linha "#net.ipv4.ip_forward=1".

4) Pra vc não conseguir pingar, essas duas máquinas não devem ser os gateways de sua rede.

O que acontece é que você até consegue chegar da filial até a rede da matriz, mas as máquinas da rede da matriz não sabem voltar.

Se as máquinas das pontas da VPN fossem os gateways da rede, estava tudo resolvido; como elas não são, nós temos que ensinar as máquinas de um lado a chegar no outro (você não reclamou, mas com certeza acontece o mesmo, se você tentar acessar uma máquina da filial a partir do console da matriz).

Daí temos duas formas de resolver isso: uma, é ir em cada máquina da rede da matriz (ou pelo menos nas que interessam) e adicionar uma rota pra rede remota. O comando pra isso, no windows, é

route -p add 192.168.1.0 mask 255.255.255.0 gw <endereço do servidor VPN da matriz>

Já na filial, o comando (windows) é

route -p add 192.168.0.0 mask 255.255.255.0 gw <endereço do servidor VPN da matriz>


Isso vai dar um trabalhão, se forem muitas máquinas. A alternativa mais simples seria ir ao roteador de saída, ou seja, o verdadeiro gateway das duas redes, e cadastrar lá a rota pra rede remota, passando pelo servidor openvpn local. Assim, as máquinas ainda não vão saber como chegar do outro lado; nesse caso, elas encaminham o pacote ao gateway, que por sua vez sabe que tem que repassar pro servidor openvpn.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Moshe

So adicionando um comentário.

1 - Se os seus usuários utilizam um servidor de dominio para o login, coloca um script para iniciar automaticamente quando o usuário fizer o login na rede, então estará resolvido o problema.

2 - Caso não tenha um servidor de domínio, criar um bat file e coloca na inicialização das maquina windows, assim sempre que for ligada a maquina irá criar as rotas para responder as respectivas máquinas.

Tive esse mesmo problema e a solução foi criar o ítem1, já que minha rede é montada sobre debian, samba, openldap.

Att,