Como adicionar o dnsmasq e manter o systemd-resolved (18.04)

5

Eu quero obter uma resolução de dns rápida com dnsmasq e manter o padrão systemd-resolvido.

Procurando uma maneira elegante de fazer isso

    
por cmak.fr 05.05.2018 / 17:47

3 respostas

4

Eu queria obter uma rápida resolução de dns com o dnsmasq e manter a configuração padrão do systemd-resolved / NetworkManager intocada para uso futuro. Sim, o enorme cache de dns do dnsmasq pode melhorar a velocidade de navegação. Sim, o objetivo era manter a configuração de dns em destaque padrão de 18.04

  1. Instalar o dnmasq
  2. Configure (escuta endereços e servidores dns)
  3. Configurar o NetWorkManager para o endereço do servidor de DNS manual
  4. Verifique a verificação

1 - com sudo

apt-get -y install dnsmasq

2 - com 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 - Com USER, configure o 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 - Verifique a verificação

  • systemd-resolved listen on 127.0.0.53 como deveria por padrão
  • dnsmasq ouça em 127.0.0.1 como definido em / etc / dnsmasq
  • systemd-resolved aceitou 127.0.0.1 do 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
    
por cmak.fr 30.05.2018 / 01:17
0

Ubuntu 18.10

IMHO, se você estiver executando o dnsmasq, você deve atribuir estaticamente seu endereço IP em vez de obtê-lo do dhcp. Desta forma, você pode simplesmente desabilitar o systemd-resolved todos juntos.

  1. sudo apt-get instala o dnsmasq

  2. sudo systemctl desabilita systemd-resolvido

  3. sudo systemctl pára systemd-resolvido

  4. Atribua manualmente seu endereço IP, gateway e atribua o endereço IP à sua máquina como DNS.

  5. configure o /etc/dnsmasq.conf (realmente ... RTFM - > man dnsmasq.conf)

  6. sudo systemctl habilitar dnsmasq

  7. reinicializar
  8. sudo systemctl status dnsmasq

  9. aponte o dhcp no seu servidor dhcp para o novo e brilhante servidor dnsmasq (.. if yumpto)

por LiverWurst 23.10.2018 / 00:17
0

Eu tentei encontrar uma solução razoável e parece que existem diferentes abordagens.

Eu queria ficar no máximo dentro do layout de distribuição, mantendo todos os requisitos de negócios atendidos. Isso é o que eu colecionei e testei para trabalhar no sabor limpo do Ubuntu 18.04 e do 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

(observe que a única diferença geral com as respostas acima é que o NetworkManager manipula as atribuições do servidor DNS dnsmasq automaticamente

    
por Venca B Spam 01.11.2018 / 07:38