Resolução de DNS temporária para ip local (para redirecionamento http temporário)

2

Então, aqui está meu objetivo de alto nível:

Tenho o Linux em execução em um dispositivo pequeno que funciona como um ponto de acesso Wi-Fi para clientes sem fio. Ele também executa um servidor web (nginx) para configuração e eu gostaria de redirecionar todas as solicitações html dos meus clientes Wifi para o servidor web local até que ele seja configurado corretamente, uma vez configurado corretamente ele deve parar de redirecionar e voltar para apenas rotear o tráfego.

Eu sou relativamente novo no iptables, ip route & co, então não tenho certeza se minha abordagem está correta:

ATM Eu apenas uso iptables para redirecionar o tráfego http para o meu servidor local quando em 'modo de configuração' (e limpar as regras quando voltar no modo normal):

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.42.1
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.42.1
iptables -t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 192.168.42.1

(Eu preciso da porta 5000 como meu software de configuração executa um servidor websockets para a página web de configuração)

Isso funciona bem, desde que o cliente possa resolver solicitações DNS (ou usar endereços IP codificados). Meu servidor dhcp configura o padrão 8.8.8.8/8.8.4.4 como servidor DNS nos clientes wifi, mas se 8.8.8.8 não puder ser alcançado (pode ser o caso quando o dispositivo não está configurado corretamente) o cliente não atingirá minha configuração web página desde que o cliente wifi não pode resolver o endereço IP em primeiro lugar.

Então, meu pensamento era configurar um servidor DNS no meu dispositivo que apenas encaminharia as solicitações de DNS quando estivesse no 'modo normal', mas quando estivesse no 'modo de configuração' resolveria todas as solicitações ao IP do servidor web local.

Aqui, minhas perguntas: Que software eu usaria para isso (dnsmasq?) e como configurá-lo para que eu possa alternar (durante o tempo de execução) entre apenas encaminhar solicitações de DNS e resolver solicitações para meu servidor local?

Ou a abordagem está errada e eu deveria usar algum proxy ou outro caminho para o redirecionamento? Uma desvantagem é que ter um servidor DNS resolvendo solicitações temporárias para o meu IP local é que os clientes podem armazenar em cache o resultado, para que eles ainda atinjam o meu servidor web local, mesmo que a configuração esteja concluída.

    
por user42 13.03.2017 / 18:00

0 respostas