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/09/16 15:18] 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.  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. 
Zeile 6: Zeile 9:
 ===== Methode 1 --> vollautomatisch mit NetworkManger und DNSmasq-Base ===== ===== 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. +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 ==== ==== Konfiguration ====
Zeile 31: Zeile 34:
 systemctl restart NetworkManager systemctl restart NetworkManager
 </code> </code>
-Ab nun wird die DNSmasq bei jedem Verbindungsprofil des Networkmangers berücksichtigt. +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.  
 + 
 +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
  
 ===== Methode 2 --> direkt mit DNSmasq ===== ===== Methode 2 --> direkt mit DNSmasq =====
  
- +In Sonderfällen kann es notwendig sein Dnsmasq direkt zu verwendenBei dieser Methode wird das Paket "DNSMASQ" benötigtDieses muss installiert werden
-DNSMASQ wird meist verwendet um DNSserver Domänen zuzuweisenZ.B.+
 <code> <code>
 +apt install dnsmasq -y
 +</code>
 +==== Konfiguration ====
 +Die ''/etc/dnsmasq.conf'' ist zu ergänzen:
 +<code>
 +...
 server=/tux.local/172.17.11.60 server=/tux.local/172.17.11.60
 server=/11.17.172.in-addr.arpa/172.17.11.60 server=/11.17.172.in-addr.arpa/172.17.11.60
 +...
 </code> </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:
-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''. 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.    * ''/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.    * 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. 
Zeile 58: Zeile 81:
 ... ...
 </code> </code>
-Die ''/etc/nsswitch.conf'' sollte so aussehen:+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> <code>
 ... ...
Zeile 68: Zeile 98:
 Zum Schluss noch die Dienste neu Starten: Zum Schluss noch die Dienste neu Starten:
 <code> <code>
 +systemctl restart systemd-resolved.service
 systemctl restart NetworkManager systemctl restart NetworkManager
 systemctl restart dnsmasq.service systemctl restart dnsmasq.service
 </code> </code>
- 
-===== Methode 3 --> die Radikale (nicht zum emfehlen) ===== 
-Seltsamer weise kommen dnsmasq und sytemdresolver bei machen Systemen nicht miteinander aus. Warum wurde noch nicht heraus gefunden. Ist das der Fall und können beide Dienste nicht zur gleichen Zeit laufen. Löscht man die ''resolv.conf'' und deaktiviert den Systemdresolver.  
-<code> 
-systemctl stop systemd-resolved.service 
-systemctl disable systemd-resolved.service 
-rm /etc/resolv.conf 
-touch /etc/resolv.conf 
-systemctl restart dnsmasq.service 
-</code> 
- 
- 
-===== Links ===== 
- 
- 
-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 
- 
-