Comment afficher et actualiser le cache DNS sous Linux

WBOY
Libérer: 2024-03-07 08:43:14
avant
1137 Les gens l'ont consulté

DNS (Domain Name System) est le système utilisé sur Internet pour convertir les noms de domaine en adresses IP correspondantes.

Dans les systèmes Linux, la mise en cache DNS est un mécanisme qui stocke localement la relation de mappage entre les noms de domaine et les adresses IP, ce qui peut augmenter la vitesse de résolution des noms de domaine et réduire la charge sur le serveur DNS. La mise en cache DNS permet au système de récupérer rapidement l'adresse IP lors d'un accès ultérieur au même nom de domaine sans avoir à émettre une requête de requête au serveur DNS à chaque fois, améliorant ainsi les performances et l'efficacité du réseau.

Cet article expliquera avec vous comment afficher et actualiser le cache DNS sous Linux, ainsi que les détails associés et des exemples de code.

Importance de la mise en cache DNS

Dans les systèmes Linux, la mise en cache DNS joue un rôle clé. Son existence peut non seulement réduire efficacement le temps de résolution DNS et accélérer l'accès au réseau, mais également réduire efficacement la charge sur le serveur DNS.

Lorsque le système accède à un nom de domaine spécifique, si le résultat de la résolution du nom de domaine est déjà stocké dans le cache local, le système peut directement obtenir le résultat du cache sans envoyer à nouveau une requête de requête au serveur DNS. Ce mécanisme permet d'économiser efficacement du temps et de la bande passante du réseau. En utilisant la mise en cache locale, le système peut améliorer l'efficacité de l'accès, en particulier lors d'un accès fréquent au même nom de domaine. Cette méthode réduit non seulement la charge sur le serveur DNS, mais réduit également la consommation du trafic réseau, optimisant ainsi les performances globales du réseau. Par conséquent, le mécanisme de mise en cache joue un rôle important dans l'amélioration de la vitesse de réponse du système et la réduction de la consommation de ressources

Comment afficher et actualiser le cache DNS sous Linux

Comment vérifier le cache DNS

Dans le système d'exploitation Linux, il existe de nombreuses façons d'afficher le contenu du cache DNS.

a. Utilisez la commande dig

La commande

dig est un outil DNS puissant qui peut être utilisé pour interroger des informations DNS, y compris les résultats de résolution de noms de domaine et le contenu du cache DNS.

dig example.com
Copier après la connexion

Résultat de sortie :

; <<>> DiG 9.16.1-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62233
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com. INA

;; ANSWER SECTION:
example.com.604800INA 93.184.216.34

;; Query time: 43 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sat Feb 19 12:00:00 UTC 2024
;; MSG SIZErcvd: 57
Copier après la connexion

b. Afficher le cache nscd

nscd (Name Service Cache Daemon) est un processus démon responsable de la gestion du cache du service de noms du système.

Vous pouvez utiliser la commande nscd pour afficher le contenu du cache DNS.

nscd -g
Copier après la connexion

Résultat de sortie :

hosts cache:

yescache is enabled
yescache is persistent
yescache is shared
211suggested size
216320total data pool size
1408used data pool size
7200seconds time to live for positive entries
20seconds time to live for negative entries
20cache hits on positive entries
0cache hits on negative entries
3cache misses on positive entries
0cache misses on negative entries
100 % cache hit rate
8current number of cached values
9maximum number of cached values
0maximum chain length searched
0number of delays on rdlock
0number of delays on wrlock
0memory allocations failed
Copier après la connexion

c. Afficher le cache résolu par le système

systemd-resolved est un service système chargé de résoudre les requêtes DNS. Il maintient également un cache DNS.

Vous pouvez utiliser la commande systemd-resolve pour afficher le contenu du cache.

systemd-resolve --statistics
Copier après la connexion

Résultat de sortie :

DNSSEC supported by current servers: no

Transactions 
Current Transactions: 0
Total Transactions: 2422

Cache
Current Cache Size: 15
Cache Hits: 2312
Cache Misses: 110
Copier après la connexion

Comment actualiser le cache DNS

Parfois, vous devrez peut-être actualiser manuellement le cache DNS pour vous assurer que le système utilise les derniers résultats de résolution DNS.

a. Utilisez systemd-resolved

Vous pouvez utiliser la commande systemd-resolved pour actualiser le cache DNS du service résolu par systemd.

sudo systemd-resolve --flush-caches
Copier après la connexion

b. Redémarrez le service nscd

Si le service nscd est en cours d'exécution sur le système, vous pouvez essayer de rafraîchir le cache DNS en redémarrant le service.

sudo systemctl restart nscd
Copier après la connexion

c. Effacer les fichiers de cache DNS

Vous pouvez également supprimer manuellement le fichier de cache DNS pour vider le cache DNS.

sudo rm -rf /var/cache/bind/named_dump.db
Copier après la connexion

Utilisation avancée et précautions

a. Utilisez la mise en cache DNS pour optimiser les performances

La mise en cache DNS peut augmenter considérablement la vitesse de résolution des noms de domaine et réduire la pression des requêtes sur le serveur DNS.

En configurant correctement le cache DNS, les performances du système et la vitesse de connexion réseau peuvent être encore optimisées.

La taille et le délai d'expiration du cache DNS peuvent être ajustés pour répondre à vos besoins.

Exemple de code :
# 调整 systemd-resolved 的 DNS 缓存大小和超时时间
sudo systemctl edit systemd-resolved.service

# 查看 systemd-resolved 的配置
cat /etc/systemd/resolved.conf
Copier après la connexion

b. Faites attention à la cohérence du cache DNS

Lors de l'actualisation du cache DNS, vous devez veiller à ce que tous les caches DNS pertinents soient actualisés afin d'éviter toute incohérence du cache DNS.

Cela peut empêcher l'application d'accéder à un nom de domaine spécifique ou de se connecter à une mauvaise adresse IP.

Exemple de code :
# 刷新 systemd-resolved 服务的 DNS 缓存
sudo systemd-resolve --flush-caches
Copier après la connexion

c. Évitez d'actualiser fréquemment le cache DNS

Bien que l'actualisation du cache DNS puisse résoudre certains problèmes liés au DNS, l'actualisation trop fréquente du cache DNS peut affecter les performances du système et la vitesse de connexion réseau.

Il est recommandé de vider le cache DNS uniquement lorsque cela est nécessaire et de s'assurer de comprendre l'impact de l'opération de vidage avant de vider.

Exemple de code :
# 重启 nscd 服务
sudo systemctl restart nscd

# 清除 DNS 缓存文件
sudo rm -rf /var/cache/bind/named_dump.db
Copier après la connexion

Résumé

Dans les systèmes Linux, l'affichage et l'actualisation du cache DNS sont une étape importante dans la gestion des connexions réseau et l'optimisation des performances du système.

En utilisant des outils de ligne de commande tels que dignscd 和 systemd-resolved,

et 🎜, vous pouvez facilement afficher les informations du cache DNS du système actuel et prendre les mesures nécessaires pour actualiser le cache afin de garantir la disponibilité des dernières données. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:mryunwei.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal