Сайт очилмаяпти, почта келмаяпти ёки янги DNS ёзуви «ҳали ишламаяпти» деган шикоят чиққанда, биринчи савол доим бир хил: домен ҳозир аслида нимани кўрсатяпти? Бу саволга тахмин билан эмас, аниқ жавоб билан жавоб бериш учун иккита классик восита бор: dig ва nslookup. Улар тўғридан-тўғри DNS серверга сўров юборади ва жавобни ҳеч қандай безаксиз кўрсатади. Бу мақолада иккала воситадан амалда қандай фойдаланиш, жавобни қандай ўқиш ва энг кўп учрайдиган муаммоларни қандай аниқлашни кўриб чиқамиз.
Воситаларни қаердан олиш мумкин
nslookup Windows, macOS ва кўпчилик Linux тизимларида олдиндан ўрнатилган бўлади, шунинг учун у тезкор текширув учун қулай. dig эса macOS'да тайёр ҳолда келади, Linux'да эса кўпинча алоҳида пакет сифатида ўрнатилади. Windows фойдаланувчилари dig'ни BIND пакетининг Windows версияси таркибида ёки WSL (Windows ичидаги Linux муҳити) орқали ишлатиши мумкин:
# Debian / Ubuntu
sudo apt install dnsutils
# RHEL / AlmaLinux / Rocky
sudo dnf install bind-utils
Иккала восита ҳам бир хил ишни бажаради, лекин dig жавобни тўлиқроқ ва тузилмали кўрсатади, шу сабабли администраторлар уни афзал кўради. nslookup эса оддий, Windows'да ҳамма жойда мавжуд ва мижоз компьютерида тезда ниманидир текшириш керак бўлганда жуда қўл келади.
dig билан биринчи сўров ва жавобни ўқиш
Энг оддий сўров домен номи ва ёзув туридан иборат. Агар тур кўрсатилмаса, dig А ёзувини сўрайди. Қуйидаги чиқишда жавобнинг асосий қисмлари кўринади:
; <<>> DiG 9.18.28 <<>> sizningdomen.uz A
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41872
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;sizningdomen.uz. IN A
;; ANSWER SECTION:
sizningdomen.uz. 3600 IN A 203.0.113.10
;; Query time: 24 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
Бу ерда энг муҳим қаторлар учта. status сўров натижасини билдиради: NOERROR ҳаммаси жойида дегани, NXDOMAIN бундай ном мавжуд эмаслигини, SERVFAIL эса сервер жавоб бера олмаганини англатади. ANSWER SECTION қисмида ёзувнинг ўзи туради ва иккинчи устундаги рақам (бу мисолда 3600) TTL, яъни жавоб неча сония кешда сақланишини кўрсатади. SERVER қатори эса жавоб қайси DNS сервердан келганини билдиради, бу ерда у уйдаги роутер.
flags қаторига ҳам эътибор беринг. qr бу жавоб эканини, rd ва ra рекурсия сўралгани ва рухсат этилганини билдиради. Агар сўров тўғридан-тўғри доменнинг ўз неймсерверига юборилса, жавобда aa (authoritative answer) байроғи пайдо бўлади. Бу жавоб кешдан эмас, балки зона эгасининг серверидан келганини тасдиқлайди.
Кундалик ишда керак бўладиган dig буйруқлари
Амалда кўпинча тўлиқ чиқиш керак бўлмайди ва +short параметри фақат натижанинг ўзини қайтаради. Қуйидаги буйруқлар тўплами домен бўйича деярли барча саволларни ёпади:
dig sizningdomen.uz A +short
dig sizningdomen.uz AAAA +short
dig www.sizningdomen.uz CNAME +short
dig sizningdomen.uz MX +short
dig sizningdomen.uz TXT +short
dig sizningdomen.uz NS +short
dig sizningdomen.uz SOA +short
dig -x 203.0.113.10 +short
Охирги буйруқ тескари сўров (PTR) бўлиб, IP манзилга қайси ном бириктирилганини кўрсатади. Бу айниқса почта серверларини текширишда муҳим, чунки кўплаб қабул қилувчи серверлар юборувчи IP нинг PTR ёзувига қарайди. Чиқишни қисқа, лекин TTL билан кўрмоқчи бўлсангиз, +noall +answer жуфтлигидан фойдаланинг.
Муайян сервердан сўраш ва занжирни кузатиш
Стандарт ҳолатда dig тизим резолверидан фойдаланади, аммо @ белгиси билан исталган серверни кўрсатиш мумкин. Бу турли резолверларнинг жавобларини солиштириш ёки ўзгариш доменнинг неймсерверида аллақачон борлигини текшириш учун зарур. +trace эса сўровни илдиз серверларидан бошлаб, .uz зонаси орқали доменнинг неймсерверигача босқичма-босқич кузатади ва делегация қаерда узилаётганини кўрсатади:
dig @8.8.8.8 sizningdomen.uz A +short
dig @1.1.1.1 sizningdomen.uz A +short
dig NS sizningdomen.uz +short
dig @<nameserver-nomi> sizningdomen.uz A +norec
dig +trace sizningdomen.uz
nslookup: Windows'даги тезкор ёрдамчи
nslookup'нинг синтаксиси бироз бошқача: ёзув тури -type= параметри билан берилади, сервер эса домен номидан кейин ёзилади. Жавобда «Non-authoritative answer» деган ёзув чиқса, бу хато эмас, шунчаки жавоб резолвер кешидан келганини билдиради:
nslookup sizningdomen.uz
nslookup -type=mx sizningdomen.uz
nslookup -type=txt sizningdomen.uz
nslookup -type=ns sizningdomen.uz
nslookup sizningdomen.uz 8.8.8.8
nslookup интерактив режимда ҳам ишлайди: буйруқни аргументларсиз ишга туширасиз ва кейин бир нечта сўровни кетма-кет ёзасиз. Бу бир доменнинг турли ёзувларини кетма-кет текширишда қулай:
nslookup
> set type=mx
> sizningdomen.uz
> set type=txt
> sizningdomen.uz
> exit
Амалий мисол: мактаб сайтига почта келмаяпти
Тошкентдаги хусусий мактаб ўз доменига корпоратив почта улаган, лекин ота-оналарнинг хатлари етиб келмаяпти. Администратор аввал dig sizningdomen.uz MX +short буйруғини бажаради ва MX ёзуви эски почта хизматини кўрсатиб турганини кўради: почта хизмати алмаштирилган, DNS эса янгиланмаган. MX тузатилгач, dig sizningdomen.uz TXT +short билан SPF ёзувини текширади ва унда янги почта сервери йўқлигини аниқлайди. Иккала ёзув тўғрилангач, администратор ўзгаришни аввал доменнинг неймсерверидан, кейин оммавий резолверлардан сўраб, янги қийматлар ҳамма жойда кўринишини кузатади.
Натижаларни қандай талқин қилиш керак
Агар доменнинг неймсервери янги қийматни қайтарса-ю, оммавий резолвер эскисини кўрсатса, сабаб кешда: TTL тугашини кутиш кифоя ва ҳеч нарсани қайта ўзгартириш шарт эмас. Агар неймсервернинг ўзи ҳам эски қийматни берса, демак ўзгариш сақланмаган ёки нотўғри зонага киритилган. NXDOMAIN жавоби домен номи хато ёзилганини ёки домен делегация қилинмаганини, масалан муддати тугаганини кўрсатиши мумкин.
SERVFAIL кўпинча неймсервер жавоб бермаётганини ёки DNSSEC имзоларида муаммо борлигини билдиради. DNSSEC'га боғлиқлигини текшириш учун сўровга +cd параметрини қўшиб кўринг: у билан жавоб келса, муаммо имзо текширувида. Бундай ҳолатда домен созламаларидаги DS ёзуви ва зонадаги калитлар мослигини кўриб чиқиш керак. sayt.uz мижозлари DNS ёзувларини кабинет орқали таҳрирлайди ва юқоридаги буйруқлар ҳар бир ўзгаришдан кейин натижани мустақил текшириш имконини беради.