Le serveur DNS (Domain Name System) a été créé afin de traduire les noms de domaine en adresses IP et vice versa afin de permettre l'envoi de paquets de données vers les ordinateurs destinataires. l'équipement est chargé d'envoyer une requête au serveur DNS enregistré, demandant l'adresse IP qui est associée au nom de domaine recherché, cette recherche prend du temps et si elle est effectuée dans chaque processus d'accès, le serveur DNS peut en traiter un grand nombre de requêtes qui peuvent éventuellement le faire s'effondrer et son résultat est un refus d'accès.
Pour éviter cela, il y a le cache DNS qui se charge de sauvegarder localement l'adresse IP dudit domaine afin de sauter le processus de recherche lors du prochain accès, mais à la place il est redirigé en prenant cette valeur locale et donc on libère la charge sur le serveur et en même temps, nous y accédons beaucoup plus rapidement. Mais le problème est qu'avoir trop de cache DNS hébergé peut affecter les propres performances du navigateur, c'est pourquoi sa sortie est recommandée, nous allons voir comment faire cette tâche sous Linux.
1. Effacer le cache DNS à l'aide de systemd-resolve sous Linux
Ubuntu et d'autres distributions basées sur Debian utilisent la commande systemd-resolve, cette commande est un démon DNS intégré à systemd et est un service système qui fournit une résolution de nom de réseau aux applications locales.
Cette commande implémente un résolveur de stub DNS/DNSEC de cache et de validation, ainsi qu'un résolveur LLMNR et MulticastDNS. Les applications locales peuvent envoyer des demandes de résolution de noms de réseau via trois interfaces :
- L'API native complète du système résolu est exposée sur le bus.
- L'API glibc getaddrinfo qui est définie par la RFC3493 et ses fonctions de résolution associées, y compris gethostbyname.
- Un écouteur DNS de stub local est proposé à l'adresse IP 127.0.0.53 sur l'interface de bouclage local, à partir de là, les programmes qui génèrent des requêtes DNS directement, en contournant les API locales, peuvent utiliser ce stub, pour se connecter à systemd-resolved
Étape 1
Pour utiliser cette commande, nous allons d'abord voir les statistiques du cache DNS sur le système :
sudo systemd-resolve -statistiques
AGRANDIR
Étape 2
Maintenant, pour effacer le cache DNS, nous exécutons :
sudo systemd-resolve --flush-cachres
AGRANDIR
Étape 3
Comme nous pouvons le voir, lorsque nous réexécutons les statistiques, le cache DNS a été vidé. C'est la méthode la plus courante. Les autres options à utiliser pour différentes distributions sont :
En cas d'utilisation de RedHat ou ArchLinux
sudo systemctl redémarrer nscd
2. Effacer le cache DNS à l'aide de dnsmasq ou nommé sous Linux
Ensuite, nous verrons deux autres options pour pouvoir vider le cache
Vider le cache DNS avec DnsmasqDnsmasq est fréquemment utilisé dans les serveurs ou routeurs DNS locaux, pour effacer le cache DNS avec cette commande, nous devons exécuter :
sudo systemctl redémarrer dnsmasq
Vider le cache DNS avec BINDCette commande BIND est utilisée pour les serveurs DNS spécialement conçus pour des tâches spécifiques et pour effacer le cache DNS il suffit d'exécuter :
sudo systemctl redémarrage nommé
Aussi simple que cela, nous avons vidé le cache DNS de Linux, améliorant ainsi les performances de nos équipements via le terminal.