État de l'art dans la résolution de noms LAN

Bonjour à tous, un des trucs qui m’étonne sur mon nouveau Debian, c’est l’impossibilité sur une install « par défaut » de résoudre un nom de machine sur mon réseau local. Rien de bien compliqué, ici, une Freebox qui fait routeur/DNS, un NAS Synology sur Ethernet, et quelques terminaux (PC, consoles, tablettes), dont certains connectés en Ethernet et d’autres en Wi-Fi… Je n’ai jamais passé trop de temps à configurer tout ça, ça fonctionnait tout seul.

Mon laptop Debian (via Wi-Fi) sait parfaitement résoudre les noms internet, il repère ma Freebox comme DNS, et je peux surfer directement. Par contre, un ping diskstation (Synology) me retourne une erreur de résolution de nom.

Renseignement pris, tout ceci sur le LAN fonctionne probablement sur Netbios et/ou Wins, je lis un peu de partout que c’est un protocole IBM popularisé il y a longtemps par Microsoft, qu’on aimerait bien le voir mourir, et je me dis que si mon Debian ne l’installe pas par défaut, c’est sûrement qu’il préconise quelque chose de mieux, peut-être plus sécurisé, ou plus standard (pour ne pas dire moderne). Savez-vous me dire ce qu’il en est, SVP ?

(Ou bien, c’est possible que je fasse un truc de travers, ou que j’aie un souci de configuration, je ne saurais dire… bref, je m’attends quand même à ce que ce genre de fonctionnalité soit permise sur son propre LAN)

c’est normal. Ta box ne gère pas les noms locaux.
Si tu veux faire ça il te faut un DNS local, qui forwarde ensuite soit vers ta box (attention toutes les BOX françaises sont des DNS menteurs), ou vers dfes DNS externe à ton réseau.

Merci, tu peux développer ce point STP ?

Sur certaines requetes ils répondent 127.0.0.1, et donc tu ne peux atteindre l’url demandée.

en clair, une atteinte à la neutralité du réseau.
En plus de vendre les informations de tes requêtes.

Ah oui en effet, des blocages de résolution de nom appliqués sans qu’il y ait décision d’un juge ! :face_with_symbols_over_mouth:

Pour en revenir à ma question initiale : en effet la box ne fait pas DNS local, et je me retrouve avec ce choix :

  • Mettre mon propre DNS local : un peu galère, car à part la box, aucune machine n’est allumée 100% du temps.
  • Faire une liste des machines les plus utiles (box, NAS, PC principal) et mettre leur adresse dans le fichier hosts de tous les terminaux : un peu galère aussi, certains terminaux étant des Android, ou des consoles…
  • Changer mes habitudes et utiliser mDNS : c’est la solution que j’ai choisie… Je ne connaissais pas avant aujourd’hui, et je suis agréablement surpris de voir que la Freebox et le Synology sont déjà équipés en standard, de même que Debian !

Voici en quelques mots en quoi ça consiste : mDNS (Multicast DNS) est un mécanisme de gestion décentralisé des ressources sur un réseau local. Les équipements demandent un service à tout le monde (« hé les gars il y a une imprimante par ici ? » ou « hé les mecs c’est quoi votre nom et votre adresse IP ? » : Multicast = diffusion à tous), et les équipements sollicités répondent.

Tout ceci est fait dans le cadre d’un domaine fictif nommé .local, et j’étais donc hors des clous avec mon ping diskstation, il fallait demander ping diskstation.local, et là, bim :

$ ping diskstation.local
PING diskstation.local (192.168.1.250) 56(84) bytes of data.
64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=2.22 ms
64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=1.08 ms
64 bytes from 192.168.1.250: icmp_seq=3 ttl=64 time=3.77 ms

--- diskstation.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.082/2.354/3.766/1.100 ms

Hé oui, j’ai appris à cette occasion que Debian Trixie avait mDNS actif par défaut, grâce au paquet avahi-daemon. Pour la petite histoire, il parait même que le choix de mettre avahi par défaut dans Debian a été fait au détriment de systemd.resolved, qui proposait aussi mDNS, car il arrivait qu’avoir les deux en parallèle pose des problèmes (Fedora avait pris la même décision peu avant). Il faut éditer /etc/avahi/avahi-daemon.conf pour spécifier ce que avahi publie à propos de votre Debian (par défaut : rien du tout) : man avahi-daemon.conf(5).

Plus d’infos : Avahi - Debian Wiki

Du coup, avahi répond parfaitement à mon besoin, j’ai juste à ajouter .local après mes noms d’hôtes.

Edit : l’ordre dans lequel mDNS intervient dans la résolution de nom est donné à la ligne hosts du fichier /etc/nsswitch.conf :

hosts:          files myhostname mdns4_minimal [NOTFOUND=return] dns

Ici dans l’ordre :

  1. Files signifie qu’on regarde d’abord dans /etc/hosts
  2. myhostname c’est la machine elle-même
  3. mdns4_minimal représente mDNS
  4. dns en dernier recours on fait une bonne vieille résolution de nom par DNS

… si j’ai bien tout compris :thinking: