jriguera.dnsmasq

ansible-role-dnsmasq

Eine vielseitige Rolle zur Einrichtung von dnsmasq, entworfen nach dieser Philosophie:
https://github.com/jriguera/ansible-role-pattern/blob/master/README.md

Diese Rolle unterstützt die Definition verschiedener Schnittstellen für verschiedene Zwecke (dns, tftp ...) und viele dnsmasq-Parameter. Außerdem kann sie die Datei resolv.conf verwalten.

Ansible 2.0, funktioniert mit Ubuntu Trusty, Xenial und CentOS 7

Konfiguration

Standardkonfigurationsparameter sind:

dnsmasq_enabled_on_startup: True
# Verwalte resolvconf
dnsmasq_resolvconf: False

# Installiere aus Upstream-Repositories oder direkt aus Betriebssystempaketen
dnsmasq_os_packages: True

# Globale Parameter, Einstellungen sind erforderlich! Andernfalls werden sie ignoriert!
dnsmasq_dhcp: True
dnsmasq_tftp: True

### resolv.conf
#dnsmasq_host_domain: local
#dnsmasq_host_search: local
dnsmasq_host_resolvers: [ "127.0.0.1" ]

# Lege die Facility fest, an die dnsmasq syslog-Einträge sendet; dies ist standardmäßig
# DAEMON und auf LOCAL0, wenn der Debug-Modus aktiv ist. Wenn die angegebene Facility
# mindestens ein '/'-Zeichen enthält, wird sie als Datei interpretiert, in die dnsmasq
# anstelle von syslog protokolliert. Wenn die Facility '-' ist, protokolliert dnsmasq
# auf stderr.
dnsmasq_conf_log: /var/log/dnsmasq.log

# Aktiviere asynchrones Logging und optional die Limite für die Anzahl der
# Zeilen, die von dnsmasq in der Warteschlange gehalten werden, wenn das Schreiben in den
# syslog langsam ist.
#dnsmasq_conf_log_async:
dnsmasq_conf_log_dns: False

# Liste von IP-Adressen oder Schnittstellen, die gehört werden sollen (leere Liste für alle)
dnsmasq_conf_listen: []

# Auf Systemen, die es unterstützen, bindet dnsmasq die Wildcard-Adresse,
# auch wenn es nur auf einigen Schnittstellen lauscht. Anfragen, auf die
# nicht geantwortet werden sollte, werden dann verworfen. Das hat den Vorteil,
# dass es funktioniert, auch wenn Schnittstellen kommen und gehen und sich die Adressen ändern.
dnsmasq_conf_bind_interfaces: 'dynamic'


### DNS
# Akzeptiere DNS-Abfragen nur von Hosts, deren Adresse sich im lokalen Subnetz befindet,
# d.h. ein Subnetz, für das eine Schnittstelle auf dem Server vorhanden ist.
#dnsmasq_conf_local_service: True

# Leite niemals einfache Namen (ohne Punkt oder Domain-Teil) weiter
dnsmasq_conf_domain_needed: True

# Aktiviere Code zur Erkennung von DNS-Weiterleitungsschleifen; d.h. die Situation,
# in der eine Abfrage an einen der Upstream-Server schließlich als neue Abfrage
# an die dnsmasq-Instanz zurückgegeben wird.
#dnsmasq_conf_dns_loop_detect: True

# Alle Rückwärtsabfragen für private IP-Bereiche (d.h. 192.168.x.x usw.), die
# nicht in /etc/hosts oder der DHCP-Leasdatei gefunden werden, werden mit
# "no such domain" beantwortet, anstatt nach oben weitergeleitet zu werden.
# Niemals Adressen in den nicht gerouteten Adressräumen weiterleiten.
dnsmasq_conf_bogus_priv: True

# Wenn du nicht möchtest, dass dnsmasq /etc/hosts liest, entkommentiere die
# folgende Zeile.
dnsmasq_conf_no_hosts: False

