DNS ක්‍රියාවලිය

  1. බ්‍රව්සරයේ address bar එක තුල අප විසින් http://blog.example.lk ලෙස වෙබ් ලිපිනය සඳහන් කරනවා.
    • දැන් මෙම ලිපිනය IP address එකක් බවට පත් කල යුතුයි. මේ සඳහා මුලින්ම සේවාග්‍රාහකයා (client) ළඟ තිබෙන ගොනුවේ (hosts ගොනුව) මෙම ඩොමේනය තිබෙනවාදැයි සොය බලනවා.
    • එම ඩොමේනය යටතේ ඇතුලත් කිරීම තිබෙනවානම් DNS සඳහා යොමු වෙන්නේ නැහැ.
    • එසේ නැතිනම් ඉන්පසුව DNS සඳහා යොමු වෙනවා.
  2. අපට අන්තර්ජාල සබඳතාවය ලබා දෙන සේවාදායකයා (ISP) මගින් එම සබඳතාවය සඳහා භාවිතා කල යුතු DNS සර්වරයේ IP address එක අපට ලබා දිය යුතුයි.
    • ඔබ සිටින්නේ LAN එකක් තුල නම් සාමාන්‍යයෙන් ඔබට එය තුල private static IP එකක් ලැබෙනවා. මෙම IP එක configure කරන විට අදාල DNS තොරතුරු ලබා දිය යුතුයි.
    • අපි සාමාන්‍යයෙන් භාවිතා කරන Broadband අන්තර්ජාල සේවාවන් වලදී අපට Static IP ලැබෙන්නේ නැහැ. අපට IP address එකක් ලැබෙන්නේ DHCP (Dynamic Host Configuration Protocol) නැමැති ක්‍රියාවලියක් තුලින්. සාමාන්‍යයෙන් කෙරෙන්නේ එලෙස dynamic IP address එකක් ලබා දෙන අවස්ථාවේදීම DNS IP address ද ඒ සමගම ලබා දීමයි.
  3. එසේ ලබා දී ඇති DNS සර්වරය වෙත මෙම ඩොමේනයේ IP address එක ඉල්ලා query එකක් සිදු කෙරෙනවා. මෙම request එක යැවෙන්නේ UDP හරහා (අපි සාමාන්‍ය HTTP request යවන්නේ TCP හරහා).
    • මේ යැවෙන request එක වර්ග දෙකකින් එකක් වෙන්න පුලුවන්.
      • Recursive
      • Iterative (Non recursive)
    • සාමාන්‍යයෙන් මෙතනදි යැවෙන්නේ recursive request එකක්.
  4. එම DNS සර්වරය example.lk (හෝ blog.example.lk සඳහා) authoritative නම් එය තුල මෙම ඩොමේනයට අදාල IP address එක තිබෙනවා. එම නිසා අදාල IP address එකට අදාල A Resource Record එක පිලිතුර වශයෙන් එවනවා (Resource Records පිළිබඳව පසුව සටහනකින් බලාපොරොත්තු වන්න). එවිට සේවාග්‍රාහකයාට පුලුවන් එමගින් IP address එක සොයාගෙන එම IP address එකට අවශ්‍ය request එක ඉදිරිපත් කරන්න (උදා: වෙබ් නම් GET හෝ POST ලෙස).
    • හුඟක් වෙලාවට වෙන්නේ මේ සර්වර් එක Caching සර්වර් එකක් වෙන එක. ඒකෙන් කරන්නේ තමන් දැනට කෑෂ් කර ගත්ත ඇතුලත් කර ගැනීම් වල මේ blog.example.lk IP address එක තියෙනවද කියලා බලන එක.
    • එහෙම ඇතුලත් කර ගැනීමක් කෑෂ් එකේ නැත්තන් ඊළඟට blog.example.lk සඳහා request එකක් root සර්වර් වෙතට යැවෙනවා. මේ root සර්වර් 13ම IP address DNS සර්වරයක තියෙනවා. මුලින්ම තියෙන address එකට request යැවෙනවා. ඒක වැඩ නැත්තන් ඊළඟ එක, ඔය විදියට තමයි root සර්වර සම්බන්ධ කර ගන්නේ.
    • මේ සම්බන්ධ කර ගැනීම හුඟක් වෙලාවට iterative වෙන්න පුලුවන්. නමුත් recursive විදියටත් සම්බන්ධ කර ගැනීම් සිදුවෙනවා.
  5. පිලිතුරු දෙන root සර්වරය ළඟ blog.example.lk වල IP address නැහැ (කෑෂ් කිරීම සිදු කරන්නේ නැත්තන්). ඒත් මම කලින් සඳහන් කලා වගේ root සර්වර් ලඟ තියෙනවා. Root සර්වර් සම්බන්ධතාවය recursive නම් root සර්වරය විසින්ම .lk DNS සර්වරය සම්බන්ධ කර ගැනීම සිදු කරනවා. සම්බන්ධතාවය iterative නම් අදාල .lk DNS සර්වර්යේ IP address එක පිලිතුර ලෙස එවනවා. එවිට ඒ සර්වරයට request යවන්න ඕනෙ DNS caching සර්වරය මගින්.
  6. .lk සර්වරය මගින් example.lk හි IP address එක එවනවා.
  7. example.lk සර්වරය සම්බන්ධ කර ගැනීම මගින් blog.example.lk හි IP address එක ලබාගන්නවා. මෙය බොහෝ වෙලාවට example.lk හි IP address එකම තමයි.
  8. Caching සර්වරය මගින් මේ IP address එක අපේ පරිගණකය වෙත එවනවා. ඉන්පසුව තමයි බ්‍රව්සරය මගින් ඒ IP address එකේ port 80ට (වෙනත් port එක යොදා ඇත්නම් ඒකට) HTTP GET request එකක් යවන්නේ.

