2 puan yazan GN⁺ 2026-03-21 | 3 yorum | WhatsApp'ta paylaş
  • macOS 26.3.1'de /etc/resolver/ tabanlı alan adına özel DNS yapılandırmaları standart dışı TLD'lerde geçersiz hale geliyor ve mevcut yerel geliştirme ortamlarını bozuyor
  • mDNSResponder, özel TLD isteklerini yalnızca mDNS olarak işliyor ve tanımlanan unicast ad sunucularına hiç başvurmuyor
  • .internal, .test, .home.arpa, .lan gibi IANA kök bölgesinde bulunmayan TLD'lerin tamamı başarısız oluyor; standart alan adları (google.com vb.) ise normal çalışıyor
  • Tek geçici çözüm /etc/hosts içine elle kayıt eklemek, ancak bu dinamik ortamlar için (Docker, Kubernetes vb.) pratik değil
  • macOS geliştirici topluluğunun uzun süredir kullandığı yerel DNS iş akışının tamamı bozulmuş durumda; bunun geliştirme araçları ve VPN entegrasyonları üzerinde geniş çaplı etkisi var

macOS 26'da ortaya çıkan DNS regresyonu

  • macOS 26.3.1'de (Darwin 25.3.0, Build 25D771280a) /etc/resolver/ üzerinden alan adına özel DNS yapılandırma özelliği bozulmuş durumda

    • macOS 25.x'e kadar normal çalışan bu özellik, 26 sürüm güncellemesinden sonra durdu
    • Apple'ın resmi belgelerinde (man 5 resolver) açıkça belirtilen bu özellik, standart dışı TLD'lerde artık çalışmıyor
  • mDNSResponder, tüm özel TLD isteklerini mDNS olarak yakalıyor ve tanımlanmış unicast ad sunucularını yok sayıyor

    • getaddrinfo() kullanan tüm uygulamalarda (ping, curl, python3 socket) “Unknown host” hatası oluşuyor
    • tcpdump çıktısına göre yerel DNS'e (127.0.0.1:53) hiç trafik gitmiyor
    • dns-sd -G v4 komutunda “No Such Record” yanıtı ve anormal derecede uzun bir TTL (yaklaşık 108.002 saniye) görünüyor

Test ve yeniden üretim adımları

  • Homebrew ile kurulan dnsmasq, yerel DNS çözücüsü olarak yapılandırılıyor ve *.internal veya *.example-private alan adları 127.0.0.1'e eşleniyor

    • /etc/resolver/example-private dosyasında nameserver 127.0.0.1 tanımlanıyor
    • scutil --dns komutunda ilgili çözücü doğru şekilde kayıtlı görünüyor
    • Ancak ping probe.example-private çalıştırıldığında “Unknown host” hatası alınıyor
  • dig @127.0.0.1 ve host komutu normal yanıt döndürürken, sistem çözücüsünü kullanan tüm uygulamalar başarısız oluyor

    • Bunun nedeni mDNSResponder'ın sorguları içeride engelleyip unicast DNS'i hiç çağırmaması

Etkilenen TLD listesi

TLD Durum Not
.internal Başarısız IETF taslağındaki özel amaçlı TLD; macOS 25'te çalışıyordu
.test Başarısız RFC 6761 §6.2 uyarınca yerel test için ayrılmıştır
.home.arpa Başarısız RFC 8375 uyarınca ev ağı kullanımı için ayrılmıştır
.lan Başarısız Resmi değil ama yaygın kullanılıyor
Diğer kayıtsız TLD'ler Başarısız IANA kök bölgesinde olmayan tüm TLD'ler
  • .test için, RFC 6761'de belirtildiği gibi normal DNS üzerinden çözümlenmesi gerekirken, macOS 26 bunu yalnızca mDNS olarak işliyor
  • Buna karşılık google.com, bbc.co.uk gibi IANA kayıtlı alan adları eskisi gibi normal çalışıyor

