🗂️
Домен

DNS зонасини экспорт ва импорт қилиш

08.11.2026
← Барча мақолалар

DNS зонаси доменингизга тегишли барча ёзувлар тўпламидир: сайт қайси IP манзилда тургани, почта қайси серверга бориши, SPF, DKIM ва DMARC ёзувлари, турли хизматлар учун тасдиқлаш кодлари. Бу ёзувлар одатда йиллар давомида аста-секин тўпланади ва уларнинг тўлиқ рўйхати ҳеч кимнинг қўлида бўлмайди. DNS бошқа провайдерга кўчирилганда ёки катта ўзгариш қилинганда битта унутилган ёзув почтанинг тўхташига ёки тўлов тизими билан интеграциянинг бузилишига олиб келиши мумкин. Шу сабабли зонани тўғри экспорт қилиш ва янги жойга хатосиз импорт қилиш муҳим кўникмадир.

Зона файли нимадан иборат

Зона файлининг стандарт кўриниши BIND формати деб аталади ва у деярли барча DNS дастурлари ва панеллари томонидан тушунилади. Файлда ҳар бир қатор битта ёзувни билдиради: ном, яшаш вақти (TTL), синф, тур ва қиймат. Бошида одатда $ORIGIN ва $TTL кўрсатмалари туради, кейин зонанинг асосий параметрларини сақловчи SOA ёзуви ва ном серверлари рўйхати келади.

$ORIGIN example.uz.
$TTL 3600
@        IN  SOA  ns1.provayder.uz. hostmaster.example.uz. (
                  2026110401 ; serial
                  3600       ; refresh
                  900        ; retry
                  1209600    ; expire
                  300 )      ; minimum
@        IN  NS     ns1.provayder.uz.
@        IN  NS     ns2.provayder.uz.
@        IN  A      203.0.113.10
www      IN  CNAME  example.uz.
@        IN  MX     10 mail.example.uz.
mail     IN  A      203.0.113.20
@        IN  TXT    "v=spf1 ip4:203.0.113.20 ~all"
_dmarc   IN  TXT    "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.uz"

Бу ерда @ белгиси доменнинг ўзини билдиради. Номлар охиридаги нуқтага алоҳида эътибор беринг: mail.example.uz. тўлиқ ном, нуқтасиз mail эса автоматик равишда $ORIGIN га қўшилади. Нуқтани унутиш энг кўп учрайдиган хатолардан бири бўлиб, натижада mail.example.uz.example.uz каби нотўғри ном ҳосил бўлади.

Зонани экспорт қилиш усуллари

Панел орқали экспорт

Кўпчилик DNS провайдерлари ва хостинг панелларида зонани файл кўринишида юклаб олиш имконияти бор. Бу энг ишончли усул, чунки файл тўлиқ бўлади ва сиз билмаган субдоменлар ҳам унга киради. Агар панелда бундай тугма бўлмаса, ёзувлар жадвалини тўлиқ кўчириб олиб, уларни юқоридаги форматда қўлда ёзиб чиқиш керак бўлади.

Зона узатиш (AXFR)

DNS'да бутун зонани бир сўров билан олиш учун AXFR механизми мавжуд. Лекин хавфсизлик сабабли деярли барча провайдерлар уни бегона манзиллар учун ёпиб қўяди, чунки очиқ AXFR ҳар кимга барча субдоменларингизни кўрсатади. Агар провайдер сизнинг IP манзилингизга рухсат берган бўлса, буйруқ қуйидагича бўлади:

dig AXFR example.uz @ns1.provayder.uz > example.uz.zone

Ёзувларни сўровлар билан йиғиш

Панел ҳам, AXFR ҳам бўлмаса, ёзувларни турлари бўйича алоҳида сўраш қолади. ANY туридаги сўровга бугунги кунда кўп серверлар тўлиқ жавоб бермайди, шунинг учун ҳар бир турни алоҳида сўраш керак. Бу усулнинг асосий камчилиги шундаки, сиз фақат номини биладиган ёзувларни топа оласиз. Шу сабабли DKIM селекторлари, _dmarc, autodiscover, тасдиқлаш ёзувлари каби номларни олдиндан рўйхатга олинг.

for t in A AAAA MX TXT CAA NS; do
  echo "== $t"; dig +noall +answer $t example.uz
