You are on page 1of 5

Ажлын зорилго

Лабораторийн ажил №3 DNS (Domain Name System)

Энэхүү лабораторийн ажлаар Домайн нэрийн системийн үйл ажилгаатай танилцаж, DNS
сервертэй хэрэглэгчийн төхөөрөмж хэрхэн харилцаж байгааг судална.
Үндсэн ойлголт
Domain Name System (DNS) буюу домайн нэрийн систем нь хостийн нэрийг интернэт
хаяг руу хөрвүүлэх үйлдлийг сүлжээний орчинд хийж гүйцэтгэдэг Интернэтийн гол функц юм.
Интернэт орчинд доорх DNS-тэй холбоотой нэршил, ойлголтууд байна.
• Domain name: домайн нэр гэдэг нь интернэт хаягт оноож өгсөн нэр юм.
• Hierarchical DNS servers: домайн нэрийг олон тоогоор оновчтой бөгөөд энгийн зохион
байгуулахын тулд шатлах буюу мод хэлбэрийн бүтэц үүсгэснийг хэлнэ.
• Name server (NS): домайн нэрийн талаарх мэдээллийг тодорхой бүтцэд оруулж
хадгалдаг сервер юм. Өөрөөр хэлбэл records-уудыг хадгалдаг серверийг хэлнэ.
• DNS caching: Энэхүү кешд хэрэглэгчийн хүсэлтэд хариулсан мэдээллүүдийг хадгална.
Хэрэглэгчийн төхөөрөмж Hosts гэсэн файлд серверээс хүлээн авсан хариултуудыг,
DNS сервер өөрийн кеш санд бусад серверээс ирсэн домайн нэртэй холбоотой
мэдээллүүдийг кеш буюу түр хадгалах үйлдэл хийнэ. Дахин давтагдсан хүсэлтэд
тухайн кешийг ашиглаж хариу өгнө.
• Records: домайн нэрийн хадгалах бүтцийг хэлнэ. Record нь name, value, type, ttl гэсэн
дөрвөн хэсгээс бүрдэнэ.
• DNS messages: хэрэглэгчийн төхөөрөмж нь NS-тэй домайн нэрийн талаар мэдээлэл
авах зорилгоор солилцож байгаа мессежүүдийг хэлнэ. Query, response
• DNS name resolution: Хэрэглэгчийн хүсэлтэд хариулахын тулд дотоод сүлжээ дэх DNS
сервер шаталсан бүтцийн бусад сервертэй хэрхэн харилцаж байгааг илэрхийлнэ.
Хүсэлтэд хариулж байгаа хэлбэрээр нь recursive болон iterated гэсэн 2 төрөлд хуваана.
Туршилт болон гүйцэтгэх даалгавраа эхлэхээс өмнө “Computer Networking: A top-down
approach” номын 2.4-р хэсгээс local DNS, DNS caching, DNS records, DNS messages зэргийн
талаар дэлгэрүүлж уншаарай.
Туршилт
Туршилтад бид хэрэглэгч талаас DNS хэрхэн ажиллаж байгааг судална. Энгийнээр
хэрэглэгч нь DNS сервер рүү хүсэлт илгээж хариултыг хүлээн үйл ажиллагааг судална.
Ингэхдээ бид хэд хэдэн командууд ба тэдгээрийн цаана ажиллах DNS сервертэй холбогдоход
ашиглагддаг түүлүүдийн ажиллагаатай танилцана.
• nslookup
Бидний хамгийн эхэлж турших түүл бол nslookup юм. Энэ түүлийг бид аливаа үйлдлийн
систем (Linux/Windows)-ийн командын мөр дээр ажиллуулж болно. Энэхүү nslookup түүлийг
DNS серверээс дурын домайн нэрийг талаар мэдээлэл авах зорилгоор хүсэлт илгээх (query)-д
ашиглана.

Өөрөөр хэлбэл бид NS сервер дээр хадгалагдаж байгаа records-оос тухайн домайн нэртэй
холбоотой мэдээллийг авахаар тусгайлсан query-ийг илгээнэ. Мөн энэхүү түүлийг ашиглан бид
шаталсан бүтцийн аль ч түвшинд ажиллаж байгаа NS сервер рүү хүсэлт илгээх боломжтой юм.
Жишээ болгож Windows үйлдлийн системийн Command Prompt дээр nslookup командыг
ашиглан
www.num.edu.mn HYPERLINK "http://www.num.edu.mn/" HYPERLINK "http://www.num.edu.mn/"
HYPERLINK "http://www.num.edu.mn/" гэсэн домайн нэрийн талаарх мэдээллийг харуулав (Зураг 1).

