Tailscale MagicDNS працуе, але nslookup церпіць няўдачу на macOS
Праграмы macOS вырашаюць праз сістэмны рэзалвер; nslookup чытае статычны файл. Праверце адно і тое ж імя tailnet абодвума шляхамі, перш чым змяняць любыя налады DNS.
На Mac каманда ping вызначае імя машыны tailnet, а nslookup вяртае памылку, і абедзве каманды кажуць праўду. Праграмы вырашаюць праз сістэмны рэзалвер, які Tailscale наладжвае для кожнага інтэрфейса, а nslookup і host чытаюць статычны файл, якога MagicDNS ніколі не кранае. Два шляхі могуць разыходзіцца без страты ніводнага пакета. Вызначце, які шлях выбрала ваша праграма, што пацярпела няўдачу, перш чым змяняць любыя налады DNS.
Два шляхі вырашэння, два розныя адказы
Трафік праграм на macOS ідзе праз сістэмны рэзалвер, а запісы рэзалвера з абмежаваннем па інтэрфейсе вызначаюць, які сервер адказвае за які дамен. Tailscale усталёўвае там свой запіс MagicDNS, таму Safari і ssh знаходзяць імёны tailnet. nslookup, host і dig замест гэтага чытаюць /etc/resolv.conf або бяруць сервер у камандным радку, і гэты файл звычайна ўсё яшчэ паказвае маршрутызатар або офісны сервер. Імя tailnet, адпраўленае ў гэты файл, не мае аўтарытэтнага адказу, які чакае на яго, таму інструмент паведамляе пра няўдачу, а сістэмны шлях спраўляецца.
Ніводзін з інструментаў не паводзіць сябе няправільна. Яны пытаюцца ў розных сервераў, і толькі адзін з гэтых сервераў ведае пра ваш tailnet.
Праверце тое ж імя праз сістэмны шлях
Выкарыстайце сістэмны выклік пошуку як першую праверку, затым параўнайце яго з запытам, накіраваным непасрэдна да рэзалвера MagicDNS. Трымайце напісанне аднолькавым у абодвух, уключаючы дамен tailnet, бо кароткае імя і поўнае кваліфікаванае імя — гэта розныя пытанні з рознымі адказамі.
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
Гэтыя тры вынікі адказваюць на тры пытанні: што вяртае сістэма, якія рэзалверы наладжаны для якіх даменаў і што ведае сам MagicDNS. Імя, прысутнае ў другім і трэцім, але адсутнае ў першым, паказвае на лакальную канфігурацыю, а не на tailnet.
Калі імя вырашаецца, праверце сэрвіс
Правільны адказ DNS даказвае толькі тое, што імя адпавядае адрасу. Сэрвіс за ім можа быць спынены, порт можа фільтравацца правілам доступу, а сертыфікат можа называць іншы хост, чым той, які вы ўвялі.
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
Захавайце арыгінальны тэкст памылкі, бо папярэджанне пра сертыфікат, тайм-аўт злучэння і адсутнасць імя вядуць кожнае ў іншае месца. Змена сервераў імёнаў выпраўляе трэцяе і марнуе паўдня на першыя два.
MagicDNS не замяняе офісны DNS
Імя ўнутры офіснай зоны не з’яўляецца імем прылады tailnet, нават калі адзін і той жа кліент можа дабрацца да абодвух. Калі прызначэнне знаходзіцца за маршрутызатарам падсеткі, кліенту патрэбен split DNS для гэтай зоны, які паказвае на ўнутраны рэзалвер, і гэта іншая налада, чым MagicDNS, і яна дакументуецца побач з ім.
Дамены пошуку таксама маюць значэнне. Да непаўнага кароткага імя па чарзе дадаецца кожны наладжаны суфікс, таму ноўтбук, які нядаўна далучыўся да іншай сеткі, можа вырашацца праз састарэлы суфікс. Праверце, які суфікс быў ужыты, перш чым абвясціць зону зламанай.
Калі абодва шляхі церпяць няўдачу, вырашаюць факты tailnet
Калі і сістэмны пошук, і прамы запыт церпяць няўдачу для прылады, якая, на вашу думку, існуе, праблема знаходзіцца вышэй за рэзалвер Mac.
Пацвердзіце імя машыны і дамен tailnet у адмінкансолі, пацвердзіце, што прылада ў сетцы і ўхвалена, і пацвердзіце, што налады DNS кліента не былі адключаны лакальна. Прылада не ў сетцы захоўвае сваё імя і проста не мае адрасу, каб вярнуць.
Затым выбірайце па доказах. Імя, якое вырашаецца на сістэмным шляху і церпіць няўдачу ў nslookup, — гэта розніца шляхоў інструментаў; імя, якое вырашаецца, але сэрвіс адмаўляе, — гэта праблема доступу або сертыфіката; імя, якое нідзе не вырашаецца, — гэта праблема tailnet або канфігурацыі DNS. Тры ўладальнікі, тры выпраўленні, і дакументацыя MagicDNS апісвае асаблівасці macOS для першага выпадку.