# Zusätzliche Hosts-Datei, Format /etc/hosts (das ist eine Liste!)
#dnsmasq_conf_hosts:
# - ["127.0.0.1", "localhost"]
# - ["::1", "ip6-localhost", "ip6-loopback"]
# - ["fe00::0", "ip6-localnet"]
# - ["ff00::0", "ip6-mcastprefix"]
# - ["ff02::1", "ip6-allnodes"]
# - ["ff02::2", "ip6-allrouters"]
# - ["192.168.1.10", "foo.mydomain.org", "foo" ]
dnsmasq_conf_hosts: []

# Setze hier die Größe des DNS-Speicherzwischens.
cache-size: 1024

# Deaktiviere negatives Caching. Negatives Caching ermöglicht es dnsmasq,
# "no such domain"-Antworten von Upstream-Namensservern zu speichern und identische
# Abfragen zu beantworten, ohne sie erneut weiterzuleiten.
# Negative Antworten von Upstream-Servern enthalten normalerweise Informationen zur
# verbleibenden Zeit in SOA-Datensätzen, die dnsmasq zum Caching verwendet. Wenn dieser Parameter
# nicht definiert ist: "no-negcache".
dnsmasq_conf_negcache: 5

# Dieses Flag zwingt dnsmasq, jede Abfrage strikt in der Reihenfolge,
# wie sie in /etc/resolv.conf erscheinen, mit jedem Server zu versuchen.
dnsmasq_conf_strict_order: False

# Dieses Flag zwingt dnsmasq, alle Abfragen an alle verfügbaren Server zu senden.
# Die Antwort vom Server, der zuerst antwortet, wird an den ursprünglichen Anfrager zurückgegeben.
dnsmasq_conf_all_servers: False

# Wenn du möchtest, dass dnsmasq "/etc/resolv.conf" oder eine andere Datei liest.
# Leer oder nicht definiert, um das Lesen von resolv.conf zu deaktivieren
dnsmasq_conf_resolv: /etc/resolv.conf

# Überwache /etc/resolv.conf nicht auf Änderungen.
dnsmasq_conf_no_poll: False

# Wenn dnsmasq_conf_no_poll False ist, wird /etc/resolv.conf neu gelesen oder die
# Upstream-Server werden über DBus gesetzt, lösche den DNS-Cache.
dnsmasq_conf_clear_on_reload: True

# Gib die IP-Adresse von Upstream-Servern direkt an. Diese Option unterdrückt nicht
# das Lesen von /etc/resolv.conf: ['localnet', '192.168.0.1']
# Beispiel für die Weiterleitung von PTR-Abfragen an Namensserver: dies sendet alle:
# adresse->name-Abfragen für 192.168.3/24 zu Namensserver 10.1.2.3
# ['3.168.192.in-addr.arpa', '10.1.2.3']
#dnsmasq_conf_servers:
#  - [ "/google.com/", "8.8.8.8" ]
#  - "8.8.4.4"
dnsmasq_conf_servers: [ "8.8.8.8", "8.8.4.4" ]

# Gib einen MX-Eintrag zurück, der auf sich selbst für alle lokalen Maschinen zeigt: '_self'
# MX-Eintrag, der auf den dnsmasq-Server für alle lokalen Maschinen zeigt: '_local' oder ''
# MX-Eintrag, der auf "servername" für alle lokalen Maschinen zeigt: 'servername'
# Gib einen MX-Eintrag namens "maildomain.com" mit Ziel
# "servername" und Priorität 50 zurück: [maildomain.com, servername, 50]
#dnsmasq_conf_mx: servername
#dnsmasq_conf_mx_domain: {{ hostvars['k4.ww.mens.de'].
#dnsmasq_conf_mx_pref: 1

# Füge A-, AAAA- und PTR-Einträge zum DNS hinzu. Dies fügt einen oder mehrere Namen zum
# DNS mit zugehörigen IPv4 (A) und IPv6 (AAAA) Einträgen hinzu.
#dnsmasq_conf_host_records:
#  -[]

# Definiere eine DNS-Zone, für die dnsmasq als autorisierter Server agiert.
#dnsmasq_conf_auth_zone: []


### DHCP

# Protokolliere viele zusätzliche Informationen über DHCP-Transaktionen.
dnsmasq_conf_log_dhcp: False

