Saltar al contenido

Cómo agregar dnsmasq y mantener resuelto systemd (18.04 a 20.04)

Sé libre de compartir nuestros post y códigos en tus redes, necesitamos de tu ayuda para hacer crecer esta comunidad.

Solución:

Quería obtener una resolución de dns rápida con dnsmasq y mantener intacta la configuración predeterminada de systemd-resolved/NetworkManager para uso futuro. Sí, el enorme almacenamiento en caché de dns de dnsmasq puede mejorar la velocidad de navegación. Sí, el objetivo era mantener la configuración de DNS destacada predeterminada de 18.04

  1. instalar dnmasq
  2. Configúralo (escuchar dirección y servidores dns)
  3. Configure NetWorkManager para la dirección del servidor dns manual
  4. comprobar verificar

1 – Con sudo

apt-get -y install dnsmasq

2 – Con sudo

tee -a /etc/dnsmasq.conf << ENDdm
interface=lo
bind-interfaces
listen-address=127.0.0.1
# DNS server from OpenDns. Use yours...
server=208.67.222.222
server=208.67.220.220
ENDdm

systemctl restart dnsmasq
systemctl enable dnsmasq

3 - Con USUARIO configurar NetworkManager

# Get NM first active profile name
NetManProfile=$(nmcli -t  connection show --active | cut -f 01 -d ':')
# remove, if exists, current dns servers
nmcli con mod "$NetManProfile" ipv4.dns ""
# set 'manual' dns server
nmcli con mod "$NetManProfile" ipv4.ignore-auto-dns yes
# set dnsmasq as manually set dns server
nmcli con mod "$NetManProfile" ipv4.dns 127.0.0.1
# i also disabled ip6, do what u want
nmcli con mod "$NetManProfile" ipv6.method ignore
# reconnect to take effect
nmcli connection down "$NetManProfile"
nmcli connection up "$NetManProfile"

4 - Comprobar verificar

  • systemd-resolved escucha en 127.0.0.53 como debería ser por defecto
  • dnsmasq escucha en 127.0.0.1 como se establece en /etc/dnsmasq
  • systemd-resolved tomó 127.0.0.1 de NetworkManager
netstat -antup
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name    
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1036/dnsmasq        
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      766/systemd-resolve
cat /run/systemd/resolve/resolv.conf 
nameserver 127.0.0.1

Traté de encontrar una solución razonable y parece que hay diferentes enfoques.

Quería permanecer como máximo dentro del diseño de distribución mientras cumplía con todos los requisitos comerciales. Esto es lo que recopilé y probé para que funcione en Ubuntu 18.04 limpio y el sabor de KDE Neon:

# Install required package and reconfigure service plans (i.e. disablesystemd-resolved, enable dnsmasq
sudo apt-get install dnsmasq
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable dnsmasq

# These two lines should work on most environments, but .. :-) - so I kept them commented out for less experienced users
# Just add or change 'dns=dnsmasq' to your NetworkManager.conf to the section [main]
# and yes, the sed expression can be better :-)

#sudo cp /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.backup
#sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.backup |sed -e "s/^dns=.*//"| sed -e "s/[main]/[main]ndns=dnsmasq/" >/etc/NetworkManager/NetworkManager.conf'

# Restart NetworkManager to make the change above applied
sudo systemctl restart NetworkManager

# This removes the systemd resolv.conf link only if it has NetworkManager replacement :-)
ls /var/run/NetworkManager/resolv.conf && sudo rm /etc/resolv.conf

# And add NetworkManager's resolv.conf available for the system resolver
sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

(Tenga en cuenta que la única diferencia general con las respuestas anteriores es que NetworkManager maneja las asignaciones del servidor DNS dnsmasq automáticamente

¡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 *