Geliştirme ortamı ve araçlara etkisi

  • Yerel geliştirme için kullanılan DNS iş akışının tamamı bozuluyor

    • dnsmasq + /etc/resolver/ kombinasyonuyla *.test, *.internal vb. kullanan geliştiriciler
    • Docker Desktop ve benzeri araçların konteyner adı çözümleme özelliği
    • /etc/resolver/ dosyalarını otomatik oluşturan Vagrant, Tailscale, VPN istemcileri
    • Kubernetes yerel geliştirme araçlarında (minikube, kind, k3d vb.) *.cluster.local çözümlemesi
  • scutil --dns çıktısında çözücü yapılandırması normal göründüğü için, kullanıcıların sorunu fark etmesi zorlaşıyor ve günlüklerde ya da hata mesajlarında bir belirti bulunmuyor

Geçici çözüm ve sınırlamalar

  • Çalışan tek yöntem, /etc/hosts içine alan adı eşlemelerini elle eklemek
    • Bu yöntem mDNSResponder'ı tamamen baypas ediyor
    • Ancak Docker veya dinamik DNS ortamlarında pratik değil ve her değişiklik için sudo yetkisi gerekiyor

Teknik özellikler ve doğrulama ortamı

  • macOS 26.3.1 (Build 25D771280a), Apple Silicon (arm64)
  • dnsmasq, Homebrew üzerinden kurulmuş ve 127.0.0.1:53 üzerinde dinliyor
  • dig ve host komutları normal yanıt veriyor; ping, curl, python3 socket.getaddrinfo başarısız oluyor
  • İlgili belgeler ve standartlar:
    • man 5 resolver — macOS'un /etc/resolver/ mekanizmasını belgeleyen dokümantasyon
    • RFC 6761 — .test, .localhost, .invalid, .example gibi özel amaçlı alan adlarını tanımlar
    • RFC 8375 — home.arpa alan adını tanımlar
    • IETF draft-ietf-dnsop-interneti-mdn — .internal özel amaçlı alan adı taslağı

3 yorum

 
lidar 2026-03-22

Bu yüzden birkaç gündür Tailscale MagicDNS'i kullanamıyorum..

 
minhoryang 2026-03-21

