staging.inyokaproject.org

Dnsmasq

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Dnsmasq.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

u1000 schrieb:

Die Ausgabe oben zeigt, dass der Network Manager von Lubuntu dnsmasq nutzt, daher ist es automatisch installiert?

Ja.

u1000 schrieb:

Aber unter Ubuntu/Unity gibt es doch auch den Network Manager.

Benutzt der NetworkManager unter Ubuntu/Unity in seiner Standard-Konfiguration, auch dnsmasq?

EDIT:

BTW: dnsmasq ist nicht gleich dnsmasq. Welchen dnsmasq meint der TE und welchen dnsmasq meinst Du?

BTW: Unter Lubuntu:

:~$ cat /etc/NetworkManager/NetworkManager.conf | grep -i dnsmasq
#dns=dnsmasq
:~$ ps aux | grep [d]ns
dnsmasq   1340  0.0  0.0   3296   880 ?        S    08:14   0:00 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid --all-servers --query-port=49122 --min-port=40692 --hosts-cache=/var/log/dnsmasq/cache/dnsmasq.txt --max-cache-ttl=36000 --max-ttl=72000 -u dnsmasq --conf-file=/etc/dnsmasq.conf

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Hallo,
zur Standardinstallation gehört dnsmasq_base, dies bedeutet, dass dnsmasq nicht als automatisch startender Dienst installiert wird. dnsmasq ist ansonsten aber voll funktionsfähig vorhanden und kann direkt mit div. Parametern gestartet werden, was der Network-Manager ja auch macht.

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.0.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus --conf-dir=/etc/NetworkManager/dnsmasq.d

Aufruf als DHCP-Server beispielsweise so:

/usr/sbin/dnsmasq -i [lausche auf Interface (eth0)] -I [ignoriere Interface (wlan0)] -F $startaddresse,$endaddresse,$leasetime

Man kann auch weitere Schnittstellen und Adressbereiche konfigurieren. Ich nutze diese Konfiguration in bash-Skripten.

http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

Das Installationspaket dnsmasq enthält nur die entsprechende Dienstekonfiguration, die Konfigurationsdatei /etc/dnsmasq.conf und die Doku:

/etc/default/dnsmasq
/etc/dnsmasq.conf
/etc/dnsmasq.d/README
/etc/init.d/dnsmasq
/etc/insserv.conf.d/dnsmasq
/etc/resolvconf/update.d/dnsmasq
/lib/systemd/system/dnsmasq.service
/usr/lib/resolvconf/dpkg-event.d/dnsmasq
/usr/share/doc/dnsmasq

Zoidberg14

Anmeldungsdatum:
10. April 2014

Beiträge: Zähle...

Hallo, habe etwas gefunden was hier gut hin passt: Bei der Standardinstallation von Ubuntu ist ja dnsmasq-base schon enthalten, anscheinend zur Verwendung für den Network-Manager. Ohne das komplette dnsmasq nachzuinstallieren kann man jetzt das DNS-Caching aktivieren, indem man eine Datei in /etc/NetworkManager/dnsmasq.d/ erstellt, mit der Zeile

cache-size=150

Der Network-Manager kümmert sich dann um dnsmasq und nach einem Neustart des Managers sollte auch das Caching funktionieren.

Quelle hier: http://askubuntu.com/questions/264827/how-do-i-activate-a-local-caching-nameserver

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Hallo,
die Konfiguration sollte standardmäßig bereits in der /etc/NetworkManager/dnsmasq.d/local vorhanden sein.

Eine Anfrage wie man das bei bestimmten Anforderungen abschalten kann gerade hier.

Zoidberg14

Anmeldungsdatum:
10. April 2014

Beiträge: Zähle...

Habe gerade nochmal nachgesehen und auch bei einer frischen Installation der beta2 von trusty existiert die Datei /etc/NetworkManager/dnsmasq.d/local nicht. Die Cachingfunktionalität von dnsmasq ist auch nicht aktiviert, soweit ich das hier beurteilen kann.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Unter 12.04 steht bei meinem System dies in der Datei:

cache-size=200
listen-address=127.0.0.1
interface=eth0

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

bei mir unter Trusty (installiert als Upgrade von Saucy) existiert die Datei ebenfalls _nicht_.

Gruß, noisefloor

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

noisefloor schrieb:

bei mir unter Trusty (installiert als Upgrade von Saucy) existiert die Datei ebenfalls _nicht_.

Genau das kann ich inzwischen bestätigen.

Eigenartig ist, wenn man den Cache aktiviert, dass dies in der Konfiguration nicht so übernommen bzw. angezeigt wird

ps aux | grep [d]ns

Ausgabebeispiel:

nobody    3651  0.0  0.0  30364  1600 ?        S    06:29   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.0.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus --conf-dir=/etc/NetworkManager/dnsmasq.

Conan179

Anmeldungsdatum:
20. Dezember 2010

Beiträge: Zähle...

Der Wiki artikel könnte man erweitern, über ipv6, wäre ne überlegung wert.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

@Conan179: das kannst du gerne machen ☺ Bei Interesse bitte hier nochmal kurz posten.

Gruß, noisefloor

Conan179

Anmeldungsdatum:
20. Dezember 2010

Beiträge: Zähle...

Das problem ist, ich hab keine nblassen schimmer, wie ipv6 geht, nebenbei, hab ich dnsmasq auf meiner gefreetzte Fritzbox, kann sein, das es ein bischen anders läuft.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ok... Aber trotzdem Danke für die Anregung - vielleicht findet sich ja jemand.

