N'inclut pas automatiquement tous les sous-domaines dans l'adresse DNSMasq

10

Il est possible de configurer DNSMasq de telle sorte qu'il renvoie une adresse IP fixe uniquement pour une demande pour ce domaine exact, et non pour ses sous-domaines? C'est, je veux revenir une adresse IP fixe lors de la résolution example.com, mais non a.example.com, b.example.cometc.

Michael Mrozek
la source

Réponses:

9
host-record=example.com,1.2.3.4

La page de manuel dnsmasq indique:

--host-record = <name> [, <name> ....] [<IPv4-address>], [<IPv6-address>]
Ajoutez des enregistrements A, AAAA et PTR au DNS. Cela ajoute un ou plusieurs noms au DNS avec les enregistrements IPv4 (A) et IPv6 (AAAA) associés. Un nom peut apparaître dans plusieurs enregistrements d'hôte et par conséquent se voir attribuer plusieurs adresses. Seule la première adresse crée un enregistrement PTR liant l'adresse au nom. Il s'agit de la même règle que celle utilisée pour la lecture des fichiers hôtes. Les options d' enregistrement d'hôte sont considérées comme lues avant les fichiers hôte, donc un nom qui y apparaît empêche la création d'enregistrement PTR s'il apparaît également dans le fichier d'hôtes. Contrairement aux fichiers d'hôtes, les noms ne sont pas développés, même lorsque les hôtes d'extension sont en vigueur. Les noms courts et longs peuvent apparaître dans le même enregistrement d'hôte , par exemple. --host-record = laptop, laptop.thekelleys.org, 192.168.0.1,1234 :: 100

Ordinateur de poche
la source
La question porte la balise "internal-dns", où "host-record" s'applique aux external-dns aka dns faisant autorité.
Pro Backup
notez que si vous essayez de reprendre un enregistrement d'hôte existant sur Internet (par exemple le réécrire pour votre lan), alors si vous omettez l'adresse v6 et que l'hôte a une véritable adresse v6 sur Internet, dnsmasq renverra votre v4 remplacée l'adresse comme A, et le véritable enregistrement Internet v6 AAAA. spécifiez les deux si vous ne voulez pas que les hôtes capables de v6 ne "tombent" pas sur le véritable hôte Internet via la v6. Je réécrivais archive.ubuntu.com pour pointer vers mon miroir local, et ne spécifiais que l'adresse v4 sur mon réseau local - il se trouve qu'il a également une adresse v6 et je devais m'assurer de le configurer également dans dnsmasq.
se faufiler
3

Comment est votre fichier de configuration? dnsmasq ne résoudra que les sous-domaines si votre entrée commence par un point.

Exemple: address=/.subdomain.pc01.domain.com/192.168.1.2

Si vous l'avez de cette façon:

address=/subdomain.pc01.domain.com/192.168.1.2

il résoudra également asd.subdomain.pc01.domain.com:

$ host asd.subdomain.pc01.domain.com
asd.subdomain.pc01.domain.com has address 192.168.1.2
JorgeeFG
la source
Point intéressant, mais si vous lisez attentivement la question, ce n'est pas ce que le PO demandait.
jcharaoui
1

Ajoutez simplement une entrée pour ce domaine spécifique dans le fichier hosts sur le serveur exécutant DNSMasq

Mathias R. Jessen
la source
Ça ne marche pas; DNSMasq retourne la même IP fixe pour tous les sous-domaines du domaine entré
Michael Mrozek
1

Depuis la page de manuel de dnsmasq (pour --server, mais s'applique également à --address):

Les domaines plus spécifiques ont priorité sur les domaines moins spécifiques, donc: --server = / google.com / 1.2.3.4 --server = / www.google.com / 2.3.4.5 enverra des requêtes pour * .google.com à 1.2. 3.4, sauf * www.google.com, qui passera à 2.3.4.5

Donc, la seule solution que je peux voir est d'ajouter à la place des enregistrements individuels pour chacun des sous-domaines nécessaires. Évidemment, ce n'est pas l'idéal, mais c'est le meilleur que dnsmasq puisse fournir en ce moment (que je peux trouver).

tianon
la source