Дээрх дэлгэцийн агшинг буулгасан Зураг 1-д бид “nslookup www.num.edu.mn” командын үр дүнг
харж байна. Үр дүнгээс харвал дотоод сүлжээний 10.0.80.8 гэсэн хаяг бүхий ad1.num.edu.mn
гэсэн NS-ээс www.num.edu.mn домайн нэрт харгалзах интернэт хаягийг хариултад авсан байна.
“nslookup www.num.edu.mn” гэсэн команд нь дараах байдлаар тайлбарлагдана. Nslookup
командад www.num.edu.mn гэсэн домайн нэрийг утга болгон өгсөн учир (1) default буюу
хэрэглэгчийн төхөөрөмжийн IP хаягийн тохиргоонд байгаа DNS сервер рүү хүсэлт илгээнэ, (2)
домайн нэр өгөгдсөн учир харгалзах хаягийг олж авах зорилготой хүсэлт илгээнэ.
Хэрэв бид командыг илүү нарийвчлан “nslookup -type=NS num.edu.mn” байдлаар өгвөл NS
сервер дээр байгаа records-уудаас NS төрлийн талаарх мэдээлэл авах хүсэлт илгээнэ. Хариултыг
Зураг 2- дах үр дүнгээс харж болно. Зураг 2-д дээрх командын дагуу хүсэлтийг илгээхэд дотоод
NS-ээс www.num.edu.mn гэсэн домайнтай холбоотой NS төрлийн 2 record буюу мэдээлэл,
тэдгээрийн IP хаягуудыг хамт ирүүлсэн байна.

Одоо default DNS-ээс өөр сервер рүү хүсэлт илгээж үзье. МУИС-ийн дотоод сүлжээнд
холбогдсон үедээ “nslookup google.com 10.0.80.10” гэж команд бичье. Үр дүнд (Зураг 3) нь
10.0.80.10 гэсэн IP хаягтай NS сервер рүү “www.google.com” гэсэн домайн нэрт харгалзах IP
хаягийн талаар мэдээлэл авах хүсэлт илгээж хариуг авах болно.

Дараах дүрмийн дагуу nslookup командыг бид хэрэглэнэ.


nslookup -option1 -option2 host-to-find dns-server
-option1 ба -option2 гэсэн хэсгүүдэд боломжит сонголтуудаас хэрэглэнэ.
host-to-find гэсэн хэсэгт хайх гэж байгаа домайн нэрийг өгнө.
dns-server гэсэн хэсэгт хүсэлтээ илгээх NS серверийн IP хаяг эсвэл домайн
нэрийг өгнө.
Мөн nslookup IP_address гэж хэрэглэвэл тухайн IP хаягт харгалзах үндсэн домайн нэрийг DNS
сервер хариу болгон илгээдэг.

ipconfig
Энэхүү түүлийн тусламжтайгаар бид өөрийн компьютер (хост)-ийн сүлжээний
тохиргоог шалгах, өөрчлөх зэрэг үйлдлийг хийдэг. Windows үйлдлийн системд ipconfig гэж
хэрэглэх бол Linux үйлдлийн системд ifconfig гэж хэрэглэнэ. Командын мөрнөөс ipconfig
командыг өгвөл хостын TCP/IP-ийн талаарх мэдээлэл дэлгэцэд гарна. Мөн /all гэсэн сонголтын
хамт ашиглавал сүлжээний бүх тохиргоог дэлгэцэнд үзүүлнэ (Зураг 4).

Харин DNS-тэй холбоотой ашиглагддаг сонголтууд бол /displaydns болон /flushdns юм.
• Displaydns нь тухайн төхөөрөмж дээр кеш хийгдсэн байгаа records-уудыг хэдий
хугацааны дараа шинэчлэх талаарх TTL мэдээллийн хамт үзүүлнэ.
• Flushdns бол кешийг цэвэрлэх үйлдэл хийнэ.

Wireshark DNS tracing


Wireshark програмын тусламжтайгаар бид домайн нэр, түүнтэй холбоотой мессежүүд
хэрхэн дамжиж байгааг харж болно. Ингэхийн тулд доорх алхмуудыг хийх шаардлагатай.
• Ipconfig /flsuhdns гэсэн команд ашиглаж өөрийн төхөөрөмж дээрх кешийг цэвэрлэнэ.
Ингэснээр домайн нэрийн хүсэлтийг серверээс авах боломжтой болно.
• Ашигладаг интернэт хөтчийнхөө DNS кешийг цэвэрлэх хэрэгтэй. Жишээ нь Chrome
хөтчийн URL бичдэг талбарт chrome://net-internals/#dns гэж бичээд Go дарахад гарч
ирэх Clear host cache товчлуур ашиглана.
• Wireshark програмаа нээж “ip.addr==your_IP_address” сонголт өгөөд шүүлтүүрийг
ажиллуулна. your_IP_address -ийн оронд ipconfig командын үр дүнд гарч ирсэн өөрийн
төхөөрөмжийн IP хаягийг бичнэ.
• Wireshark програмын CAPTURE-ийг идэвхжүүлнэ. Ингэснээр зааж өгсөн IP хаяг бүхий
сүлжээний картаар дамжиж байгаа бүх мессежүүдийг Wireshark програм барьж эхэлнэ.
• Дараа нь интернэт хөтчөө нээгээд http://www.ietf.org HYPERLINK "http://www.ietf.org/"
HYPERLINK "http://www.ietf.org/" HYPERLINK "http://www.ietf.org/" гэсэн веб хуудсанд
хандаарай.
• Веб хуудас бүрэн ачаалж дууссаны дараа Wireshark-ын CAPTURE-ийг зогсооно. Хэрэв
энэ үйлдлийг хийхгүй бол дараагийн бүх үйлдлүүдийг бичсээр байх бөгөөд хэт их
мэдээлэл цугларах эрсдэлтэй.
Дээрх үйлдлүүдийг хийж гүйцэтгэснээр зааж өгсөн веб рүү хандах үед хэрэглэгчийн
төхөөрөмж, DNS сервер болон веб сервер хооронд солилцсон мессежүүдийн цуглуулгатай
болно. Мөн энэхүү цуглуулсан мэдээллээ хадгалах, зөөх зэрэг үйлдэл хийж болно.