Gruß, noisefloor

WoodEllen

Anmeldungsdatum:
22. Juni 2015

Beiträge: Zähle...

Hallo,

ich bin hier offenbar richtig bei Fragen zum Thema Dnsmasq.

1. Ich nutze die Server-Variante von Ubuntu 14.04. Diese läuft ja grundsätzlich ohne GUI. Beim NetworkManager gibt es offenbar auch eine Variante, die ohne GUI läuft. Meine erste Frage ist: Wird der NetworkManager (ggf. in der Variante ohne GUI) bei der Server-Variante von Ubuntu 14.04 automatisch mitinstalliert?

2. Die Datei /etc/resolv.conf enthält selbst den Hinweis, dass sie nicht manuell angepasst werden soll. Wenn nicht der NetworkManager darin rumschreibt (weil ggf. nicht installiert), welche Software macht dies denn dann? Oder anders gefragt: Wie trage ich die Einträge - wie im Wiki zu Dnsmasq beschrieben - in die /etc/resolv.conf ein, ohne dass sie überschrieben werden?

3. Eine letzte Verständnisfrage zum Wiki: Bei dem Abschnitt Dnsmasq als DNS-Server für andere Rechner im lokalen Netz wird eine IP-Adresse mit aaa.bbb.ccc.ddd angegeben. Der Eintrag in die Datei /etc/dnsmasq.conf muss doch die tatsächliche IP-Adresse (also z. B. 192.168.178.50) enthalten und nicht die Buchstabenvariante. Oder setzt Dnsmasq die Buchstabenvariante in die IP-Adresse des Servers automatisch um?

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

WoodEllen schrieb:

1. Ich nutze die Server-Variante von Ubuntu 14.04. Diese läuft ja grundsätzlich ohne GUI. Beim NetworkManager gibt es offenbar auch eine Variante, die ohne GUI läuft. Meine erste Frage ist: Wird der NetworkManager (ggf. in der Variante ohne GUI) bei der Server-Variante von Ubuntu 14.04 automatisch mitinstalliert?

Evtl. kann das mit:

apt-cache policy network-manager

angezeigt werden.

WoodEllen schrieb:

2. Die Datei /etc/resolv.conf enthält selbst den Hinweis, dass sie nicht manuell angepasst werden soll. Wenn nicht der NetworkManager darin rumschreibt (weil ggf. nicht installiert), welche Software macht dies denn dann?

Das macht resolvconf (evtl. mit diversen Scripten, abhängig von der Konfiguration des Networking in der jeweiligen Linux-Distribution, z. B. dhclient, interfaces, NM, etc.). Siehe z. B. die Ausgabe von:

which resolvconf

WoodEllen schrieb:

Oder anders gefragt: Wie trage ich die Einträge - wie im Wiki zu Dnsmasq beschrieben - in die /etc/resolv.conf ein, ohne dass sie überschrieben werden?

Durch Konfiguration von resolvconf und mit Hilfe der Dateien:

/etc/resolvconf/resolv.conf.d/base
/etc/resolvconf/resolv.conf.d/head

oder durch Verzicht auf resolvconf (removen) und direktes editieren der Datei "/etc/resolv.conf".

WoodEllen schrieb:

3. Eine letzte Verständnisfrage zum Wiki: Bei dem Abschnitt Dnsmasq als DNS-Server für andere Rechner im lokalen Netz wird eine IP-Adresse mit aaa.bbb.ccc.ddd angegeben. Der Eintrag in die Datei /etc/dnsmasq.conf muss doch die tatsächliche IP-Adresse (also z. B. 192.168.178.50) enthalten und nicht die Buchstabenvariante. Oder setzt Dnsmasq die Buchstabenvariante in die IP-Adresse des Servers automatisch um?

Nein, es muss die tatsächliche IP-Adresse eingetragen werden.

renegat.YeaPh2aB

Avatar von renegat.YeaPh2aB

Anmeldungsdatum:
6. März 2012

Beiträge: Zähle...

Also entweder ich habe etwas falsch verstanden oder die Anleitung hier hat einen Fehler: Dnsmasq als DNS-Server und DNS-Cache für andere Rechner im lokalen Netz ist standardmäßig an für jeden Rechner, der die IP des Rechners, auf dem dnsmasq läuft, in der resolv.conf als Nameserver an erster Stelle eingetragen hat - sei es der 'Eigene' mit 127.0.0.1 oder irgend ein anderer im gleichen Netzwerk. Rechner die von dnsmasq via DHCP ihre IP erhalten bekommen den dnsmasq-Rechner als Nameserver automatisch als Ersten eingetragen.

Der Eintrag:

listen-address=127.0.0.1
listen-address=aaa.bbb.ccc.ddd

ist also überflüssig und mach nur dann Sinn, wenn aaa.bbb.ccc.ddd eine statische IP ist und man z.B. eine weiteres Netzwerk ausschließen möchte.

Das sind alles Ausschlussregeln: 'If you want dnsmasq to listen for DHCP and DNS requests only on specified interfaces give the name of the interface or which to listen on by address.' Das heißt die Angabe von 'listen-address' schließt erst einmal alles aus außer denen, die dann explizit angegeben werden:

# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
# interface=eno1
# interface=wlp2s0
# Or you can specify which interface _not_ to listen on
#except-interface=
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
# listen-address=127.0.0.1