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.
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
Dans le système d'exploitation Linux, il existe de nombreuses façons d'afficher le contenu du cache DNS.
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
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
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
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
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
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
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.
Vous pouvez utiliser la commande systemd-resolved
pour actualiser le cache DNS du service résolu par systemd.
sudo systemd-resolve --flush-caches
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
Vous pouvez également supprimer manuellement le fichier de cache DNS pour vider le cache DNS.
sudo rm -rf /var/cache/bind/named_dump.db
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.
# 调整 systemd-resolved 的 DNS 缓存大小和超时时间 sudo systemctl edit systemd-resolved.service # 查看 systemd-resolved 的配置 cat /etc/systemd/resolved.conf
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.
# 刷新 systemd-resolved 服务的 DNS 缓存 sudo systemd-resolve --flush-caches
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.
# 重启 nscd 服务 sudo systemctl restart nscd # 清除 DNS 缓存文件 sudo rm -rf /var/cache/bind/named_dump.db
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 dig
、nscd
和 systemd-resolved
,
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!