Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
server_und_serverdienste:systemd-resolved_durch_dnsmasq_ersetzen [2018/07/11 22:30] boospyserver_und_serverdienste:systemd-resolved_durch_dnsmasq_ersetzen [2021/03/04 15:05] (aktuell) lois
Zeile 1: Zeile 1:
 ====== Systemd-resolved durch DNSmasq ersetzen ====== ====== Systemd-resolved durch DNSmasq ersetzen ======
  
 +Hauseigenes Apt-Repo: [[https://apt.iteas.at]]    [[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KE592Y5993ZKW|{{:wiki:btn_donatecc_lg.gif|}}]]
 +\\
 +\\
 __Ab Ubuntu 18.04__ __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 Konfigurationsänderungen notwendig. 
  
-Default:+===== Methode 1 --> vollautomatisch mit NetworkManger und DNSmasq-Base ===== 
 + 
 +Hierfür darf das Paket ''dnsmasq'' nicht installiert. Achtung bei [[server_und_serverdienste:upgrade_von_ubuntu_16.04_auf_ubuntu_18.04|Upgrade von Ubuntu 16.04 auf Ubuntu 18.04]]. Vergesst nicht das Paket ''resolvconf'' zum deinstallieren. Dieses Paket wird ab 18.04 nicht mehr unterstützt und ist somit auch kein Default mehr. Das Paket "dnsmasq-base" wird benötigt. Dieses ist bei einer Standardinstallation schon dabei. Falls nicht muss es nach installiert werden.  
 + 
 +==== Konfiguration ==== 
 +Zuerst bringt man Networkmanager bei DNSMASQ zu benutzen anstatt von "systemd-resolved". Hierfür müssen wir einen Eintrag in der Networkmanagerkonfiguration vornehmen.  
 +''nano /etc/NetworkManager/NetworkManager.conf'' Hier unter "main" den Dnsmasqeintrag hinzufügen. 
 <code> <code>
-ls -l /etc/resolv.conf  +[main] 
-lrwxrwxrwx 1 root root 37 Jul 11 22:23 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf+dns=dnsmasq
 </code> </code>
 +Weiters ist ein Teil der Konfguration die beim vollen DNSMASQ ja unter ''/etc/dnsmasq'' liegt, nach ''/etc/NetworkManager/dnsmasq.d/dnsmasq.conf'' zu speichern. Nicht die ganze Konfig, nur die Domänenteile:
 +<code>
 +...
 +server=/tux.local/172.17.11.60
 +server=/11.17.172.in-addr.arpa/172.17.11.60
 +...
 +</code>
 +In dieser Konfiguration dürfen keine DNSserver Fix in der Datei ''dnsmasq.conf'' wie unter "Methode 2" mit übergeben werden, da automatisch diese genutzt werden, die Networkmanager bekommt. Zu guter letzt ist noch auf die DNSkonfiguration des Networkmanagers zu verlinken. 
 +<code>
 +rm /etc/resolv.conf
 +ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
 +</code>
 +Und den Networkmanager neu starten:
 +<code>
 +systemctl restart NetworkManager
 +</code>
 +Ab nun wird die DNSmasq bei jedem Verbindungsprofil des Networkmangers berücksichtigt. Fügt man neue Domänen zur Datei ''dnsmasq.conf'' hinzu oder löscht welche, ist lediglich ein Reload der Konfiguration notwendig. VPNs, Routen usw. bleiben dabei bestehen. 
 +<code>
 +systemctl reload NetworkManager
 +</code>
 +Nutzt man Plasma/KDE können diese Befehle bequem über den Krunner abgesetzt werden. Polkit erledigt den Rest. Möchte man hier keine Passwortabrage haben, trägt man das Service ganz einfach in die ''/etc/sudoers'' mit der ensprechende Admingruppe ein. Beispiel:
 +<code>
 +%wheel      ALL=(ALL) NOPASSWD: /bin/systemctl reload NetworkManager
 +</code>
 +In Krunner kann dann der Befehl ''sudo systemctl reload NetworkManager'' einfach abgesetzt werden. Auch für das File ''/etc/NetworkManager/dnsmasq.d/dnsmasq.conf'' können entsprechende Gruppenrechte und Verknüpfung in Dolphin zur einfacheren Handhabung übergeben werden. 
  
-FIXME+Je nach System/Netzwerkconfig kann man die ''/etc/nsswitch.conf'' auf Wunsch umschreiben. 
 +<code> 
 +... 
 +-  hosts:          files mdns4_minimal [NOTFOUND=return] dns 
 +++ hosts:          files dns mdns 
 +... 
 +</code> 
 +Man kann hier natürlich auch nach belieben anders strukturieren. Hier hilft die Manpage. Z.B. statt ''mdns'' kann man auch nur ''mdns4'' oder ''mdns6'' verwenden. 
  
-https://blog.yumdap.net/ubuntu-17-04-dns-mit-dnsmasq-statt-systemd/ \\ +===== Methode 2 --> direkt mit DNSmasq =====
-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+
  
 +In Sonderfällen kann es notwendig sein Dnsmasq direkt zu verwenden. Bei dieser Methode wird das Paket "DNSMASQ" benötigt. Dieses muss installiert werden. 
 +<code>
 +apt install dnsmasq -y
 +</code>
 +==== Konfiguration ====
 +Die ''/etc/dnsmasq.conf'' ist zu ergänzen:
 +<code>
 +...
 +server=/tux.local/172.17.11.60
 +server=/11.17.172.in-addr.arpa/172.17.11.60
 +...
 +</code>
 +Nun stellt man im Networkmanager als DNSserver Localhost ein. ''::1 127.0.0.1''. Wichtig ist das man beim Networkmanager angibt statt "Automatisch", "nur Adressen", da sonst auch die DNSserver vom DHCP mitübergeben werden. 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. 
  
 +<code>
 +rm /etc/resolv.conf
 +ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
 +</code>
 +Um nun auch öffentliche Adressen auflösen zu können müssen forwarder in der ''nano /etc/dnsmasq.conf'' eingetragen werden:
 +<code>
 +server=IPV4dnsserver
 +server=IPV6dnsserver
 +...
 +</code>
 +Damit DNSMASQ auch startet müssen wir den StubListener für den Systemddresolver abschalten. Hierzu barbeiten wir die Datei ''/etc/systemd/resolved.conf'' und setzen folgende Option auf "no"
 +<code>
 +...
 +DNSStubListener=no
 +...
 +</code>
 +
 +Je nach System/Netzwerkconfig kann man die ''/etc/nsswitch.conf'' auf Wunsch umschreiben.
 +<code>
 +...
 +-  hosts:          files mdns4_minimal [NOTFOUND=return] dns
 +++ hosts:          files dns mdns
 +...
 +</code>
 +Man kann hier natürlich auch nach belieben anders strukturieren. Hier hilft die Manpage. Z.B. statt ''mdns'' kann man auch nur ''mdns4'' oder ''mdns6'' verwenden. 
 +Zum Schluss noch die Dienste neu Starten:
 +<code>
 +systemctl restart systemd-resolved.service
 +systemctl restart NetworkManager
 +systemctl restart dnsmasq.service
 +</code>