¿Cómo usar dnsmasq para nombres de host personalizados en OpenVPN?

¿Cómo usar dnsmasq para nombres de host personalizados en OpenVPN?

Estoy intentando configurar dnsmasq para poder crear nombres de host personalizados en un servidor OpenVPN. De modo que cuando una máquina se conecte, los nombres de host apuntarán a los recursos ubicados en el host o la red OpenVPN.

Entonces, por ejemplo, el archivo /etc/hosts en el servidor se parece a lo siguiente:

db.private.resource 10.8.0.1
app.private.resource 10.8.0.1

Conseguir que el cliente utilice el túnel para la búsqueda de DNS es bastante sencillo. En el archivo server.conf tengo:

push "dhcp-option DNS 10.8.0.1"

Y en la configuración del cliente tengo:

dhcp-option DNS 10.8.0.1

Y puedo verificar que el cliente esté usando OpenVPN como su DNS cuando esté conectado ejecutando:

# dnsmasq --no-daemon -q

En la línea de comando, haga ping desde el cliente para verificar que el cliente efectivamente esté enviando solicitudes de búsqueda de DNS al servidor OpenVPN a través del túnel, y que el servidor OpenVPN efectivamente esté manejando las solicitudes.

El problema es que cuando intento hacer ping al db.private.resourcehost que definí, aparece:

dnsmasq: query[A] db.private.resource from 10.8.0.2
dnsmasq: config db.private.resource is NXDOMAIN

Desde la salida de dnsmasq. Entonces, por alguna razón, no parece devolver los valores que definí en /etc/hosts. Y lo que me sorprende es que incluso cuando ejecuto dnsmasq con un parámetro de dirección agregado, sigo obteniendo el resultado anterior.

# dnsmasq --no-daemon -q --address=/db.private.resource/10.8.0.1/

dnsmasq: query[A] db.private.resource from 10.8.0.2
dnsmasq: config db.private.resource is NXDOMAIN

¿Hay algo que parezca incorrecto en este resultado?

Respuesta1

Primero instale dnsmasq: sudo apt-get update; sudo apt-get install dnsmasq.

Servidor

En el servidor, agregue esta línea a /etc/dnsmasq.conf:

...
expand-hosts #Uses /etc/hosts on this machine for resolution
bind-interfaces #will bind on all available interfaces, including the openvpn one
listen-address=10.8.0.1 # i noticed recently that i also need to add this line, because by default it will only listen on 10.9.0.1 which isnt pushed to my clients
...

Luego, edite el /etc/hostsarchivo con sus nombres de host. Finalmente, corre sudo /etc/init.d/dnsmasq restart.

Si no desea editar /etc/hostspor algún motivo, puede crear un nuevo archivo en /etc/dnsmasq.conf.d/addresses.confy completarlo con sus direcciones:

address=/umomma.com/69.69.69.69
address=/oo.umomma.com/69.69.69.60
address=/ooooo.umomma.com/69.69.69.62
address=/ooooooooo.umomma.com/69.69.69.65

Con este segundo método, también querrás ejecutarlo sudo /etc/init.d/dnsmasq restartdespués.

Cliente

Los servidores OpenVPN normalmente se autoasignan las direcciones IP 10.8.0.1o 10.9.0.1. Entonces, en el cliente, queremos asegurarnos de consultar esos servidores de nombres primero.

Por ahora, al menos, edité /etc/resolv.confen el cliente, antepuse nameserver 10.8.0.1a la primera línea del archivo. Entonces, en el cliente, mi resolve.conf completo se ve así:

nameserver 10.8.0.1
nameserver 8.8.8.8
nameserver 8.8.8.8
nameserver 127.0.1.1

Para que estos cambios duren al reiniciar, realice el mismo cambio en /etc/resolvconf/resolv.conf.d/head.

También

Recuerde ejecutar sudo /etc/init.d/dnsmasq restartcuando agregue hosts en el servidor

información relacionada