Dies ist eine alte Version des Dokuments!


Systemd-resolved durch DNSmasq ersetzen

Ab Ubuntu 18.04 Seit Ubuntu 18.04 ist die Benutzung von DNSMASQ nur mehr sehr schwer möglich. Verantwortlich hierfür ist der Dienst „systemd-resolved“. Dieser ist ein Teil von Systemd und kann nicht entfernt werden. Um DNSMASQ dennoch benutzen zu können sind ein paar Workarrounds notwendig.

DNSMASQ wird meist verwendet um DNSserver Domänen zuzuweisen. Z.B.

server=/tux.local/172.17.11.60
server=/11.17.172.in-addr.arpa/172.17.11.60

Problem ist das die Datei /etc/resolv.conf mit einem Wert beschieben wird wobei DNSMASQ nicht verwendet werden kann. Es ist möglich Networkmanager in der Datei /etc/NetworkManager/NetworkManager.conf zu sagen das dieser DNSMASQ als DNSforwarder verwende soll. Leider kann DNSMASQ nicht auf dieser Adress 127.0.1.1 fungieren. Also ist auch das keine Lösung. Wie soll man also vorgeheh?

Als erstes stellt man im Networkmanager als DNSserver Localhost ein. ::1 127.0.0.1. Nun gibt es zwei Dateien die für DNS Zuständig sind:

  • /run/systemd/resolve/stub-resolv.conf Dies ist die Defaultdatei und Linkt nach /etc/resolv.conf hier schreibt Systemd.
  • Zum Zweiten gibt es die Datei /run/systemd/resolve/resolv.conf diese wird direkt von Networkmanager beschrieben. Diese müssen wir für DNSmasq verwenden.
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Um nun auch öffentliche Adressen auflösen zu können müssen forwarder in der nano /etc/dnsmasq.conf eingetragen werden:

server=IPV4dnsserver
server=IPV6dnsserver
...

Zum Schluss noch die Dienste neu Starten:

systemctl restart NetworkManager
systemctl restart dnsmasq.service

https://blog.yumdap.net/ubuntu-17-04-dns-mit-dnsmasq-statt-systemd/
https://askubuntu.com/questions/898605/how-to-disable-systemd-resolved-and-resolve-dns-with-dnsmasq
https://cnly.github.io/2017/09/02/ubuntu1704-dnsmasq-resolvconf.html
https://github.com/hashicorp/consul/issues/4155