2 पॉइंट द्वारा GN⁺ 2026-03-21 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • 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

3 टिप्पणियां

 
lidar 2026-03-22

इसी वजह से मैं कई दिनों से Tailscale MagicDNS इस्तेमाल नहीं कर पा रहा हूँ..

 
minhoryang 2026-03-21

उम्मीद है कि tailscale इस समस्या को बायपास कर देगा।

 
GN⁺ 2026-03-21
Hacker News की राय
  • ऐसी छोटी-छोटी परेशानियों (papercuts) की वजह से मैंने macOS छोड़ दिया
    LLM से bug report लिखवाना, अगर उसकी समीक्षा की जाए, तो ठीक है; लेकिन “macOS 25 में यह काम करता था” जैसी साफ़ गलतियां अगर वैसे ही चली जाएँ, तो भरोसा कम हो जाता है
    अगर ऐसी reports बढ़ती गईं, तो verification के बोझ की वजह से लोग AI द्वारा लिखी reports को सीधे फेंकना शुरू कर देंगे

    • मुझे लगता है कि AI से बना content होने की स्पष्ट जानकारी दिए बिना उसका इस्तेमाल कभी स्वीकार्य नहीं होना चाहिए
      AI से मेरे नाम पर लिखवाना एक बेअदबी भरा काम है, जो यह असर देता है कि “मेरा समय तुम्हारे समय से ज़्यादा कीमती है”
      अगर आप सार्वजनिक रूप से AI इस्तेमाल करने की बात कहने में असहज हैं, तो वही अपने-आप में इस उपयोग के मकसद पर दोबारा सोचने की वजह है
    • हर OS में ऐसी छोटी परेशानियाँ होती हैं
      Linux या Windows में भी उतने ही दर्दनाक उदाहरण गिनाए जा सकते हैं। आखिरकार यह “कौन-सा ज़हर चुनना है” वाली बात है
    • इस तरह की दिक्कतें दशकों से चली आ रही Apple की परंपरा हैं
      Microsoft backward compatibility बनाए रखने के लिए मशहूर था, जबकि Apple मौजूदा features को बेझिझक तोड़ देने के लिए जाना जाता था
      आजकल Microsoft भी पहले जितना conservative नहीं रहा, और Apple उल्टा पहले से कुछ ज़्यादा stable लगा है
    • वैसे भी Apple की पहचान लंबे समय से reports ठीक से न पढ़ने वाली कंपनी की रही है, इसलिए अगर वह LLM reports फेंक भी दे तो शायद ज़्यादा फ़र्क नहीं पड़ेगा
    • मैंने हर OS में ऐसी छोटी परेशानियाँ झेली हैं, लेकिन Linux में rollback आसान है
      NixOS जैसे सिस्टम में boot menu से पुराना version चुनो और पूरा system वापस उसी हालत में आ जाता है
      laptop पर मैं macOS चलाता हूँ, लेकिन असली काम ज़्यादातर Linux containers के अंदर करता हूँ
  • macOS 26 अब तक का सबसे ज़्यादा compatibility तोड़ने वाला version है
    कई जानबूझकर किए गए बदलावों ने app development को बहुत मुश्किल बना दिया है
    उदाहरण के लिए, Lunar app अब मनचाहे SDR nits value set नहीं कर सकता, इसलिए brightness control रुक गया,
    और YellowDot app में mic indicator की brightness control बंद हो गई, जिससे वह बेकार हो गया
    इसके अलावा बिना title वाली windows में mouse events की समस्या, gamma table लागू न हो पाना,
    और Clop जैसे apps में drag करते समय original file path खो जाने जैसी कई bugs हैं

    • ऐसी अफ़वाह है कि iOS 27 एक Snow Leopard-स्टाइल stabilization release होगा
      उम्मीद है macOS 27 भी वैसा ही हो (स्रोत)
    • music production को hobby की तरह करने वाले इंसान के नज़रिए से देखें तो mic indicator सचमुच बेवजह और परेशान करने वाला है
      macOS की philosophy बहुत जिद्दी और एकतरफ़ा लगती है, जो थका देती है
    • YellowDot वाली समस्या को शायद LUT का इस्तेमाल करके recording dot के रंग को काले रंग से map करके workaround किया जा सकता है
      मैं खुद macOS इस्तेमाल नहीं करता, लेकिन सिद्धांततः यह संभव लगता है
    • तो यही वजह थी कि M1 पर 1600 nits तक सब ठीक चलता था, लेकिन M5 पर 600 nits से ऊपर नहीं जा रहा था
      अभी के लिए शायद बस हार माननी पड़ेगी
    • mic dot की brightness limit privacy protection के लिए है
      इसका मकसद यह है कि malware camera या mic access को छिपा न सके
      और SDR brightness limit शायद आने वाले OLED displays की battery issues को पहले से रोकने की कोशिश भी हो सकती है
  • मैं अब भी उस दिन का इंतज़ार कर रहा हूँ जब Apple hardware और software में अलग हो जाएगा
    Apple Silicon तो चाहिए, लेकिन उनका OS नहीं
    अगर मैं अपना kernel और modules खुद नहीं चला सकता, तो वह मेरा hardware नहीं है
    बगल वाला laptop coreboot से boot होता है, और वही मेरी philosophy दिखाता है

    • क्या Mac पर अपना kernel खुद नहीं चलाया जा सकता? असली समस्या driver support नहीं है क्या?
    • macOS परफ़ेक्ट नहीं है, लेकिन पूरे सिस्टम को “भयानक” कहना बढ़ा-चढ़ाकर किया गया आकलन लगता है
    • मुझे भी macOS से नफ़रत नहीं है। बस उसे सीधे “भयानक” कह देना बहुत convincing नहीं लगता
  • local web development के लिए मैं *.localhost इस्तेमाल करता हूँ
    सभी modern browsers इसे अपने-आप 127.0.0.1 पर resolve कर देते हैं, इसलिए DNS settings या hosts file बदलने की ज़रूरत नहीं पड़ती
    हाँ, browser के बाहर के programs (python, wget वगैरह) पर यह लागू नहीं होता

    • *.*.localhost भी supported है, इसलिए अब production domain structure को ज्यों-का-त्यों local में replicate किया जा सकता है
      ArchiveBox ने इस feature से snapshot-वार domain isolation लागू करके security risk कम किए
    • Tahoe में यह python या wget में भी ठीक काम करता है
    • मैंने Chrome में test किया; लगता है Safari में भी यही behavior होगा
    • मैं भी यही तरीका इस्तेमाल करता हूँ। बस .localhost थोड़ा लंबा लगता है
      पहले .local इस्तेमाल करता था, लेकिन उसमें conflicts बहुत थे
    • हम dev.our-root-domain.com को public DNS में 127.0.0.1 पर map करके इस्तेमाल करते हैं
  • मैं पुराने Yosemite machine पर कई local TLDs देने वाली configuration इस्तेमाल करता रहा हूँ
    /etc/resolver वाला तरीका शायद 2014 के आसपास से ही deprecated था, और अब लगता है कि इसे पूरी तरह हटा दिया गया है
    इसकी जगह scutil को सीधे इस्तेमाल करके settings save करना ही सही तरीका है

    • लेकिन सिर्फ scutil काफ़ी नहीं है
      कुछ macOS lookups अब भी mDNSResponder के ज़रिए इन settings को ignore या override कर देते हैं
      इसलिए आखिर में unbound या dnsmasq इस्तेमाल करना ज़्यादा आसान पड़ता है
  • मैं भी /etc/resolver/X और dnsmasq के साथ कई TLDs इस्तेमाल कर रहा हूँ और कोई समस्या नहीं है
    config file में मैं हमेशा domain directive शामिल करता हूँ
    असल में लगभग हमेशा इस setting की ज़रूरत पड़ती है
    शायद domain entry जोड़ने से समस्या हल हो जाए

  • मैं ज़्यादातर Linux इस्तेमाल करता हूँ, लेकिन लोग macOS के design को खराब क्यों कहते हैं, यह मुझे ठीक से समझ नहीं आता
    सिर्फ UX देखें तो macOS काफ़ी पॉलिश्ड लगा है
    Gnome themes में लोकप्रिय कई themes भी macOS style की नकल करते हैं

    • online अक्सर ज़्यादा नाराज़ लोग ही ज़्यादा दिखाई देते हैं वाला bias होता है
      खासकर HN में तो और भी ज़्यादा, ऐसा मुझे लगता है
    • Tahoe version भी ज़्यादातर ठीक था
      window corners resize करना थोड़ा असुविधाजनक है, लेकिन कुल मिलाकर संतोषजनक है
      आखिर हर OS में bugs होते हैं
    • Apple की feature creep वाली संस्कृति की वजह से UX में अक्सर बेवजह बदलाव होते रहते हैं
      notifications dialog इसका एक अच्छा उदाहरण है
    • मुझे भी macOS की visual sense अच्छी लगती है
      बस customization की कमी खलती है
      Windows 98 जैसे पुराने UI को याद करना शायद पीढ़ी का फ़र्क हो सकता है
    • कुल मिलाकर UX पसंद है
      fullscreen में जाने का इसका तरीका अलग है, लेकिन आदत पड़ जाए तो ठीक लगता है
      हाँ, window tiling की कमी असुविधाजनक है
      फिर भी मैं Linux को पसंद करता हूँ। suspend या power management पिछले 8 साल से समस्या बने हुए हैं
  • पहले Apple ने iOS में self-signed certificates को ब्लॉक कर दिया था, जिससे local HTTPS development लगभग असंभव हो गया था
    समझना मुश्किल है कि उन्होंने ऐसी चीज़ों से छेड़छाड़ क्यों की

  • मुझे macOS पसंद है
    इसमें default रूप से zsh शामिल है, और Linux पर जो लगभग सब कुछ करता था, वह अपने personal computer पर भी कर सकता हूँ

  • *.localhost डिफ़ॉल्ट रूप से काम करता है
    dnsmasq के बिना भी कई hostnames को 127.0.0.1 से जोड़ा जा सकता है

    • लेकिन जब internal private IPs को किसी दूसरे address पर map करना हो, तब यह तरीका काफ़ी नहीं है
    • *.example-private जैसे domains कई devices को private IPs से अलग-अलग पहचानने के लिए ज़रूरी होते हैं
      अगर सिर्फ localhost इस्तेमाल करना है, तो सीधे 127.0.0.1 ही इस्तेमाल कर लो
      व्यक्तिगत रूप से मैं *mDNS के .local का इस्तेमाल करता हूँ, ताकि DHCP-आधारित auto-configuration का फायदा मिल सके