Redirecionar todo o tráfego enviado para um IP alias não alocado dentro de uma sub-rede VPN, para um IP fixo dentro de outra VPN

2

Eu tenho um servidor que hospeda várias VPNs com ponte (ou seja, toque) usando openvpn, onde cada VPN tem uma sub-rede 10.8.X.0 / 24 diferente.

Desejo redirecionar o tráfego enviado para um endereço IP específico não alocado (por exemplo, 10.8.X.254) em cada VPN para um endereço fixo em uma VPN diferente (por exemplo, 10.8.1.10). O objetivo disso é manter a configuração do cliente relativamente limpa (ou seja, ele sabe que determinado tráfego sempre vai endereçar 254 em sua própria sub-rede) mantendo a maior parte da configuração de roteamento no servidor VPN e também facilitando a modificação do destino IP no futuro.

Em primeiro lugar, no servidor VPN, habilitei o encaminhamento de IP no kernel com

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

Tentei configurar o redirecionamento de NAT usando iptables no servidor VPN para cada VPN, por exemplo,

sudo iptables -t nat -A PREROUTING -s 10.8.2.0/24 -d 10.8.2.254 -j DNAT --to-destination 10.8.1.10

Mas as solicitações de ping para 10.8.2.254 de dentro da VPN falham com Destination Host Unreachable e o tráfego de rede a seguir é relatado por tshark na interface VPN do servidor

6.943311    10.8.2.12 -> 10.8.2.1     SSH 274 Encrypted response packet len=208
6.943347     10.8.2.1 -> 10.8.2.12    TCP 66 42926 > ssh [ACK] Seq=97 Ack=625 Win=563 Len=0 TSval=3930766820 TSecr=80207294
6.959100 9e:10:2c:67:91:2a -> Broadcast    ARP 42 Who has 10.8.2.254?  Tell 10.8.2.12
7.983824 9e:10:2c:67:91:2a -> Broadcast    ARP 42 Who has 10.8.2.254?  Tell 10.8.2.12

O que parece sugerir que o servidor não sabe para onde enviar o tráfego, mesmo que eu tenha configurado a regra de redirecionamento como acima.

Pensei que talvez eu devesse / também estar configurando o roteamento por meio da configuração da VPN, mas não consegui descobrir como fazer isso para um sistema que contém várias VPNs com ponte; todas as informações específicas de VPN que eu encontrei relacionadas ao redirecionamento de tráfego foram baseadas em VPN roteadas (tun).

Eu queria evitar a solução de adicionar o host de destino em cada VPN, pois isso ficaria cada vez mais complicado quando o número de VPNs hospedadas pelo servidor VPN e, eventualmente, o número de servidores VPN aumentasse.

    
por tom_hd 05.05.2014 / 13:40

1 resposta

3

10.8.2.12 vê 10.8.2.254 como estando na mesma sub-rede, portanto está solicitando o endereço MAC de 10.8.2.254 para inseri-lo como um MAC de destino em pacotes futuros para 10.8.2.254. Como 10.8.2.254 não existe, ninguém está respondendo e 10.8.2.12 nunca descobre qual MAC deve ser definido como o MAC de destino.

Tente usar proxy_arp no seu servidor principal. echo 1 > / proc / sys / net / ipv4 / conf / ethXX / proxy_arp

Executando o tcpdump você deve então ver o servidor VPN responder às consultas ARP para 10.8.x.254 com seu próprio endereço MAC, o que deve dar um passo adiante.

    
por 07.05.2014 / 17:49