# Setze die Domain für dnsmasq. Dies ist optional, aber wenn sie gesetzt ist, 
# macht es Folgendes.
# 1) Erlaubt DHCP-Hosts, vollständig qualifizierte Domainnamen zu haben, solange
#     der Domainteil mit dieser Einstellung übereinstimmt.
# 2) Setzt die "domain" DHCP-Option und setzt damit potenziell die
#    Domain aller per DHCP konfigurierten Systeme
# 3) Bietet den Domainteil für "expand-hosts"
# Wenn die Domain als "#" angegeben wird, wird die Domain aus der ersten
# "search"-Direktive in /etc/resolv.conf gelesen.
dnsmasq_conf_domain: '#'

# Nur wenn dnsmasq_conf_domain gesetzt ist, wird der unqualifizierte Name nicht länger
# im DNS gespeichert, nur der qualifizierte Name.
dnsmasq_conf_dhcp_fqdn: True

# Sollte gesetzt werden, wenn dnsmasq definitiv der einzige DHCP-Server in einem Netzwerk ist.
dnsmasq_conf_dhcp_authoritative: True

# Dnsmasq ist so konzipiert, dass es IP-Adressen für DHCP-Clients mithilfe eines Hashs
# der MAC-Adresse des Clients wählt.
dnsmasq_conf_dhcp_sequential_ip: True

# Deaktiviere die Wiederverwendung der DHCP-Servernamen- und Dateinamenfelder als zusätzlichen
# Optionsraum.
dnsmasq_conf_dhcp_no_override: True

# Entkommentiere dies, um den integrierten DHCP-Server zu aktivieren, du musst
# den Bereich der verfügbaren Adressen angeben und optional
# eine Leasingzeit. Wenn du mehr als ein Netzwerk hast, musst du
# das für jedes Netzwerk wiederholen, in dem du DHCP
# bereitstellen möchtest.
#dnsmasq_conf_dhcp: []
#dnsmasq_conf_dhcp:
#   - device: eth0:
#     range: [192.168.1.80, 192.168.1.150, infinite]
#     option: []
#     ignore_names: True
#     generate_names: True
#     boot: []
#     tftp: /var/lib/tftpboot

# Lese DHCP-Hostinformationen aus der Liste oder aus einer angegebenen lokalen Datei
#dnsmasq_conf_dhcp_hosts: []

# Völlig unterdrücke die Verwendung der Lease-Datenbankdatei. Die Datei wird nicht
# erstellt, gelesen oder geschrieben.
dnsmasq_conf_dhcp_leasefile_ro: False

# Jedes Mal, wenn ein neuer DHCP-Lease erstellt wird, ein alter gelöscht wird oder ein TFTP-Datei
# Übertragung abgeschlossen ist, wird das durch diese Option angegebene ausführbare Programm ausgeführt.
#dnsmasq_conf_dhcp_script: files/program.bin


### TFTP

# Aktiviere den sicheren TFTP-Modus: Ohne dies ist jede Datei, die vom
# dnsmasq-Prozess unter normalen Unix-Zugriffskontrollregeln lesbar ist, über TFTP verfügbar.
dnsmasq_conf_tftp_secure: False

# Konvertiere Dateinamen in TFTP-Anfragen in Kleinbuchstaben. Dies ist nützlich für
# Anfragen von Windows-Maschinen.
dnsmasq_conf_tftp_lowercase: True

# Setze die maximale Anzahl gleichzeitiger TFTP-Verbindungen.
dnsmasq_conf_tftp_max: 50

# Verhindere, dass der TFTP-Server die Option "blocksize" mit einem Client verhandelt.
dnsmasq_conf_tftp_no_blocksize: False

Du kannst diese Standardparameter als Rollenvariablen überschreiben. Sieh dir das Beispiel in site.yml mit Vagrant an und teste es mit vagrant up.

Neben der Verwaltung von dnsmasq ist diese Rolle auch in der Lage, die Datei /etc/resolv.conf zu verwalten, indem die Parameter dnsmasq_resolvconf: true und dnsmasq_host_* definiert werden.

Autor

José Riguera López jriguera@gmail.com

Über das Projekt

Install and setup Dnsmasq server on RedHat/Debian based distributions

Installieren
ansible-galaxy install jriguera.dnsmasq
Lizenz
Unknown
Downloads
714