Tailscale MagicDNS çalışıyor, ancak macOS'ta nslookup başarısız oluyor
macOS uygulamaları sistem çözümleyicisi aracılığıyla çözer; nslookup statik bir dosya okur. Herhangi bir DNS ayarını değiştirmeden önce aynı tailnet adını iki yolda da test edin.
Bir Mac'te ping bir tailnet makine adını çözerken nslookup hata döndürür ve iki komut da doğruyu söyler. Uygulamalar, Tailscale'in her arayüz için yapılandırdığı sistem çözümleyicisi aracılığıyla çözerken nslookup ve host, MagicDNS'in hiç dokunmadığı statik bir dosyayı okur. İki yol tek bir paket bile kaybolmadan farklılaşabilir. Herhangi bir DNS ayarını değiştirmeden önce başarısız uygulamanızın hangi yolu izlediğini belirleyin.
İki çözümleme yolu, iki farklı yanıt
macOS'ta uygulama trafiği sistem çözümleyicisinden geçer ve arayüze göre sınırlandırılmış çözümleyici girdileri hangi sunucunun hangi alan adına yanıt vereceğini belirler. Tailscale kendi MagicDNS girdisini oraya kurar, bu yüzden Safari ve ssh tailnet adlarını bulur. nslookup, host ve dig ise /etc/resolv.conf okur ya da komut satırından bir sunucu alır ve bu dosya genellikle hâlâ yönlendiriciyi veya bir ofis sunucusunu adlandırır. O dosyaya gönderilen bir tailnet adı için bekleyen hiçbir yetkili yanıt yoktur, bu yüzden araç hata bildirirken sistem yolu başarılı olur.
İki araçtan hiçbiri yanlış davranmıyor. Farklı sunuculara soruyorlar ve bu sunuculardan yalnızca biri tailnet'inizi biliyor.
Aynı adı sistem yoluyla test edin
Sistem arama çağrısını ilk test olarak kullanın, ardından doğrudan MagicDNS çözümleyicisine yönlendirilen bir sorguyla karşılaştırın. Kısa ad ile tam nitelikli ad farklı sorular ve farklı yanıtlar olduğu için yazımı ikisinde de aynı tutun, tailnet alan adı dahil.
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
Bu üç çıktı üç soruyu yanıtlar: sistem ne döndürür, hangi çözümleyiciler hangi alan adları için yapılandırılmıştır ve MagicDNS'in kendisi ne bilir. İkinci ve üçüncüde bulunup birincide bulunmayan bir ad, tailnet'e değil yerel yapılandırmaya işaret eder.
Ad çözüldükten sonra hizmeti test edin
Doğru bir DNS yanıtı yalnızca bir adın bir adrese karşılık geldiğini kanıtlar. Arkasındaki hizmet durdurulmuş olabilir, bağlantı noktası bir erişim kuralıyla filtrelenebilir ve sertifika yazdığınızdan farklı bir ana bilgisayar adı verebilir.
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
Özgün hata metnini saklayın, çünkü sertifika uyarısı, bağlantı zaman aşımı ve bulunamayan ad her biri başka bir yere götürür. Ad sunucularını değiştirmek üçüncüsünü onarır ve ilk ikisine bir öğleden sonra harcar.
MagicDNS ofis DNS'inin yerini tutmaz
Aynı istemci her ikisine de ulaşabilse bile bir ofis bölgesi içindeki ad, tailnet cihaz adı değildir. Hedef bir alt ağ yönlendiricisinin arkasındaysa, istemcinin o bölge için iç çözümleyiciye işaret eden split DNS'e ihtiyacı vardır, bu MagicDNS'ten farklı bir ayardır ve onun yanında belgelenmiştir.
Arama alan adları da önemlidir. Niteliksiz kısa bir ada yapılandırılmış her sonek sırayla eklenir, bu yüzden yakın zamanda başka bir ağa katılan bir dizüstü bilgisayar eski bir sonek üzerinden çözebilir. Bölgeyi bozuk ilan etmeden önce hangi sonekin uygulandığını kontrol edin.
Her iki yol da başarısız olduğunda tailnet gerçekleri karar verir
Var olduğuna inandığınız bir cihaz için sistem araması ve doğrudan sorgu ikisi de başarısız olursa, sorun Mac'in çözümleyicisinin üstündedir.
Yönetici konsolunda makine adını ve tailnet alan adını doğrulayın, cihazın çevrimiçi ve onaylı olduğunu doğrulayın ve istemcinin DNS ayarlarının yerel olarak devre dışı bırakılmadığını doğrulayın. Çevrimdışı bir cihaz adını korur ve geri verecek hiçbir adresi yoktur.
Ardından kanıtlara göre seçin. Sistem yolunda çözülüp nslookup'ta başarısız olan ad bir araç yolu farkıdır; çözülüp hizmet reddettiğinde bu bir erişim veya sertifika sorunudur; hiçbir yerde çözülmeyen ad bir tailnet veya DNS yapılandırma sorunudur. Üç sahip, üç düzeltme ve MagicDNS belgeleri ilk durumun macOS özelliklerini kapsar.