مرحبا
لقد واجهت مؤخرًا مهمة تصحيح أخطاء عملية حل أسماء DNS في نظام MacOS. لم أجد أي مواد كاملة حول كيفية حدوثها بالضبط ؛ كان علي جمع المعلومات بنفسي.
هنا هو ما تمكنا من معرفة.
بالنسبة للمهام المتعلقة بـ DNS في نظام التشغيل macOS ، يكون البرنامج الخفي المسمى mDNSResponder مسؤولاً. حدثت مغامرات في حياته - تم استبداله بشيطان الاكتشاف (يوسمايت) ، الذي كسر الكثير وخلق الكثير من المشاكل. بعد مرور عام ، وصلت Apple إلى رشدها وعادت (El Capitan) إلى mDNSResponder التي أثبتت جدواها ، والتي قامت على الفور بإصلاح حوالي 300 خطأ واستعادة الاستقرار.
mDNSResponder هو جزء من
Bonjour - مجموعة من التقنيات التي تهدف إلى تشغيل الجهاز على شبكة دون الحاجة إلى التكوين ، وتشمل البحث عن الخدمات ، والتخصيص التلقائي للعناوين وحل الأسماء. يتم استخدام Bonjour عند إخراج جهاز iPhone الخاص بك والبحث عن تلفزيون أو طابعة Apple.
Bonjour لديه شفرة مفتوحة المصدر ، و mDNSResponder ، على التوالي ،
أيضًا . يعمل هذا على تبسيط المهمة إذا كنت بحاجة للوصول إلى أسفل الحقيقة النهائية وإظهار كل شيء مخفي. يحتوي الأرشيف بالفعل على تطبيقات جاهزة لأنظمة Windows و Posix و VxWorks.
يعالج البرنامج الخفي أحادي الإرسال و multicastDNS. UnicastDNS هو DNS المعتاد الذي اعتدنا عليه ونعرفه. MulticastDNS هو بروتوكول لاستخدام DNS على الشبكات المحلية التي لا تتطلب خادمًا. إذا احتاج الجهاز إلى العثور على شخص ما - يرسل سؤالًا - حزمة "إرسال" متعددة البث ويتلقى ردًا من الجهاز بالاسم المطلوب (إذا كان موجودًا بالتأكيد). يتم وصف البروتوكول نفسه بالتفصيل في
RFC بنفس الاسم.
إنها ميزات MulticastDNS التي يسيء إليها
المستجيب - برنامج للهجمات على الشبكة المحلية. بعد الإطلاق ، يبدأ الأمر على نحو مضطرد في الاستجابة لجميع طلبات mDNS ، مما يجذب الضحايا المطمئنين إلى براثنها.
لقد كان استطرادا - والآن على السؤال الرئيسي - كيفية رؤية ذاكرة التخزين المؤقت DNS الحالية والحالة العامة لإعدادات DNS.
لذلك ، نحن نقوم بالخطوات التالية:
- في المحطة نكتب:
sudo log config --mode "private_data:on"
سيسمح لنا هذا الأمر بمشاهدة المخرجات ، وإلا فسيتم إخفاؤه تحت السدادة الخاصة - فتح وحدة التحكم ، حدد الجهاز لدينا:

وفي التصفية نكتب mDNSResponder

- ننفذ في المحطة:
sudo killall -INFO mDNSResponder
- افتح وحدة التحكم مرة أخرى واحصل على إخراج جيد ، والذي سنقوم بتحليله الآن قليلاً:

حالة إعدادات DNS عبارة عن لوحة قماش كبيرة ، مقسمة إلى أقسام. الأكثر إثارة للاهتمام منهم:
ذاكرة التخزين المؤقت - يتم تخزين ذاكرة التخزين المؤقت DNS مباشرة هنا:
------------ 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.
محتويات الملف / etc / hosts - فقط في حالة:
--------- /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
إحصائيات MDNS - أسماء مكررة ، وعدد الحزم ، وأحداث الواجهة:
--- 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
قائمة واجهات الشبكة:
------ 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
قائمة خوادم 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
عالم التفاعلات الداخلية والخارجية للأنظمة الفرعية لنظام التشغيل MacOS واسع ومليء بالغموض. العمل مع أسماء النطاقات هو مجرد جزء صغير منه. لمزيد من القراءة ، أوصي بما يلي: