Saltar al contenido

dnsmasq, sirve diferentes direcciones IP según la interfaz utilizada

Revisamos de forma cada uno de los artículos de nuestro espacio con la meta de enseñarte siempre la información con la mayor veracidad y actual.

Solución:

Puede ejecutar dos instancias de dnsmasq, cada uno con una interfaz diferente en la que escucha. Puedes usar el --interface=X y --bind-interfaces opciones para eso. De forma predeterminada, también vincula el dispositivo de bucle invertido lo y fallará si dos procesos intentan enlazarlo. Utilizar --except-interface=lo para evitar eso

dnsmasq --interface=eth0 --except-interface=lo --bind-interfaces --dhcp-range=192.168.0.2,192.168.0.10,12h
dnsmasq --interface=eth1 --except-interface=lo --bind-interfaces --dhcp-range=10.0.0.2,10.0.0.10,12h

Asegúrese de que su archivo de configuración esté vacío cuando pruebe esto, ya que siempre anula la línea de comando. También puedes usar --conf-file=/dev/null.

Como mencioné en el comentario, no estoy muy seguro de cómo esto ayuda a su situación, pero podría ayudar a cualquier otra persona que intente obtener dos rangos de direcciones diferentes en dos interfaces diferentes.

Agregar la interfaz al comienzo de cada parámetro funciona bien para mí. Ejemplo (en dnsmasq.conf):

dhcp-host=eth0,00:22:43:4b:18:43,192.168.0.7
dhcp-host=eth1,00:22:43:4b:18:43,192.168.1.7

Estoy usando la versión:

$ dnsmasq --version
Version de Dnsmasq 2.68  Copyright (c) 2000-2013 Simon Kelley

Si bien la respuesta de @kichik bien puede funcionar, una forma más elegante de lograr lo mismo podría ser usar el localise-queries directiva y una única dnsmasq instancia del servidor.

Asumiré que ya configuró sus rangos de DHCP para las diferentes interfaces y ha vinculado dnsmasq a aquellos.

Agregue el (parcialmente documentado) localise-queries opción a su dnsmasq.conf expediente.

# /etc/dnsmasq.conf
localise-queries

Luego, asegúrese de que uno de los archivos que dnsmasq lecturas para sus anfitriones (como /etc/hosts) contiene entradas con las direcciones IP para ambas redes, así:

# /etc/hosts
127.0.0.1      dev-vm
192.168.1.1    dev-vm
10.0.0.1       dev-vm

Una alternativa al cambio de /etc/hosts archivo es especificar las direcciones en su dnsmasq.conf archivo en su lugar:

# /etc/dnsmasq.conf
localise-queries
host-record=dev-vm,127.0.0.1
host-record=dev-vm,192.168.1.1
host-record=dev-vm,10.0.0.1

Como resultado, en ambos casos, dnsmasq solo servirá la IP que coincida con la IP y la máscara de red de la interfaz para las consultas recibidas en esa interfaz en particular.

De acuerdo con la página del manual, esto hace lo siguiente:

-y, –localizar-consultas

Devuelve respuestas a consultas de DNS desde /etc/hosts que dependen de la interfaz a través de la cual se recibió la consulta. Si un nombre en /etc/hosts tiene más de una dirección asociada y al menos una de esas direcciones está en la misma subred que la interfaz a la que se envió la consulta, devuelva solo las direcciones en esa subred . Esto permite que un servidor tenga varias direcciones en /etc/hosts correspondientes a cada una de sus interfaces, y los hosts obtendrán la dirección correcta según la red a la que estén conectados. Actualmente, esta función está limitada a IPv4.

Te mostramos reseñas y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *