Debian identifier réseau et résolution

Debian identifier réseau et résolution

Notes › _DIFFUSION

Pour déterminer quel type de réseau est installé sur Debian Trixie, vous pouvez utiliser plusieurs commandes et vérifier certains fichiers de configuration.

Identifier les interfaces réseau

La première étape consiste à lister les interfaces réseau disponibles :

1
ip link show

Ou avec l’ancienne commande (si net-tools est installé) :

1
ifconfig -a

Les noms d’interfaces vous indiquent le type de réseau :

Vérifier l’état et la configuration actuelle

Pour voir si une interface est active et configurée :

1
ip addr show

Cela affiche les adresses IP attribuées et l’état (UP/DOWN) de chaque interface.[debian]

Pour connaître la méthode de configuration (DHCP ou statique), examinez le fichier :

1
cat /etc/network/interfaces

Ou, si vous utilisez NetworkManager (cas courant sur les bureaux GNOME/KDE) :

1
2
nmcli device status
nmcli connection show

NetworkManager gère automatiquement le réseau et peut être vérifié avec :

1
systemctl status NetworkManager

Déterminer le gestionnaire de réseau utilisé

Debian Trixie peut utiliser plusieurs systèmes :

Gestionnaire Commande de vérification
NetworkManager systemctl status NetworkManager
systemd-networkd systemctl status systemd-networkd
ifupdown (classique) présence de /etc/network/interfaces
Netplan ls /etc/netplan/

[debian]

Résumé rapide

  • Exécutez ip link ou ip addr pour identifier les interfaces (en = filaire, wl = Wi-Fi).
  • Consultez /etc/network/interfaces ou utilisez nmcli selon votre gestionnaire.
  • Vérifiez quel service réseau est actif (NetworkManager, systemd-networkd, etc.).

Ces étapes vous permettront de déterminer précisément le type et la configuration du réseau sur votre Debian Trixie.


Sur Debian 13 Trixie, il faut distinguer le type de réseau matériel — Ethernet, Wi‑Fi — du gestionnaire qui configure le réseau. Pour déterminer lequel est utilisé, exécutez :

1
2
systemctl --type=service --state=running | grep -E \
'NetworkManager|systemd-networkd|networking|connman|wicd'

Le service actif indique généralement le gestionnaire :

  • NetworkManager.service → NetworkManager
  • systemd-networkd.service → systemd-networkd
  • networking.service → ifupdown
  • aucun de ceux-ci → configuration éventuellement manuelle ou autre outil

Vérifiez ensuite les fichiers de configuration :

1
2
3
4
ls -l /etc/network/interfaces /etc/network/interfaces.d/ 2>/dev/null
ls -l /etc/systemd/network/ 2>/dev/null
ls -l /etc/NetworkManager/system-connections/ 2>/dev/null
ls -l /etc/netplan/ 2>/dev/null