අන්තර්ජාලයේ සිදුවන DNS traffic වලින් 95%ටත් වඩා තියෙන්නේ UDP traffic. ඒ කියන්නේ වැඩිපුරම තියෙන්නෙ requests. පිලිතුර දීම් සිදුවෙන්නේ TCP හරහා.

සියළුම request යැවෙන්නේ http://blog.example.lk සඳහා නොවේ. ඒ වෙනුවට මේ ලිපිනයේ අගට තිතක් එකතු කරලා FQDN එක සඳහා request සිදු කෙරෙනවා (http://blog.exmaple.lk.). තිත සඳහා authoritative වෙන්නේ Root සර්වර්. ඒකයි හොයාගන්න බැරි වුනාම root සර්වර් වෙත request යැවෙන්නේ.

FQDN එක අපි සාමාන්‍යයෙන් ලිනක්ස් වලදි හඳුන්වන absolute path එක වගේ. තිත නොමැතිව තියෙන වෙබ් ලිපින හඳුන්වන්නේ relative domain names/Partially qualified domain names කියලා (මේ ගැන කියලා දුන්න අනුරංගට ස්තුතියි).

9 thoughts on “DNS ක්‍රියාවලිය

  1. URL Shorter එකේත් මේ කාරණාවලත් සම්බන්ධයක් නෑ නේද?

    URL Shorter Machines ගැන විස්තර දන්නවා නම් කියන්ඩකෝ‍ :)

    • මේ දේ එතනදි අදාල වෙනවා. නමුත් ඒ shortening වලට නෙවෙයි.

      මම හිතන්නේ එතනදි වෙන්නේ සරල database table එකක shortened URL < --> Long URL mapping එකක්. ඊට පස්සේ HTTP redirect එකක් යොදනවා ඇති.

  2. WebServer වල IP Address වෙනස් වෙන්නෙ නෑ නේද?
    එහෙනම් ISP ගාව cache උන IP Address එකක් සමහරක් විට ලෙඩ (Site, Update නොවීම වගේ) දෙන්නත්, ඒකට OpenDNS, GoogleDNS ​වගේ DNS සේවාවක් පාවිච්චි කරල විසදුමක් ගන්න පුළුවන් වෙන්නත්​ හේතුව මොකක්ද??

  3. මචන් මෙහෙම ප්‍රශ්නයක් තියෙනවා මේක virtual hosting නුත් අදාලවයි. අපි හිතමු name based virtual hosting කරලා තියෙනවා කියලා එතකොට අපි hosting server 1ක හොයාගන්න DNS පාවිච්චි කරාම naming server 1ක එවන්නෙ අදාල hosting සර්වරේ IP එක. එතකොට කොහොමද නිවැරදි site 1ක hosting server එක තොරලා බේරලා දෙන්න‍නෙ? DNS response එකක තව මොනවද තියෙන්නෙ හරියට අපේ ලිපිනය resolve කරන්න?

      • ආ හරි. ස්තූතියි. පොඩි පැටලිල්ලක්නෙ වෙලාතියෙන්නෙ :D

  4. මුලින්ම කියන්න ඕන වැ‍ඩේ එල, තැන්කූ. මචන් මෙහෙම ප්‍රශ්නයක් තියෙනවා මේක virtual hosting නුත් අදාලවයි. අපි හිතමු name based virtual hosting කරලා තියෙනවා කියලා එතකොට අපි hosting server 1ක හොයාගන්න DNS පාවිච්චි කරාම naming server 1ක එවන්නෙ අදාල hosting සර්වරේ IP එක. එතකොට කොහොමද නිවැරදි site 1ක hosting server එක තොරලා බේරලා දෙන්න‍නෙ? DNS response එකක තව මොනවද තියෙන්නෙ හරියට අපේ ලිපිනය resolve කරන්න?

  5. Pingback: ඔබටත් ඇතැම් වෙබ් අඩවි දිස්වන්නේ නැද්ද? | Col3Neg Movies – Blog