Даалгавар
• nslookup
• nslookup -ийг ашиглаж дараах веб серверийн IP хаяг, домайн нэрийг олоорой. Мөн
дурын 2 веб домайны нэр, IP хаягийг олж бөглөөрэй.

Вебийн домайн нэр IP хаяг Хариулт өгсөн NS сервер


www.facebook.com 157.240.7.35
www.utoronto.ca 23.185.0.1
www.wikipedia.org 103.102.166.224
www.microsoft.com 23.219.73.192
www.googleusercontent.com 35.186.224.25
alpha.gogo.mn 202.131.225.29
www.instagram.com 163.70.159.174
www.unitel.mn 202.70.46.254

• www.yahoo.com HYPERLINK "http://www.www.netflix.com/" HYPERLINK


"http://www.www.netflix.com/" HYPERLINK "http://www.www.netflix.com/" гэсэн домайнтай
холбоотой мэдээллүүдийг авч доорх хүснэгтийг бөглө.
Record-ийн төрөл IP хаяг эсвэл сервер нэр Хариулт өгсөн NS сервер
MX
NS
A
AAAA
CNAME

Wireshark DNS
Одоо nslookup болон ipconfig ашиглан Wireshark програм дээр DNS-ийн бүтцийг судлах
болно. Хост дээрээ DNS кэшийг устгахын тулд ipconfig ашиглан устга. Хөтөчөө нээгээд
хөтөчийнхөө кэшийг устга. Wireshark-ыг нээгээд шүүлтүүрт “ip.addr == өөрийн ip хаяг”
өөрийн_IP_хаяг оруулж (ашиглаж буй компьютерийн IP хаяг) зөвхөн өөрийн DNS-ийн request
болон response мессежийг хар. Wireshark дээр пакет барьж эхлээрэй. Хөтөчийнхөө
тусламжтайгаар Вэб хуудас руу ханд: http://www.ietf.org. Урсгалыг цуглуулахаа зогсоож дараах
асуултад хариулна уу.
• DNS query болон response мессежийг ол. UDP эсвэл TCP-ээр дамжуулсан уу?
• DNS query мессежийг хүлээн авах порт нь юу вэ? DNS response-ийн source порт юу вэ?
• DNS query мессежийг ямар IP хаяг руу илгээсэн бэ? Local DNS серверийн IP
хаягийг тодорхойлохдоо ipconfig ашигла. Энэ хоёр IP хаяг ижил байна уу?
• DNS query мессежийг шалгана уу. DNS query ямар “төрөл” вэ? Response мессежэнд
"хариултууд" байна уу?
• DNS response мэдэгдлийг шалга. Хэдэн "хариулт" өгсөн бэ? Эдгээр хариулт бүр нь
юу агуулдаг вэ?
• Таны хостын илгээсэн дараагийн TCP SYN пакетыг харъя. SYN segment-ийн очих IP
хаяг нь DNS хариу мессежэнд өгөгдсөн IP хаягуудын аль нэгтэй таарч байна уу?
• Дээрх вэб хуудас нь зураг агуулжээ. Зураг бүрийг авахаасаа өмнө таны хост шинэ
DNS query явуулдаг уу?

Сорих асуулт
• DNS протокол гарч ирсэн гол зорилго юу вэ?
• DNS server-үүдийн бүтцийн талаар тайлбарла.
• DNS caching гэж юу вэ?
• Primary DNS болон Secondary DNS хоорондын ялгааг тайлбарла.
• PTR гэж юу вэ?
• TLD болон SLD -ний ялгааг тайлбарла.
• DNS Resource Record-ийг юунд ашигладаг вэ?
• Local DNS сервер нь ямар үүрэгтэй вэ?
• Authoritative болон non-authoratitive answer-уудын ялгааг тайлбарла.

You might also like