Interprétation :

  • /etc/network/interfaces contient des lignes auto, allow-hotplug ou iface → ifupdown
  • /etc/systemd/network/*.network ou *.netdev → systemd-networkd
  • /etc/NetworkManager/system-connections/*.nmconnection → NetworkManager
  • /etc/netplan/*.yaml → Netplan, qui transmet ensuite la configuration à NetworkManager ou à systemd-networkd

Pour savoir quel outil gère chaque interface :

1
ip -br link

Avec NetworkManager :

1
nmcli device status

Exemple :

1
2
3
DEVICE  TYPE      STATE      CONNECTION
enp1s0  ethernet  connected  Wired connection 1
wlp2s0  wifi      connected  MonWiFi

Avec systemd-networkd :

1
networkctl

Pour obtenir une vue complète de l’état actuel :

1
2
3
ip -br addr
ip route
resolvectl status

La vérification la plus directe est donc :

1
2
3
systemctl is-active NetworkManager
systemctl is-active systemd-networkd
systemctl is-active networking

Le service qui renvoie active est normalement celui qui configure le réseau. Évitez toutefois de modifier ou d’activer un autre gestionnaire sans désactiver correctement le précédent : NetworkManager, ifupdown et systemd-networkd peuvent entrer en conflit. Debian propose plusieurs méthodes de configuration réseau, sans gestionnaire unique obligatoire.


Résolution DNS sous Debian : les modèles

Le principe de base

Toute application passe par le résolveur de la glibc (getaddrinfo), qui consulte :

  1. /etc/nsswitch.conf, ligne hosts:, qui définit l’ordre des sources (files = /etc/hosts, dns, mdns, resolve…)
  2. /etc/resolv.conf, qui liste les serveurs DNS (nameserver), le domaine de recherche (search) et des options

Le vrai sujet est donc : qui écrit /etc/resolv.conf et qui fait le cache ? Il y a quatre modèles courants.

1. Statique (manuel)

Le plus simple, souvent utilisé sur un serveur avec IP fixe.

1
2
3
4
5
# /etc/resolv.conf
nameserver 9.9.9.9
nameserver 1.1.1.1
search example.lan
options timeout:2 attempts:2

Pour éviter qu’un outil l’écrase : chattr +i /etc/resolv.conf (à utiliser avec prudence).

2. Géré par ifupdown / DHCP (resolvconf ou openresolv)

Sur une installation minimale, le client DHCP ou /etc/network/interfaces fournit les DNS.

1
2
3
4
5
6
# /etc/network/interfaces
iface eth0 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    dns-nameservers 9.9.9.9 1.1.1.1
    dns-search example.lan

Ces directives dns-* ne sont prises en compte que si le paquet resolvconf (ou openresolv) est installé. Il agrège les DNS de chaque interface et génère /etc/resolv.conf.

3. NetworkManager (postes de travail)

Par défaut sur Debian avec environnement de bureau. NetworkManager écrit lui-même /etc/resolv.conf.

1
2
3
nmcli con mod "Ma connexion" ipv4.dns "9.9.9.9 1.1.1.1"
nmcli con mod "Ma connexion" ipv4.ignore-auto-dns yes
nmcli con up "Ma connexion"

Il peut aussi déléguer à systemd-resolved ou dnsmasq via /etc/NetworkManager/conf.d/ (dns=systemd-resolved ou dns=dnsmasq).

4. systemd-resolved (stub local + cache)

Depuis Debian 12, il est dans un paquet séparé et non installé par défaut.

1
2
3
apt install systemd-resolved
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

resolv.conf pointe alors sur 127.0.0.53, un stub local qui met en cache, gère le DNS par interface, DNSSEC, DNS over TLS et le split DNS.

Configuration dans /etc/systemd/resolved.conf (ou un drop-in dans /etc/systemd/resolved.conf.d/) :

1
2
3
4
5
6
[Resolve]
DNS=9.9.9.9 1.1.1.1
FallbackDNS=8.8.8.8
Domains=example.lan
DNSOverTLS=opportunistic
DNSSEC=allow-downgrade

Puis systemctl restart systemd-resolved. Pour vérifier : resolvectl status et resolvectl query debian.org.

Pour ajouter resolved à nsswitch.conf, il suffit d’installer libnss-resolve (souvent tiré automatiquement).

Variante : résolveur cache local dédié

Pour un vrai cache ou un contrôle fin, on installe un résolveur local (unbound, dnsmasq, bind9) écoutant sur 127.0.0.1, et on met nameserver 127.0.0.1 dans resolv.conf.

1
2
3
4
5
6
7
8
# /etc/unbound/unbound.conf.d/local.conf
server:
    interface: 127.0.0.1
    access-control: 127.0.0.0/8 allow
forward-zone:
    name: "."
    forward-tls-upstream: yes
    forward-addr: 9.9.9.9@853#dns.quad9.net

Comment savoir quel modèle est actif chez vous

1
2
3
4
5
ls -l /etc/resolv.conf          # lien symbolique ? vers quoi ?
head /etc/resolv.conf           # commentaire "Generated by ..."
systemctl is-active systemd-resolved NetworkManager
getent hosts debian.org         # test via la glibc, comme les applis
dig debian.org                  # test direct du serveur DNS (paquet dnsutils)

Résolution OVH yannig.net (vps-1780de45)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
ls -l /etc/resolv.conf          # lien symbolique ? vers quoi ?
head /etc/resolv.conf           # commentaire "Generated by ..."
systemctl is-active systemd-resolved NetworkManager
getent hosts debian.org         # test via la glibc, comme les applis
dig debian.org                  # test direct du serveur DNS (paquet dnsutils)


lrwxrwxrwx 1 root root 39 13 avril 16:34 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
active
inactive
2a04:4e42:200::644 debian.org
2a04:4e42:400::644 debian.org
2a04:4e42:600::644 debian.org
2a04:4e42::644  debian.org

; <<>> DiG 9.20.29-1~deb13u1-Debian <<>> debian.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30150
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;debian.org.			IN	A

;; ANSWER SECTION:
debian.org.		300	IN	A	151.101.2.132
debian.org.		300	IN	A	151.101.194.132
debian.org.		300	IN	A	151.101.66.132
debian.org.		300	IN	A	151.101.130.132

;; Query time: 16 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Sep 28 16:19:12 CEST 2026
;; MSG SIZE  rcvd: 103

vous êtes sur le modèle 4 (systemd-resolved)

Résultats

  • /etc/resolv.conf est un lien symbolique vers stub-resolv.conf : c’est bien systemd-resolved qui gère la résolution.
  • systemctl is-active : systemd-resolved est active, NetworkManager est inactive. Donc pas de NetworkManager, c’est probablement systemd-networkd ou ifupdown qui gère le réseau (ou une config faite à la main).
  • dig interroge 127.0.0.53 : le stub local répond, avec du cache (le TTL affiché, 147, est celui restant au cache).
  • Vous êtes sur Debian 13 (trixie), d’après la version de dig (deb13u1).

Remarque : getent hosts debian.org ne retourne que des adresses IPv6. C’est normal, getent hosts préfère IPv6 quand elle est disponible. Pour les deux familles : getent ahosts debian.org.

Voir la configuration réelle

1
resolvectl status

Cette commande montre les serveurs DNS par interface (section Link), les domaines de recherche, l’état de DNSSEC et de DNS over TLS. Sur ce modèle, les DNS ne viennent pas forcément de resolved.conf : ils sont souvent fournis par le DHCP ou la config réseau de l’interface, et resolved.conf ne sert que de valeur globale ou de repli.

Pour tester et voir d’où vient la réponse (cache ou réseau) :

1
2
resolvectl query debian.org
resolvectl statistics

Comment configurer, selon ce que vous voulez

Imposer des DNS globaux

1
2
3
4
5
6
7
8
9
mkdir -p /etc/systemd/resolved.conf.d
cat > /etc/systemd/resolved.conf.d/dns.conf <<'EOF'
[Resolve]
DNS=9.9.9.9 149.112.112.112 2620:fe::fe
FallbackDNS=1.1.1.1
DNSOverTLS=opportunistic
DNSSEC=allow-downgrade
EOF
systemctl restart systemd-resolved

Attention : si l’interface reçoit déjà des DNS par DHCP, ceux-ci restent utilisés en plus. Pour que vos DNS globaux soient prioritaires, ajoutez Domains=~. dans le même fichier (le ~. signifie « route par défaut pour toutes les requêtes »), ou fixez les DNS au niveau de l’interface.

Fixer les DNS d’une interface

Selon votre gestionnaire réseau :

  • systemd-networkd (/etc/systemd/network/*.network) :

    1
    
      [Network]DNS=9.9.9.9Domains=example.lan
    

    puis networkctl reload

  • ifupdown (/etc/network/interfaces) : les lignes dns-nameservers fonctionnent avec resolvconf, pas toujours avec resolved ; préférez systemd-networkd ou resolvectl dns eth0 9.9.9.9 (temporaire, perdu au redémarrage).

Pour savoir lequel gère votre interface : networkctl (colonne SETUP : configured = networkd) ou cat /etc/network/interfaces.

Vider le cache

1
resolvectl flush-caches