NXDOMAIN праз VPN не азначае аварыі тунэля
Адмоўны адказ азначае, што рэзалвер адказаў, а не што пакеты спыніліся. Прачытайце код, рэзалвер і закэшаваны адказ, перш чым нешта перабудоўваць.
Спакусліва прыняць адзін няўдалы запыт за доказ таго, што тунэль абрынуўся, асабліва калі імя працавала дзесяць хвілін таму. Адказ сведчыць пра іншае. NXDOMAIN — гэта завершаная транзакцыя DNS, у якой рэзалвер паведаміў, што запытанае імя не існуе; зламаны тунэль звычайна дае цішыню, тайм-аўт або спробу рэзалюцыі праз няправільны сервер. Версія аргумента без wireshark — гэта адзін запыт, адзін адказнік і адзін код адказу, і гэтую тройку варта зафіксаваць да любых змен у канфігурацыі.
Што насамрэч даказвае адказ
DNS раздзяляе вынікі, якія кліенты часта зводзяць у адну няўдачу. Імя, якое не існуе, дае адмоўны адказ з кодам NXDOMAIN, а імя, якое існуе, але не мае запісу патрэбнага тыпу, дае паспяховы адказ з пустым раздзелам адказу. Абодва выглядаюць для праграмы як нешта бескарыснае, і толькі адзін з іх азначае, што імя няправільнае.
Гэтая розніца вызначае, дзе належыць рамантаваць. Адсутны запіс AAAA на хаспе з запісам A не азначае адсутнага хаспа, і паўторны выпуск сертыфіката або перабудова тунэля ў пагоні за гэтым марнуе адзіную падказку, якая была. Гэтае адрозненне таксама вызначае форму далейшых дзеянняў: праблема імёнаў выпраўляецца ў зоне, а праблема тыпу — запытам правільнага запісу або прызнаннем таго, што сямейства адрасоў проста адсутнічае.
Міф: адсутнае прыватнае імя азначае, што тунэль не спрацаваў
Міф жыве таму, што дзве падзеі так часта прыходзяць разам. Кліент падключаецца да VPN, аперацыйная сістэма пакідае рэзалвер, якому ўжо давярала, і ўнутранае імя, якое ёй цяпер патрэбна, запытваецца ў сервера, які ніколі не чуў пра прыватную зону. Гэты сервер адказвае сумленна і адмоўна. Тунэль нясе пакет; адказ проста пра прастору імёнаў, якой адказнік не абслугоўвае.
Канфігурацыі split-horizon робяць гэта звычайнай справай: адно і тое ж імя зоны існуе публічна і ўнутры з розным змесцівам, і толькі ўнутраны рэзалвер ведае прыватныя запісы. Таму атрыманне адмоўнага адказу, які выглядае аўтарытэтным, — гэта доказ пра тое, які рэзалвер адказаў, а не доказ пра стан інтэрфейса.
Вынік вызначаюць дзве дэталі канфігурацыі. Тунэль павінен праштурхоўваць або выбіраць унутраны рэзалвер, і кліент павінен ужыць гэты выбар да імя, якое шукаецца. Правіла для асобнага дамена, якое называе суфікс, трохі адрозны ад набранага вамі запісу, адправіць запыт на публічны шлях, і адказ будзе правільным і бескарысным.
Пытайце правільны рэзалвер з правільным імем
Запісвайце адказніка перад тым, як запісаць вердыкт. Запыт, які не паказвае, які сервер адказаў, не можа адрозніць праблему палітыкі ад праблемы прасторы імёнаў, а ў іх розныя выпраўленні.
resolvectl query vpn.internal.example
resolvectl status | grep -A3 'DNS Servers'
dig +search app.intranet.example A
dig @10.8.0.1 app.intranet.example A
Першыя два радкі паказваюць, што вырашыў лакальны рэзалвер і каго ён спытае. Запыт +search узгадвае тое, што робіць праграма, калі дадае пошукавы суфікс, што часта і ёсць сапраўдны запыт, а не той, што набраны ў дыягнастычным інструменце. Апошні радок пытае ўнутраны сервер напрамую, абыходзячы палітыку кліента; калі гэта ўдаецца, а звычайны запыт не, зона ў парадку, а маршрутызацыя запытаў — не.
Адмоўнае кэшаванне тлумачыць затрымку пасля выпраўлення
Адмоўныя адказы кэшуюцца па задуме, і RFC 2308 апісвае, як тэрмін жыцця адмоўнага кэша выводзіцца з запісу паўнамоцтваў зоны. Таму выпраўленне запісу або правіла рэзалвера не гарантуе неадкладнай змены на кліенце, а паўтор запыту, які ўвесь час вяртае закэшаваны адказ, нічога новага не даказвае. Толькі іншы адказнік, іншае імя або ачышчаны кэш даюць свежыя доказы.
Ачысціце лакальны кэш, потым паўтарыце той жа запыт да таго ж адказніка. На сістэмах з лакальнай службай рэзалвера гэта адна каманда; на іншых — перазапуск службы або ўтыліта платформы, і канкрэтны інструмент менш важны, чым паўторнае ідэнтычнае выпрабаванне пасля.
Аддзяліце імя ад шляху
Як толькі імя развязалася ў чаканы прыватны адрас, DNS як тэма скончаны, і наступным пытаннем становіцца шлях праграмы. Хост, які адказвае на запыты, але адмаўляе ў злучэнні, мае іншую праблему, і працяг наладжваць рэзалверы пасля правільнага адказу — гэта тое, як інцыдэнт набывае тры незвязаныя змены. Параўнайце развязаны адрас з тым, які служба фактычна слухае, перш чым лічыць, што яны супадаюць.
Захоўвайце стэнаграму: запыт, адказнік, код і развязаны адрас. Гэты запіс таксама робіць пазнейшую справаздачу праверальнай, і ён — розніца паміж дыягназам і гісторыяй пра тунэль, які здаваўся павольным.