User Tools

Site Tools


informatica:linux:dnsmasq

dnsmasq

Resolver nombres de /etc/hosts

PROBLEMA: queremos resolver nombres locales, como por ejemplo “localhost”

1. Editar:

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak; sudo vim /etc/dnsmasq.conf

Y anyadir la siguiente linea al final:

local=/localnet/

2. (Si NO tenemos el paquete resolvconf instalado) Editar:

sudo cp /etc/resolv.conf /etc/resolv.conf.bak; sudo vim /etc/resolv.conf

Y dejarlo asi:

nameserver 127.0.0.1

3. Reiniciar el servicio:

sudo service dnsmasq restart

4. Probar. Si tenemos este archivo:

/etc/hosts
192.168.1.2 localhost

Hacemos:

nslookup localhost

dnsmasq con 2 VPNs

Escenario:

  • Tenemos 1 o mas conexiones a VPN y queremos resolver nombres locals, tipo “*.local.example.com” apuntando al servidor DNS que toque, al cual solo podremos acceder DESPUES de conectarnos a la VPN
  • Tenemos los siguientes servicios corriendo: networkmanager, openvpn y dnsmasq
  • NO tenemos instalado el paquete resolvconf

Limitaciones:

  • Si al final de este proceso no existe un “/etc/resolv.conf” hay que crearlo, aunque sea vacio. De otra forma parece que a docker no le gusta. Al arrancar un contenedor obtengo el siguiente error:
Error response from daemon: open /etc/resolv.conf: no such file or directory
Error: failed to start containers: mariadb
Sufijo DNS de la red VPN IP del servidor DNS
local.example.com 10.7.13.100

1. Comenzamos por NetworkManager. Editamos archivo de configuracion:

sudo cp /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.bak
sudo vim /etc/NetworkManager/NetworkManager.conf

Y lo dejamos tal que asi:

[main]
plugins=ifupdown,keyfile
dns=none
#dns=dnsmasq

[ifupdown]
managed=false

2. Instalar dnsmasq

sudo apt-get install dnsmasq

3. Editar:

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo vim /etc/dnsmasq.conf

Y anyadirle al final una linea como esta:

server=8.8.8.8

4. Ahora vamos a crear un archivo de configuracion para la primera VPN:

sudo vim /etc/dnsmasq.d/example

Y dejarlo asi:

server=/local.example.com/10.7.13.100
server=/0.17.10.in-addr.arpa/10.7.13.100
#rev-server=10.17.0.0/24,10.7.13.100

Nota: he editado la directiva “rev-server” porque me generaba algun problema que ahora mismo no tengo documentado.

5. Editar:

sudo vim /etc/resolv.conf

Con el siguiente contenido:

nameserver 127.0.0.1

6. Reiniciar servicios por si Ascaso:

sudo service NetworkManager restart  
sudo service openvpn restart
sudo service dnsmasq restart
informatica/linux/dnsmasq.txt · Last modified: 2019/07/31 13:03 by javi