done
dig +noall +answer TXT _dmarc.example.uz
dig +noall +answer TXT default._domainkey.example.uz
dig +noall +answer A www.example.uz

Файлни текшириш

Импорт қилишдан олдин зона файлини синтаксис хатоларига текшириш фойдали. BIND пакетидаги named-checkzone воситаси файлни ўқиб, хатолар ва нотўғри номларни кўрсатади. У Linux'да одатда bind9-utils ёки bind-utils пакети билан ўрнатилади.

named-checkzone example.uz example.uz.zone
# zone example.uz/IN: loaded serial 2026110401
# OK

Бундан ташқари файлни кўз билан ҳам кўриб чиқинг: узун DKIM калити бўлаклари тўғри бирлашганми, TXT қийматларидаги қўштирноқлар ёпилганми, доменнинг ўзи учун CNAME ёзуви йўқми. Домен илдизида CNAME стандарт бўйича тақиқланган, чунки у ерда SOA ва NS ёзувлари туради.

Янги жойга импорт қилиш

Импорт пайтида SOA ва NS ёзувларини эски файлдан кўчирманг. Улар янги провайдер томонидан автоматик яратилади ва янги ном серверларини кўрсатиши керак. Эски NS ёзувларини қолдирсангиз, зона ичида қарама-қарши маълумот пайдо бўлади. Қолган ёзувларни эса панелнинг импорт функцияси орқали ёки бирма-бир қўшинг. Импортдан кейин янги ном серверларини тўғридан-тўғри сўраб, натижани эскиси билан солиштиринг. Бу босқичда домен ҳали эски NS'да туради, шунинг учун сайт ва почта ишлашига ҳеч нарса таъсир қилмайди.

for t in A MX TXT; do
  diff <(dig +short $t example.uz @ns1.eski.uz | sort) \
       <(dig +short $t example.uz @ns1.yangi.uz | sort) && echo "$t: mos"
done

Кўчириш кунини режалаштириш

Ном серверларини алмаштиришдан бир-икки кун олдин эски зонадаги муҳим ёзувларнинг TTL қийматини, масалан, 300 сонияга туширинг. Шунда бирор хато чиқса, уни тузатиш тез тарқалади. Шуни ҳам билиш керакки, NS ёзувларининг ўзи домен зонасининг юқори даражасида сақланади ва уларнинг кеш муддати сизнинг TTL'ингизга боғлиқ эмас, шунинг учун тўлиқ ўтиш бир неча соатдан бир-икки кунгача чўзилиши мумкин. Агар доменда DNSSEC ёқилган бўлса, кўчиришдан олдин уни тўғри ўчириш ёки янги провайдер калитлари билан қайта созлаш шарт, акс ҳолда домен бутунлай очилмай қолиши мумкин.

Мисол: Бухородаги меҳмонхона

Бухородаги оилавий меҳмонхона сайтини ва почтасини янги хостингга кўчирмоқчи. Унинг зонасида сайт, почта, онлайн брон тизими учун субдомен, қидирув тизими тасдиқлаш ёзуви ва тўлов хизмати учун TXT код бор. Администратор эски панелдан зонани экспорт қилади, файлни named-checkzone билан текширади ва ундан SOA ҳамда NS ёзувларини олиб ташлаб, янги панелга импорт қилади. Кейин юқоридаги таққослаш скрипти билан эски ва янги серверлар бир хил жавоб бераётганини тасдиқлайди. Фақат шундан кейин ном серверлари алмаштирилади ва брон тизими ҳам, почта ҳам узилишсиз ишлашда давом этади.

sayt.uz кабинетидаги DNS бўлимида ёзувларни қўшиб бўлгач, уларни янги ном серверларига тўғридан-тўғри dig сўрови юбориб текшириш ва шундан кейингина домен созламаларида NS'ни ўзгартириш тавсия этилади.

Ўхшаш мақолалар

🏷️ BIMI: почтада компания логотипини кўрсатиш 📁 Компания домен портфелини бошқариш: тартиб, жавобгарлик ва назорат 🔍 NS ўзгартирилди, сайт очилмаяпти: текшириш рўйхати 🔑 DKIM калитини алмаштириш (ротация): қачон ва қандай
🌐 Тил
🇺🇿 O'zbek 🇺🇿 Ўзбек ✓ 🇷🇺 Русский 🇬🇧 English