Où trouver les paramètres DNS sur MacOS

Salut

Récemment, j'ai été confronté à la tâche de déboguer le processus de résolution des noms DNS dans MacOS. Je n'ai trouvé aucun document à part entière sur la façon exacte dont cela se produit; j'ai dû collecter des informations moi-même.

Voici ce que nous avons réussi à découvrir.

Pour les tâches liées au DNS dans macOS, un démon nommé mDNSResponder est responsable. Des aventures se sont produites dans sa vie - il a été remplacé par le démon de la découverte (Yosemite), qui s'est cassé beaucoup et a créé beaucoup de problèmes. Un an plus tard, Apple a repris ses esprits et a rendu (El Capitan) le répondeur mDNS éprouvé, qui a immédiatement réparé environ 300 bugs et a rendu la stabilité.

mDNSResponder fait partie de Bonjour - un ensemble de technologies visant à faire fonctionner l'appareil sur un réseau sans avoir besoin de configuration, comprend la recherche de services, l'attribution automatique d'adresses et la résolution de noms. C'est Bonjour qui est utilisé lorsque vous sortez votre iPhone et recherchez une Apple TV ou une imprimante.

image

Bonjour a le code open source et mDNSResponder, respectivement, aussi . Cela simplifie la tâche si vous avez besoin d'aller au fond de la vérité ultime et de montrer tout ce qui est caché. L'archive a déjà des implémentations prêtes à l'emploi pour Windows, Posix et VxWorks.

Le démon gère unicastDNS et multicastDNS. UnicastDNS est le DNS habituel auquel nous sommes habitués et que nous connaissons. MulticastDNS est un protocole d'utilisation du DNS sur les réseaux locaux qui ne nécessite pas de serveur. Si le périphérique a besoin de trouver quelqu'un - il envoie une question - «question» le paquet de multidiffusion et reçoit une réponse du périphérique avec le nom demandé (s'il existe certainement). Le protocole lui-même est décrit en détail dans le RFC du même nom.

Ce sont les fonctionnalités de MulticastDNS que le Répondeur - logiciel pour les attaques sur le réseau local - abuse. Après son lancement, il commence insidieusement à répondre à toutes les demandes de mDNS, attirant des victimes sans méfiance dans ses griffes.

C'était une digression - et maintenant à la question principale - comment voir le cache DNS actuel et l'état général des paramètres DNS.

Nous effectuons donc les étapes suivantes:

  1. Dans le terminal, nous écrivons:

    sudo log config --mode "private_data:on" 

    cette commande nous permettra de voir la sortie, sinon elle sera cachée sous la prise privée
  2. Ouvrez la console, sélectionnez notre appareil:



    et dans le filtre on écrit mDNSResponder

  3. Nous exécutons dans le terminal:

     sudo killall -INFO mDNSResponder 
  4. Ouvrez la console en arrière et obtenez une belle sortie, que nous allons maintenant analyser un peu:



Le statut des paramètres DNS est un grand canevas, divisé en sections. Le plus intéressant d'entre eux:

Cache - le cache DNS est directement stocké ici:

 ------------ Cache ------------- Slt Q TTL if U Type rdlen 3 4290 en0 + PTR 33 _companion-link._tcp.local. PTR VMAC._companion-link._tcp.local. 3 4273 en0 + PTR 37 _companion-link._tcp.local. PTR VMAC\032(2)._companion-link._tcp.local. 6 107951 -U- - Addr 0 isafronov-G8WP. Addr 6 107951 -U- SOA 64 . SOA a.root-servers.net. nstld.verisign-grs.com. 2019011700 1800 900 604800 86400 6 107951 -U- - AAAA 0 isafronov-G8WP. AAAA 6 107951 -U- SOA 64 . SOA a.root-servers.net. nstld.verisign-grs.com. 2019011700 1800 900 604800 86400 9 763 -U- CNAME 37 1-courier.push.apple.com. CNAME 1.courier-push-apple.com.akadns.net. 13 8819 -U- CNAME 22 ax.itunes.apple.com.edgesuite.net. CNAME a1108.gi3.akamai.net. 

Le contenu du fichier / etc / hosts - juste au cas où:

 --------- /etc/hosts --------- State Interface KnownUnique LO 4 localhost. Addr 127.0.0.1 KnownUnique LO 16 localhost. AAAA ::1 KnownUnique LO 4 vmware-localhost. Addr 127.0.0.1 KnownUnique LO 16 vmware-localhost. AAAA ::1 KnownUnique LO 4 broadcasthost. Addr 255.255.255.255 

Statistiques MDNS - noms en double, nombre de paquets, événements d'interface:

 --- MDNS Statistics --- Name Conflicts 0 KnownUnique Name Conflicts 0 Duplicate Query Suppressions 2045 KA Suppressions 0 KA Multiple Packets 0 Poof Cache Deletions 203 -------------------------------- Multicast packets Sent 8211 Multicast packets Received 22382 Remote Subnet packets 1 QU questions received 25960 Normal multicast questions 62197 Answers for questions 4259 Unicast responses 0 Multicast responses 0 Unicast response Demotions 0 -------------------------------- Sleeps 181 Wakeups 182 Interface UP events 665 Interface UP Flap events 48 Interface Down events 817 Interface DownFlap events 16 Cache refresh queries 2876 Cache refreshed 28935 Wakeup on Resolves 0 

Liste des interfaces réseau:

 ------ Network Interfaces ------ Struct addr Registered MAC BSSID Interface Address 00007FA2FD834E00 11, 00007FA2FD834E00, v6 utun0 00:00:00:00:00:00 00:00:00:00:00:00 Active A fe80::ebfb:c666:8f7b:62ed 00007FA2FF01B800 9, 00007FA2FF01B800, v6 awdl0 DE:14:B1:E7:21:33 00:00:00:00:00:00 Active v6 AM fe80::dc14:b1ff:fee7:2133 00007FA2FD829C00 7, 0000000000000000, v4 en0 F4:5C:89:8E:9D:C1 E4:8D:8C:61:7F:5D 192.168.1.73 dormant for 1943 seconds 00007FA2FD00C200 13, 00007FA2FD00C200, v4 en5 42:4D:7F:A3:50:1B 00:00:00:00:00:00 Active v4 AM 169.254.150.120 00007FA2FE008C00 7, 00007FA2FE008C00, v4 en0 F4:5C:89:8E:9D:C1 E4:8D:8C:61:7F:5C Active v4 AM p 192.168.1.73 

Liste des serveurs DNS:

 --------- DNS Servers(2) ---------- DNS Server . en0 127.0.0.1:53 0 Unscoped 30 18283 v4 v6 !cell !exp !clat46 !DNSSECAware DNS Server . en0 127.0.0.1:53 0 InterfaceScoped 30 18291 v4 v6 !cell !exp !clat46 !DNSSECAware v4answers 1 v6answers 1 Last DNS Trigger: 140697 ms ago 

Le monde des interactions internes et externes des sous-systèmes MacOS est vaste et plein de mystères. Travailler avec des noms de domaine n'en est qu'une petite partie. Pour plus de lecture, je recommande:

Source: https://habr.com/ru/post/fr436484/


All Articles