[WSL] Pas moyen de pinger une machine locale depuis WSL

Hello les gens. Sur mon nouveau PC Win 11 j’ai un souci petit mais chiant avec WSL : pas moyen de faire fonctionner le DNS local ! C’est-à-dire que:
Sur Windows je fais un ipconfig et mon DNS server c’est bien 192.168.1.1
J’arrive à pinger aussi bien Geekzone.fr que Toto.local … Great success!

Sur WSL/Ubuntu avec la config par défaut mon DNS server est 10.255.255.254
J’arrive à pinger Geekzone.fr mais pas Toto.local … D’oh!

Donc je:

  • modifie /etc/wsl.conf pour désactiver la géneration automatique de /etc/resolv.conf
  • Je flingue le fichier /etc/resolv.conf pour supprimer le link et je recrée le fichier derrière
  • Je mets dedans :
    nameserver 192.168.1.1
    search home
  • Je restarte le bazar et j’obtiens le résultat suivant:
    J’arrive à pinger Geekzone.fr mais TOUJOURS PAS Toto.local … D’oh!\

Que pourrais-je faire d’autre pour faire marcher le DNS local du routeur dans WSL?

Merci d’avance pour votre aide!

Ubuntu => DNS par systemd-resolved
Edite /etc/systemd/resolved.conf

[Resolve]
DNS=192.168.1.1

puis
service systemd-resolved restart

Edit: tu dois pouvoir aussi config avec un
resolvectl dns <interface> 192.168.1.1

Ça marche pô :pensive:

ping: Toto.local: Name or service not known

Si tu veux Toto.local , faut faire search local plutôt …

Si tu fais un dig toto.local, c’est quel serveur DNS qui répond ?

lupuss@NASA:~$ dig Toto.local

; <<>> DiG 9.18.30-0ubuntu0.24.04.1-Ubuntu <<>> Toto.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 26950
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;Toto.local. IN A

;; Query time: 0 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Thu Jan 30 10:47:35 CET 2025
;; MSG SIZE rcvd: 30

Après .local c’est le domaine utilisé pour mDNS, donc il possible que le problème vienne de là aussi…

Edit: dig le dit d’ailleur « WARNING: .local is reserved for Multicast DNS »

Ce que je ne comprends pas c’est que ça marchait très bien sur mon ancien PC en Windows 10 et WSL 2 :frowning_face:

J’ai remis search home au lieu de search local et redémarré WSL.
J’ai essayé un ping Toto.home et…
Name or service not known :sob:

La bonne nouvelle c’est qu’il interroge le bon serveur, le souci du .local c’est mDNS comme l’ont dit dig et Sarbian …

Question conne mais sait-on jamais : WSL est bien à jour sur ton poste ?

WSL version: 2.3.26.0
Kernel version: 5.15.167.4-1
WSLg version: 1.0.65
MSRDC version: 1.2.5620
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26100.2894

La version du Windows m’a fait loler vu que c’est un 11 :laughing:

Et on est bien sur un Bubuntu 24.04 à jour aussi

J’ai jamais réussi à trop comprendre le fonctionnement des lookups DNS avec WSL. J’ai des fois où j’arrive à contacter les machines sur mon réseau avec des pings (entre autres), et des fois ça veut pas. Je suspecte que c’est dû à l’IPv6 et mon pihole, mais j’ai jamais réussi à le diagnostiquer correctement. Tellement la flemme de sortir Wireshark et de me fader des analyses.

Alors oui c’est une très mauvaise pratique d’utiliser le .local dans une configuration manuelle. Si tu veux utiliser un DNS local, utilise un domaine ou sous-domaine sur lequel tu as réellement la main.

Pour ce qui est du paramètre « search » c’est pour définir le domaine par défaut, donc ce n’est pas pris en compte lors d’un ping (ou n’importe quel autre commande) si un FQDN est spécifié.
Que tu mette local, home ou pouet, ça ne changera rien si tu ping toto.local. Ça complètera juste si tu ping toto tout court.

1 « J'aime »

OK, mais là de toute façon j’ai remis home au lieu de local et ça ne marche toujours pas. Faudrait que je mette la main sur mon ancien PC pour voir ce que j’avais bricolé à l’époque pour que ça marche!

Tu avais peut être ajouter une valeur fixe dans le fichier host ?

C’est possible, faudra pas que j’oublie de regarder la prochaine fois que j’aurai accès à la machine.

Ça y est j’ai du nouveau!
En repassant sur mon ancienne machine en Windows 10 et en faisant un bon vieux ipconfig /all des familles, j’ai remarqué qu’il existait une interface réseau (est-ce la bonne traduction pour network adapter?) pour WSL. Sur mon PC actuel en Windows 11, elle existe aussi mais s’appelle autrement ( vEthernet (WSL (Hyper-V firewall)) ).

En utilisant l’adresse IP de cette interface dans le fichier /etc/resolv.conf, j’arrive à faire marcher mon DNS local dans ma distro! Great success!

Edit : oui alors success de rien du tout. Ça marche pour une machine mais pas pour les autres. Et ça fait pareil dans Windows en fait. Donc je dois trouver:

  1. Pourquoi le DNS local marche pas (probablement la faute à mon routeur)
  2. Pourquoi ça marche pour une machine uniquement (j’ai dû faire une config spéciale et j’ai oublié ce que c’était…)

Peut être une configuration du fichier hosts ? ( C:\Windows\System32\drivers\etc )

Je viens de vérifier et il est complètement standard.

T’as juste docker installé non?

Je l’avais installé sur mon ancien PC mais il n’est pas du tout installé sur celui-ci, ni dans Win ni dans WSL je pense.