Umarım tailscale bu sorunu aşmanın bir yolunu bulur.

 
GN⁺ 2026-03-21
Hacker News görüşleri
  • Bu tür ufak tefek sorunlar (papercuts) yüzünden macOS’tan ayrıldım
    LLM ile hata raporu yazmak, inceleme yapılması şartıyla sorun değil ama “macOS 25’te çalışıyordu” gibi bariz hatalar aynen girince güven azalıyor
    Bu tür raporlar artarsa, doğrulama yükü yüzünden insanların yapay zekanın yazdığı raporları doğrudan çöpe atacağını düşünüyorum

    • Yapay zeka tarafından üretilmiş içerik olduğunu açıkça belirtmeden kullanmak bence asla kabul edilemez
      Yapay zekaya benim adıma yazı yazdırmak, “benim zamanım seninkinden daha değerli” izlenimi veren kaba bir davranış
      Eğer yapay zeka kullandığını açıkça söylemenin zor olacağı bir durumdaysan, bu bile tek başına kullanım amacını yeniden düşünmen gerektiğini gösterir
    • Her işletim sisteminde böyle ufak tefek sorunlar var
      Linux ya da Windows için de aynı derecede can sıkıcı örnekler yazılabilir. Sonuçta mesele “hangi zehri seçeceğin”
    • Bu tür sorunlar onlarca yıldır süren bir Apple geleneği
      Microsoft geri uyumluluğu korumakla, Apple ise mevcut özellikleri cesurca bozmakla tanınırdı
      Bugünlerde Microsoft da eskisi kadar muhafazakar değil, Apple ise sanki geçmişe kıyasla daha kararlı hale gelmiş gibi
    • Zaten Apple, eskiden beri raporları pek okumayan bir şirket olarak biliniyor; o yüzden LLM raporlarını çöpe atsalar bile pek bir şey değişmez gibi
    • Tüm işletim sistemlerinde böyle ufak sorunlar yaşadım ama Linux’ta geri alma daha kolay
      NixOS’ta önyükleme menüsünden önceki sürümü seçtiğinde tüm sistem geri dönüyor
      Dizüstünde macOS kullanıyorum ama asıl işlerimin çoğunu Linux container’ları içinde yapıyorum
  • macOS 26, şimdiye kadar gördüğüm uyumluluğu en çok bozan sürüm
    Birçok kasıtlı değişiklik uygulama geliştirmeyi çok zorlaştırdı
    Örneğin Lunar uygulamasında SDR nit değerleri artık keyfi olarak ayarlanamıyor ve bu yüzden parlaklık kontrolü engelleniyor,
    YellowDot uygulamasında ise mikrofon göstergesinin parlaklığı ayarlanamadığı için uygulama kullanılamaz hale geliyor
    Ayrıca başlıksız pencerelerde fare olayları sorunu, gamma tablosunun uygulanamaması,
    Clop gibi uygulamalarda sürükleme sırasında kaynak dosya yolunun kaybolması gibi çeşitli hatalar var

    • iOS 27’nin Snow Leopard tarzı bir kararlılık sürümü olacağına dair söylentiler var
      Umarım macOS 27 de öyle olur (kaynak)
    • Müzik prodüksiyonunu hobi olarak yapan biri olarak mikrofon göstergesi gerçekten gereksiz ve rahatsız edici
      macOS’in yaklaşımı fazla inatçı ve tek taraflı olduğu için bunaltıcı geliyor
    • YellowDot sorunu, LUT kullanarak kayıt noktasının rengini siyaha eşleyip aşılabilir mi diye düşünüyorum
      macOS’i doğrudan kullanmıyorum ama teoride mümkün görünüyor
    • Demek ki M1’de 1600 nit’e kadar sorunsuz çalışırken M5’te 600 nit’in üstüne çıkamamasının sebebi buymuş
      Şimdilik vazgeçmek gerekecek gibi görünüyor
    • Mikrofon noktası parlaklığına getirilen sınırın amacı gizliliği korumak
      Bu önlem, kötü amaçlı yazılımların kamera ve mikrofon erişimini gizleyememesi için alınmış
      Ayrıca SDR parlaklık sınırı, yakında gelecek OLED ekranların pil sorunlarını önceden engelleme amacı da taşıyor olabilir
  • Apple’ın donanım ve yazılım olarak ayrıldığı günü hâlâ bekliyorum
    Apple Silicon istiyorum ama onların işletim sistemini istemiyorum
    Kendi kernel’imi ve modüllerimi çalıştıramıyorsam o cihaz benim değildir
    Yanımdaki dizüstü coreboot ile açılıyor; bu da benim yaklaşımımı gösteriyor

    • Mac’te de kernel’i doğrudan çalıştırmak mümkün değil mi? Asıl mesele sürücü desteği değil mi?
    • macOS kusursuz değil ama bütünü için “berbat” demek abartılı bir değerlendirme olur
    • Ben de macOS’ten nefret etmiyorum. Sadece “berbat” diye kestirip atmak pek ikna edici gelmiyor
  • Yerel web geliştirmede *.localhost kullanıyorum
    Tüm modern tarayıcılar bunu otomatik olarak 127.0.0.1’e çözümlüyor, dolayısıyla DNS ayarı ya da hosts dosyasını değiştirmek gerekmiyor
    Yalnız bu, tarayıcı dışındaki programlarda (python, wget vb.) geçerli değil

    • *.*.localhost da destekleniyor; böylece artık prodüksiyon alan adı yapısını birebir yerelde kopyalamak mümkün
      ArchiveBox bu özellikle snapshot başına alan adı izolasyonu kurarak güvenlik riskini azalttı
    • Tahoe’da python ya da wget içinde de gayet iyi çalışıyor
    • Chrome’da test ettim; Safari’de de aynı şekilde çalışacağını düşünüyorum
    • Ben de bu yöntemi kullanıyorum. Yalnız .localhost biraz uzun geliyor
      Eskiden .local kullanıyordum ama çok çakışma oluyordu
    • Biz dev.our-root-domain.com alan adını genel DNS’te 127.0.0.1’e eşleyerek kullanıyoruz
  • Eski bir Yosemite makinede birden fazla yerel TLD sağlayan bir yapılandırma kullanıyordum
    /etc/resolver yöntemi zaten 2014 civarından beri kaldırılması planlanan bir şeydi; sanırım bu kez tamamen kaldırılmış
    Bunun yerine yapılandırmayı doğrudan scutil ile kaydetmek asıl yöntem

    • Ama scutil tek başına yetmiyor
      Bazı macOS sorguları hâlâ mDNSResponder üzerinden gidiyor ve bu ayarları yok sayabiliyor ya da ezebiliyor
      Bu yüzden sonunda unbound ya da dnsmasq kullanmak daha basit oluyor
  • Ben de /etc/resolver/X ile dnsmasq kombinasyonunda birden fazla TLD kullanıyorum ve sorun yaşamıyorum
    Yapılandırma dosyasında her zaman domain yönergesini ekliyorum
    Pratikte bu ayar neredeyse her zaman gerekli oldu
    Muhtemelen domain girdisini eklemek sorunu çözebilir

  • Ben ağırlıklı olarak Linux kullanıyorum ama insanların neden macOS’in tasarımının kötü olduğunu söylediğini pek anlamıyorum
    Sadece UX’e bakınca macOS bana oldukça rafine geliyordu
    Gnome için popüler olan temaların çoğu da zaten macOS stilini taklit ediyor

    • İnternette çoğu zaman en çok şikayet edenlerin daha görünür olması gibi bir yanlılık var
      Özellikle HN’de bunun daha belirgin olduğunu düşünüyorum
    • Tahoe sürümü de genel olarak iyiydi
      Pencere köşelerini ayarlamak biraz kullanışsız ama genel olarak memnunum
      Sonuçta her işletim sisteminde hata var
    • Apple’ın sürekli özellik ekleme kültürü (feature creep) yüzünden UX gereksiz yere sık sık değişiyor
      Bildirim pencereleri bunun tipik bir örneği
    • Ben de macOS’in estetik anlayışını beğeniyorum
      Sadece özelleştirme eksikliği üzücü
      Windows 98 gibi eski arayüzleri özlemek belki de kuşak farkıdır
    • Genel olarak UX’i seviyorum
      Tam ekran geçiş biçimi farklı ama alışınca rahat
      Yalnız pencere döşeme eksikliği can sıkıyor
      Yine de hâlâ Linux’u tercih ediyorum; askıya alma ve güç yönetimi 8 yıldır sorunlu olsa bile
  • Apple’ın bir zamanlar iOS’ta self-signed sertifikaları engelleyip yerel HTTPS geliştirmeyi neredeyse imkansız hale getirdiği olmuştu
    Neden böyle bir alana müdahale ettiklerini anlamak zor

  • macOS’i seviyorum
    Varsayılan olarak zsh ile geliyor ve Linux’ta yaptığım şeylerin neredeyse hepsini kişisel bilgisayarımda da yapabiliyorum

  • *.localhost zaten varsayılan olarak çalışıyor
    dnsmasq olmadan da birden fazla host adını 127.0.0.1’e bağlayabiliyorsunuz

    • Ama dahili özel IP’leri farklı adreslere eşlemek gerektiğinde bu yöntem yetersiz kalıyor
    • *.example-private gibi alan adları, birden fazla cihazı özel IP’lerle ayırmak için gerekli
      Sadece localhost kullanacaksanız doğrudan 127.0.0.1 kullanabilirsiniz
      Ben şahsen DHCP tabanlı otomatik yapılandırmadan yararlanmak için mDNS’in *.local alanını kullanıyorum