Ocorreu um erro ao acionar o servidor EC2 AmazonProvidedDNS por VPN

2

Eu tenho um VPC usando a rede 10.10.0.0/16 e um servidor VPN na sub-rede pública ( 10.10.0.0/24 ). A VPN usa endereços no intervalo 10.11.254.0/24 . Quando me conecto à VPN, posso acessar hosts na sub-rede pública e na sub-rede privada ( 10.10.1.0/24 ), por isso acredito ter a tabela de roteamento configurada corretamente para enviar pacotes vinculados à VPN de volta através do servidor VPN. Eu desativei as verificações de origem / destino no servidor VPN (que também é necessário para poder acessar outros hosts na rede).

O servidor AmazonProvidedDNS parece estar funcionando corretamente dentro do VPC; Posso executar dig @10.10.0.2 ip-10-10-1-215.ec2.internal de um host no VPC e obtenho a resposta esperada.

No entanto, se eu executar o mesmo comando dig do laptop de maio, conectado à VPN, não obtenho resposta.

A partir da execução do tcpdump no servidor vpn, vejo os pacotes A? vindo do meu endereço VPN, indo para 10.10.0.2 , mas não vejo nenhuma resposta voltando. Há algo que preciso fazer para permitir que o servidor DNS responda a solicitações fora do intervalo de endereços de VPC?

    
por pkaeding 16.10.2014 / 20:04

2 respostas

1

Isso soa como uma maneira incomum de fazer isso, mas, considerando a mágica de resolução dividida de dentro / fora que eles implementaram, eu posso ver porque faz sentido (agora que eu penso sobre isso).

É improvável que os resolvedores de DNS do EC2 respondam a solicitações de um endereço IP estrangeiro, mas deve haver uma solução alternativa fácil.

Por exemplo, se o seu endereço IP na VPN for 192.168.2. *, então, no servidor VPN em VPC ...

$ sudo iptables --table nat -A POSTROUTING -s 192.168.2.0/24 -d 10.10.0.2/32 -j MASQUERADE 

Isso adiciona uma regra à tabela de conversão de endereços de rede para que, após tomar a decisão de roteamento dos pacotes do bloco de origem especificado para o bloco de destino especificado, em vez de simplesmente encaminhar o pacote como de costume, ele removerá seu IP e adicione seu próprio IP como endereço de origem e memorizará a solicitação. Quando a resposta voltar, endereçada ao IP do servidor VPN, ela novamente irá reescrever o endereço (destino, desta vez, de volta ao seu endereço) e enviar a resposta de volta para você.

Isso deve realizar o que você quer.

    
por 17.10.2014 / 00:24
0

Você pode criar uma micro instância e usá-la como proxy do udp.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to 10.10.0.2
    
por 27.11.2014 / 15:33