Resolva dinamicamente o nome do host para vários IPs priorizados

0

Eu tenho um servidor linux conectado a uma VPN.

Em casa, uso a mesma VPN no meu laptop, conectada ao servidor diretamente por meio de um roteador sem fio.

Para fazer isso, tenho duas entradas no meu arquivo /etc/hosts :

192.168.1.1 myserver
10.1.1.1 myserver.vpn

Dessa forma, posso escolher como me conecto manualmente usando um nome de host diferente.

Minha pergunta é: como posso me conectar dinamicamente usando o mesmo nome de host? Idealmente, o laptop saberia qual IP usar com base em quais interfaces de rede ele está conectado, priorizando uma interface real sobre uma virtual. E se um endereço não estiver disponível, quero que tente outro!

Eu tentei configurar isso usando o dnsmasq no laptop com vários registros de host e a opção localise-queries . No meu dnsmasq.conf eu tenho:

host-record=myserver,10.1.1.1
host-record=myserver,192.168.1.1

Quando uso dig myserver +short , obtenho:

10.1.1.1
192.168.1.1

na primeira vez e

192.168.1.1
10.1.1.1

pela segunda vez, e assim por diante ...

Mas se eu mudar o endereço estático de myserver para 192.168.1.2 , e ping myserver do laptop (192.168.1.3), eu obtenho:

PING myserver (192.168.1.1) 56(84) bytes of data.
From localhost (192.168.1.3) icmp_seq=1 Destination Host Unreachable
From localhost (192.168.1.3) icmp_seq=2 Destination Host Unreachable
From localhost (192.168.1.3) icmp_seq=3 Destination Host Unreachable
...

Então, algumas perguntas:

(1) por que o laptop não tenta outra rota, mesmo que o dnsmasq esteja fornecendo uma? (2) como posso priorizar rotas com base em qual conexão de rede está sendo usada?

A propósito, tentei usar o NetworkManager e personalizar as entradas de DNS para cada conexão (por exemplo, usar o servidor DNS do meu roteador para resolver nomes de host na LAN e o dnsmasq local do laptop para procurar nomes de host na VPN). Bem, isso parecia uma boa ideia, mas toda vez que eu ativava uma interface, ela substituía as configurações de DNS das outras interfaces. Não é isso que eu queria!

Pergunta (3): Existe uma maneira melhor de fazer isso?

    
por micahscopes 26.04.2016 / 20:37

1 resposta

0

Eu posso estar perdendo algo aqui, mas como o seu computador sabe que o myserver não tem mais o IP 192.168.1.1 depois que você o altera?

Quando você faz ping myserver depois de alterar o IP, ele diz:

PING myserver (192.168.1.1) 56(84) bytes of data.

Então, ele está tentando fazer o ping no endereço que você definiu antes.

    
por 28.04.2016 / 01:08