• macOS 26.3.1 में /etc/resolver/ आधारित domain-specific DNS सेटिंग्स non-standard TLDs के लिए निष्क्रिय हो गई हैं, जिससे मौजूदा local development environments रुक गए हैं
  • mDNSResponder custom TLD requests को सिर्फ mDNS के रूप में हैंडल कर रहा है और निर्दिष्ट unicast nameserver को बिल्कुल refer नहीं कर रहा
  • .internal, .test, .home.arpa, .lan आदि IANA root zone में मौजूद नहीं होने वाले अधिकांश TLDs विफल हो रहे हैं, जबकि standard domains (google.com आदि) सामान्य रूप से काम कर रहे हैं
  • एकमात्र अस्थायी workaround /etc/hosts में मैन्युअल एंट्री जोड़ना है, लेकिन dynamic environments (Docker, Kubernetes आदि) में यह व्यावहारिक नहीं है
  • macOS developer community में लंबे समय से इस्तेमाल हो रहा पूरा local DNS workflow टूट गया है, जिससे development tools और VPN integration features पर व्यापक असर पड़ा है

macOS 26 में DNS regression समस्या

  • macOS 26.3.1(Darwin 25.3.0, Build 25D771280a) में /etc/resolver/ के जरिए domain-specific DNS configuration की क्षमता टूट गई है

    • macOS 25.x तक सामान्य रूप से काम करने वाली यह सुविधा 26 version update के बाद बंद हो गई
    • Apple के आधिकारिक दस्तावेज़ (man 5 resolver) में यह capability दर्ज होने के बावजूद, non-standard TLDs पर अब यह काम नहीं करती
  • mDNSResponder सभी custom TLD requests को mDNS के जरिए intercept कर रहा है, और निर्दिष्ट unicast nameserver को नज़रअंदाज़ कर रहा है

    • getaddrinfo() का उपयोग करने वाले सभी applications (ping, curl, python3 socket) में “Unknown host” त्रुटि आती है
    • tcpdump के परिणाम में local DNS (127.0.0.1:53) की ओर कोई traffic नहीं दिखता
    • dns-sd -G v4 कमांड में “No Such Record” response और असामान्य रूप से लंबा TTL (लगभग 108,002 सेकंड) दिखता है

परीक्षण और पुनरुत्पादन प्रक्रिया

  • Homebrew से इंस्टॉल किए गए dnsmasq को local DNS resolver के रूप में सेट किया गया, और *.internal या *.example-private domains को 127.0.0.1 पर map किया गया

    • /etc/resolver/example-private फ़ाइल में nameserver 127.0.0.1 सेट किया गया
    • scutil --dns कमांड में संबंधित resolver सामान्य रूप से registered दिखता है
    • लेकिन ping probe.example-private चलाने पर “Unknown host” त्रुटि आती है
  • dig @127.0.0.1 और host कमांड सामान्य response लौटाते हैं, लेकिन system resolver का उपयोग करने वाले सभी apps विफल हो जाते हैं

    • इसका कारण यह है कि mDNSResponder अंदरूनी रूप से query को block कर रहा है और unicast DNS को कॉल ही नहीं कर रहा

प्रभावित TLDs की सूची

TLD स्थिति टिप्पणी
.internal विफल IETF draft का special-use TLD, macOS 25 में सामान्य
.test विफल RFC 6761 §6.2 के अनुसार local testing के लिए आरक्षित
.home.arpa विफल RFC 8375 के अनुसार home network के लिए आरक्षित
.lan विफल अनौपचारिक, लेकिन व्यापक रूप से उपयोग में
अन्य unregistered TLDs विफल IANA root zone में मौजूद न होने वाले सभी TLDs
  • .test के मामले में, RFC 6761 के अनुसार इसे सामान्य DNS के जरिए resolve होना चाहिए, लेकिन macOS 26 इसे केवल mDNS के रूप में हैंडल कर रहा है
  • इसके विपरीत, google.com, bbc.co.uk जैसे IANA-registered domains पहले की तरह सामान्य रूप से काम कर रहे हैं

development environment और tools पर प्रभाव

  • पूरा local development DNS workflow टूट गया है

    • dnsmasq + /etc/resolver/ संयोजन के साथ *.test, *.internal आदि का उपयोग करने वाले developers
    • Docker Desktop और समान tools की container name resolution functionality
    • /etc/resolver/ फ़ाइलों को अपने-आप बनाने वाले Vagrant, Tailscale, VPN clients
    • Kubernetes local development tools (minikube, kind, k3d आदि) में *.cluster.local resolution
  • चूंकि scutil --dns में resolver configuration सामान्य दिखाई देती है, users के लिए समस्या पहचानना कठिन है और न logs मिलते हैं न error messages

अस्थायी workaround और सीमाएँ

  • काम करने वाला एकमात्र तरीका /etc/hosts में मैन्युअल domain mapping जोड़ना है
    • यह तरीका mDNSResponder को पूरी तरह bypass करता है
    • लेकिन Docker या dynamic DNS environments में यह व्यावहारिक नहीं है, और हर बदलाव पर sudo अनुमति चाहिए

technical specs और verification environment

  • macOS 26.3.1 (Build 25D771280a), Apple Silicon(arm64)
  • dnsmasq Homebrew के जरिए इंस्टॉल है और 127.0.0.1:53 पर listen कर रहा है
  • dig और host कमांड सामान्य response देते हैं, ping·curl·python3 socket.getaddrinfo विफल होते हैं
  • संबंधित documents और standards:
    • man 5 resolver — macOS के /etc/resolver/ mechanism का documentation
    • RFC 6761 — .test, .localhost, .invalid, .example आदि special-use domains की परिभाषा
    • RFC 8375 — home.arpa domain की परिभाषा
    • IETF draft-ietf-dnsop-interneti-mdn — .internal special-use domain draft

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.