Restringir el servidor DHCP de dnsmasq a una interfaz

11

¿Cómo configuro dnsmasqpara asignar solo direcciones eth0, no wlan0?

Delan Azabani
fuente

Respuestas:

13

La página del manual lo explica muy bien. Si solo desea ejecutar DHCP wlan0, puede usarlo --no-dhcp-interface=wlan0. Si no desea que dnsmasq escuche nada wlan0, puede usarlo --except-interface=wlan0.

Si solo desea que dnsmasq escuche eth0, puede usar --interface=eth0.

WheresAlice
fuente
12

Para aquellos que como yo, estamos confundidos acerca de por qué el puerto 53 todavía está abierto para todas las interfaces, independientemente de la opción que se ponga para limitarlo. Hay una opción más que debe activarse.

-z, --bind-interfaces On systems which support it, dnsmasq binds the wildcard address, even when it is listening on only some interfaces. It then discards requests that it shouldn't reply to. This has the advantage of working even when interfaces come and go and change address. This option forces dnsmasq to really bind only the interfaces it is listening on. About the only time when this is useful is when running another nameserver (or another instance of dnsmasq) on the same machine. Setting this option also enables multiple instances of dnsmasq which provide DHCP service to run in the same machine.

Jin Chen
fuente
Este es exactamente el tipo de cosas que es fácil pasar por alto, pero es clave para que funcione con otras soluciones DHCP (como en mi caso, los servicios internos de QNAP). Alguien debería tomar las tres respuestas principales y fusionarlas. Esto me salvó el día, gracias
Danielo515
11

Esto también es posible desde el archivo de configuración dnsmasq, y está documentado en el archivo de ejemplo de Simon Kelley en http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example :

# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
#interface=
# Or you can specify which interface _not_ to listen on
#except-interface=
Stefan Lasiewski
fuente