[dnsmasq] Problème de résolution via server= dans la v2.87-1

Applications, problèmes de configuration réseau
Répondre
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

[dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par RoyalPanda »

Bonjour à tous,

J'ai une configuration dnsmasq qui me permet de faire une résolution distincte par domaine :

Code : Tout sélectionner

╰─$ cat /etc/dnsmasq.conf | grep server=

#server=/localnet/192.168.0.1
server=/mondom.local/10.1.241.122
server=80.67.169.40
server=80.67.169.12
#server=192.168.1.254
#server=/3.168.192.in-addr.arpa/10.1.2.3
# server=10.1.2.3@eth1
# server=10.1.2.3@192.168.1.1#55
Or, depuis l'update vers le paquet dnsmasq 2.87-1, ça pas marche.
J'ai bien une trace qui me dit que ça devrait, mais non :

Code : Tout sélectionner

╰─$ journalctl -eu dnsmasq

oct. 05 08:54:51 archisecu systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
oct. 05 08:54:51 archisecu dnsmasq[734]: dnsmasq: vérification de syntaxe OK.
oct. 05 08:54:51 archisecu systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
oct. 05 08:54:51 archisecu dnsmasq[738]: demarré, version 2.87 (taille de cache 150)
oct. 05 08:54:51 archisecu dnsmasq[738]: options à la compilation : IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCP>
oct. 05 08:54:51 archisecu dnsmasq[738]: Support DBus autorisé : connecté au bus système
oct. 05 08:54:51 archisecu dnsmasq[738]: using nameserver 10.1.241.122#53 for domaine mondom.local
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 80.67.169.40#53
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 80.67.169.12#53
oct. 05 08:54:51 archisecu dnsmasq[738]: Lecture de /etc/resolv.conf
oct. 05 08:54:51 archisecu dnsmasq[738]: using nameserver 10.1.241.122#53 for domaine mondom.local
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 80.67.169.40#53
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 80.67.169.12#53
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 10.1.241.122#53
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 10.1.241.123#53
oct. 05 08:54:51 archisecu dnsmasq[738]: utilise le serveur de nom 172.16.254.240#53
oct. 05 08:54:51 archisecu dnsmasq[738]: lecture /etc/hosts - 4 adresses
oct. 05 08:55:25 archisecu dnsmasq[738]: Lecture de /etc/resolv.conf
oct. 05 08:55:25 archisecu dnsmasq[738]: ignore le serveur de nom 127.0.0.1 - interface locale
oct. 05 08:55:25 archisecu dnsmasq[738]: utilise le serveur de nom 80.67.169.40#53

╰─$ cat /etc/resolv.conf

# Generated by NetworkManager
search mondom.local
nameserver 127.0.0.1
nameserver 80.67.169.40

╰─$ drill test-machine.mondom.local @127.0.0.1

;; ->>HEADER<<- opcode: QUERY, rcode: NXDOMAIN, id: 50796
;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; test-machine.mondom.local.	IN	A

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Wed Oct  5 11:25:51 2022
;; MSG SIZE  rcvd: 42
Par contre après un rollback vers la 2.86-2 :

Code : Tout sélectionner

╰─$ sudo pacman -U /var/cache/pacman/pkg/dnsmasq-2.86-2-x86_64.pkg.tar.zst

chargement des paquets…
avertissement : retourne à la version antérieure du paquet dnsmasq (2.87-1 => 2.86-2)
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (1) dnsmasq-2.86-2

Taille totale installée :       0,80 MiB
Taille de mise à jour nette :  -0,02 MiB

:: Procéder à l’installation ? [O/n] 
(1/1) vérification des clés dans le trousseau                          [#######################################] 100%
(1/1) vérification de l’intégrité des paquets                          [#######################################] 100%
(1/1) chargement des fichiers des paquets                              [#######################################] 100%
(1/1) analyse des conflits entre fichiers                              [#######################################] 100%
(1/1) vérification de l’espace disque disponible                       [#######################################] 100%
:: Traitement des changements du paquet…
(1/1) réinstallation d’une ancienne version dnsmasq                    [#######################################] 100%
avertissement : /etc/dnsmasq.conf installé sous le nom /etc/dnsmasq.conf.pacnew
:: Exécution des crochets (« hooks ») de post-transaction…
(1/4) Creating system user accounts...
(2/4) Reloading system manager configuration...
(3/4) Arming ConditionNeedsUpdate...
(4/4) Reloading system bus configuration...

╭─isaac@archisecu / 
╰─$ sudo systemctl restart dnsmasq

╭─isaac@archisecu / 
╰─$ drill test-machine.mondom.local @127.0.0.1

;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 11589
;; flags: qr aa rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; test-machine.mondom.local.	IN	A

;; ANSWER SECTION:
test-machine.mondom.local.	3600	IN	A	10.7.5.82

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 22 msec
;; SERVER: 127.0.0.1
;; WHEN: Wed Oct  5 11:31:38 2022
;; MSG SIZE  rcvd: 58
Quelqu'un est dans le même cas ?
Y a un truc à faire de particulier pour cette nouvelle version ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par benjarobin »

Bonjour,
Si tu utilises NetworkManager, tu ne dois absolument pas faire ainsi. C'est étrange que tu n'ai pas de problème avant.
Le service dnsmasq ne doit pas être activé, la configuration /etc/dnsmasq.conf ne devrait pas être modifié.
Tu dois bien lire le Wiki, et en gros tu dois avoir ceci en configuration :

Code : Tout sélectionner

grep -Pv "^$|^#" /etc/dnsmasq.conf /etc/dnsmasq-conf.conf /etc/dnsmasq-resolv.conf /etc/resolv.conf /etc/resolvconf.conf /etc/NetworkManager/conf.d/*.conf /etc/NetworkManager/dnsmasq.d/*.conf
/etc/resolv.conf:nameserver ::1
/etc/resolv.conf:nameserver 127.0.0.1
/etc/resolv.conf:options edns0 trust-ad
/etc/resolvconf.conf:resolv_conf=/etc/resolv.conf
/etc/resolvconf.conf:name_servers="::1 127.0.0.1"
/etc/resolvconf.conf:dnsmasq_conf=/etc/dnsmasq-conf.conf
/etc/resolvconf.conf:dnsmasq_resolv=/etc/dnsmasq-resolv.conf
/etc/NetworkManager/conf.d/20-connectivity.conf:[connectivity]
/etc/NetworkManager/conf.d/20-connectivity.conf:uri=
/etc/NetworkManager/conf.d/20-connectivity.conf:interval=0
/etc/NetworkManager/conf.d/dns.conf:[main]
/etc/NetworkManager/conf.d/dns.conf:dns=dnsmasq
/etc/NetworkManager/conf.d/rc-manager.conf:[main]
/etc/NetworkManager/conf.d/rc-manager.conf:rc-manager=resolvconf
/etc/NetworkManager/dnsmasq.d/cache.conf:cache-size=1000
/etc/NetworkManager/dnsmasq.d/ipv6-listen.conf:listen-address=::1
La commande ci-dessous devrait te sortir la même chose, peux tu donner la sortie de ce que tu as ?

Dans ton cas il faudra rajouter en plus le fichier : /etc/NetworkManager/dnsmasq.d/custom-domain.conf

Code : Tout sélectionner

server=/mondom.local/10.1.241.122
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par RoyalPanda »

Hmm, je n'utilise pas le plugin dnsmasq de NetworkManager.
Et dans le wiki je ne vois rien qui m'incite à l'utiliser plutôt que dnsmasq directement : https://wiki.archlinux.org/title/dnsmasq

Ça me semble plus simple et surtout ça me permet de conditionner l'utilisation de dnsmasq à certaines connexions.

Donc, j'ai envie de dire que ça n'a pas de rapport avec la choucroute :D.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par benjarobin »

Au contraire avoir dnsmasq via NetworkManager permet bien plus de configuration, d'avoir un DNS par connexion, le tout configuré via NetworkManager. Par exemple pour un VPN d'utiliser dynamiquement le DNS du VPN que pour certain domain.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par RoyalPanda »

Bon, je n'avais pas blacklisté le paquet, donc il est revenu, et donc ça re pas-marche.
Je vais tenter l'option NetworkManager, ça permettra de faire en plus le partage de connexion automatique via le menu réseau.
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par RoyalPanda »

Avec l'implémentation networkmanager, c'est pareil.

Par contre en changeant l'instruction

Code : Tout sélectionner

server=
pour

Code : Tout sélectionner

address=
, ça marche alors que d'après la doc ça ne devrait pas.
Un bug en cours sur le sujet dans la mailing-list : https://lists.thekelleys.org.uk/piperma ... 16623.html
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par RoyalPanda »

Hé ben non, ça pas marche. Address fait bien ce qu'il est censé faire, donc tout rediriger vers une seule IP...
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1[contourné]

Message par RoyalPanda »

Suite de mes aventures (et fin, plus ou moins).

Je suis bien passé en version networkamanaged de dnsmasq-2.87.
Et ça marche... si je ne mets pas une option de recherche de domaine (dns-search) dans ma connexion.
En effet, vu que les noms sont identiques, dès que je mets l'option dns-search en plus de mes options de server, cette première surcharge la résolution DNS (comportement plus ou moins voulu a priori).
Je ne vois pas bien comment faire ça proprement, donc je contourne en lançant une commande DBUS :

Code : Tout sélectionner

 $ sudo dbus-send --system --dest=org.freedesktop.NetworkManager.dnsmasq /uk/org/thekelleys/dnsmasq org.freedesktop.NetworkManager.dnsmasq.SetDomainServers array:string:"/mon.dom/10.1.241.122","/test.local/10.1.241.123","192.168.1.254"
C'est un peu pénible, mais ça marche, sachant que de toute façon c'est un cas de télétravail sur lequel je lance un script manuellement de toute façon.
On va dire que c'est donc contourné. Mais si quelqu'un a une solution propre, je suis preneur. Car je sais que ce genre de truc va me revenir dans la courge à plus ou moins long terme.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par benjarobin »

Ce que je fais pour le télétravail et le VPN :
- Avoir dnsmasq géré via network manager. Attention de bien tout configuré (voir mes messages précédents) et arrêter les services de dnsmasq
- Configurer la connexion VPN en automatique pour récupérer une IP en DHCP et aussi récupéré la configuration du DNS. Mais il est possible de configurer network manager pour ne récupérer que l'IP, et l'IP de DNS la configurer en dur.
- Dans le champ "Rechercher les domaines" de la connexion VPN, saisir les différents nom de domaines qui devront utiliser le DNS du VPN (que cela soit configuré auto ou manuellement)
- Ne surtout pas spécifier "server=" dans les fichiers de configuration de dnsmasq
- Dans le champ "Rechercher les domaines" de la connexion Ethernet ou Wifi (qui ne fournit Internet), ne rien mettre

Avec une telle configuration, toutes les requêtes par défaut passe par le DNS de ta connexion Internet, et les nom de domaines listés dans la connexion VPN passe par le DNS du VPN.

Après si tu veux plus de flexibilité, et avoir un serveur DNS par nom de domaine, cela devrait fonctionner avec l'utilisation de "server=" (en théorie). Mais quand tu est déconnecté du VPN, cela essaye quand même de joindre les DNS spécifiés.

Mais je n'ai peut être pas compris quelque chose dans ton besoin.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [dnsmasq] Problème de résolution via server= dans la v2.87-1

Message par RoyalPanda »

benjarobin a écrit : lun. 17 oct. 2022, 15:55 Mais je n'ai peut être pas compris quelque chose dans ton besoin.
Oui, il y a un truc que je n'ai pas dit : Je ne peux pas géré mon VPN dans mon Archlinux.
Grâce à la politique de sécurisé de mon entité, le VPN ne peut se monter que dans un Windows, donc j'ai une machine virtuelle qui me sert de client VPN (c'est un peu lourd :p).
Donc l'intégration globale est plutôt difficile.

Mais merci quand même @benjarobin
Répondre