Welcome to Devinda's Blogspot

Saturday, May 8, 2010

DNS ගැන කතා

ජාලකරණය පිළිබඳ යම් අදහසක් ඇති කෙනෙක් IP address එකක් කියන්නේ මොකද්ද කියලා දන්නවා. IP address එකක් කියන්නේ සාමාන්‍ය ලෝකෙදි නිවසකට තියෙන ලිපිනයක් වගේම තමයි. ජාලය තුල තියෙන පරිගණකයක් (වඩාත් නිවැරදිව කියනවානම් NIC එකක්) අනන්‍යව හඳුනාගැනීමට යොදාගන්නේ IP address එක.

අන්තර්ජාල භාවිතය තුල IP address වැදගත් වෙන්නෙ ඉහත කියපු දේට. අන්තර්ජාලය තුල ඇති පරිගණක අනන්‍ය වූ විදියට හඳුනාගැනීමට (NATting, Proxy, Shared Hosting වගේ කාරණා නිසා මේ කියන තරම් ම මේක සරල නෑ). අපි වෙබ් අඩවියකට යනවා කියන්නේ අන්තර්ජාලය තුල පිහිටුවලා තියෙන පරිගණකයකින් වෙබ් සේවාවක් ඉල්ලනවා කියන එක. මේ සේවාවට අපිට අවශ්‍ය දත්ත දෙකක් තියෙනවා.

  • අදාල වෙබ් සර්වරයේ IP address එක
  • අදාල වෙබ් සේවාව ක්‍රියාත්මක වෙන Port එක (මේක සම්මතයක් විදියට 80 ලෙස සැලකෙනවා. නමුත් වෙනස් වීමට කිසිදු සීමාවක් නෑ)

නමුත් අපි කවදාවත් IP address එකක් ටයිප් කරලා වෙබ් අඩවියකට යන්නේ නැහැ. අපි IP address වෙනුවට භාවිතා කරන්නේ ඩොමේන් නාම. බ්‍රව්සරයේ http://wordpress.com ලෙස ටයිප් කරනවා මිසක් http://74.200.247.60 ලෙස ටයිප් කරන්නේ නැහැ. ඇත්තටම ඩොමේන් නාම භාවිතා වෙන්නේ මේ හේතුව නිසා. අපිට wordpress.com කියන එක මතක තබාගෙන භාවිත කරන්න පහසුයි අංක ටිකකට වඩා.

නමුත් ඩොමේන් නාමයක් යොදාගෙන පරිගණකයකට කතා කරන්න බැහැ. එයට IP address අවශ්‍යමයි. එසේනම් කවුරුන් හෝ අප මේ ඇතුලත් කරන ඩොමේන් නාමය IP address බවට පරිවර්තනය කල යුතුයි. මේ ක්‍රියාවලිය ක්‍රම දෙකකින් සිදු වෙන්න පුලුවන්.

  • ඩොමේන් නාමයට අදාල IP address එක සම්බන්ධ කරපු ගොනුවක් අපගේ පරිගණකයේ තබාගෙන ඒ ගොනුව ආශ්‍රයෙන් ඩොමේන් නාමය -> IP address කල හැකියි.
    • ලිනක්ස් පද්ධති තුලදී මෙම ගොනුව තියෙන්නේ /etc/hosts ලෙසට
    • වින්ඩෝස් තුලදී මෙය ඇත්තේ c:\Windows\System32\drivers\etc\hosts ලෙසට
  • වෙනත් සර්වරයක් මගින් එවැනි ගොනුවක් කළමනාකරණය කර ගනිමින් අප ඉල්ලූ විට අපට IP address ලබා දිය හැකියි.
    • DNS – Domain Name Service/Server ලෙස හැඳින්වෙන්නේ මෙයයි.

අන්තර්ජාලයේ කොඳුනාරටිය විදියට ඩොමේන නාම සේවාව (Domain Name Service) හැඳින්වීමට පුලුවන්. මෙම සේවාව නොමැති වූවොත් ඕනෑම අන්තර්ජාල සේවාවක් (වෙබ්, ඊමේල්, චැට් ආදී) ලබා ගැනීමට IP address මතක තබාගැනීමට සිදු වෙනවා. Shared Server වලින් දැනට අපට ලැබෙන ලාබ දායි සේවාවත් නැතිවී යන්න පුලුවන් (Name Based Virtual Hosting සඳහා DNS අවශ්‍යයි).

Root සර්වර්

DNS පද්ධතිය තියෙන්නේ hierarchical ආකාරයකට. ඒ කියන්නේ එක මූලයකින් බෙදි බෙදී පහළට යන ධුරාවලියක් විදියට. ඇත්තටම මේ පද්ධතියේ එක මූලයක් වෙනුවට මූලයේ කොටස් 13ක් තිබෙනවා. මේවා හැඳින්වෙන්නේ Root server විදියට. මේ 13 පිළිවෙලින් A සිට M දක්වා නම් කර තිබෙනවා.

Root සර්වර් 13ක් වෙන්නේ මුලින් UDP වල තිබුන පොඩි අකාර්යක්ෂමතාවයක් නිසා. UDP packet එකක දිග බයිට් 512 වඩා අඩු වෙන්න ඕනෙ කියන අවශ්‍යතාවය නිසා පවත්වාගෙන යන්න පුලුවන් Root සර්වර් ප්‍රමාණය 13ට සීමා වුනා. හැබැයි දැන් මෙම සර්වර් 13ට වඩා තියෙනවා. ඒත් ඒ තියෙන්නේ anycast කරපු ආකාරයට. ඒ කියන්නේ තවමත් Root සර්වර් IP තියෙන්නේ 13යි. නමුත් සමහර Root සර්වර් mirror කිරීම මගින් ලෝකය පුරා බෙදා හැරලා තියෙනවා. එකක් අකර්මණ්‍ය වුනොත් අනිත් ඒවගෙන් වැඩ කරගෙන යන්න පුලුවන් විදියට. මෙයින් mirror කරපු Root සර්වරයක් ලංකාවෙත් තිබෙනවා.

Root සර්වර් ගැන වැඩිදුර විස්තර දැන ගන්න මේ වෙබ් අඩවියට ගිහින් බලන්න.

Root සර්වරයට තියෙන හඳුනා ගැනීම වෙන්නේ “.” හෙවත් තිත. සාමාන්‍යයෙන් ඩොමේනයක Fully Qualified Domain Name (FQDN) යනුවෙන් හඳුන්වන්නේ මෙම තිතත් එක්කම තියෙන ඩොමේන නාමය.

උදා: http://chamiladealwis.com. (තිත අන්තිමටම)

මෙම Root සර්වරයන් තුල සියළුම Top Level Domain (TLD) සඳහා DNS සර්වරයන්ගේ IP address සටහන් වී තිබෙනවා. ඒ නිසා ඕනෑම කෙනෙකුට Root සර්වරයකින් අදාල TLD එකක IP address එක සොයාගත හැකියි. TLD වර්ග දෙකක් තිබෙනවා.

  1. gTLD – Generic TLD
    • .com
    • .org
    • .info
    • .gov
    • .biz
    • .aero ආදී වශයෙන්
  2. ccTLD – Country Code TLD
    • .lk
    • .in
    • .jp
    • .ly ආදී වශයෙන් රටවල් වලට ලබා දී ඇති ඩොමේන නාම

මේ එක් එක් TLD යටතේ අප සාමාන්‍යයෙන් දන්නා ඩොමේන ක්‍රියාත්මක වනවා.

උදා:

  • google.com
  • amazon.com
  • ac.lk
  • digit.lk
  • bit.ly (අහලා පුරුදුයි වගේ නේ)
  • wordpress.org
  • blogger.com

මේ නිසා අපට Root සර්වරයකින් ඇහුවොත් ac.lk හි IP address එක, එය එතනින් ලබා ගන්න බැහැ. ඒ වෙනුවට Root සර්වරය විසින් අපව .lk DNS සර්වරය වෙත යැවෙනවා. එතනින් අපට ලබා ගන්න පුලුවන් ac.lk සඳහා IP address එක.

මෙම ඩොමේන යටතේ උප ඩොමේන (sub domain) පවතින්න පුලුවන්. උදාහරණයකට cmb.ac.lk කියන්නේ කොළඹ විශ්ව විද්‍යාලයට ලබා දී තිබෙන උප ඩොමේනය. cmb.ac.lk සඳහා IP address ලබා ගන්න ඕනෙ කාගෙන් ද?

Zones සහ ඩොමේන

මෙම Root Server යටතේ විවිධ zone අර්ථ දක්වා තිබෙනවා. සාමාන්‍යයෙන් එක zone එකක් පාලනය කරන්නේ එක DNS සර්වරයක් මගින්. එක් zone එකක් තුල එකක් හෝ වැඩි ගණනක ඩොමේන තිබෙන්නට පුලුවන්. මෙය ටිකක් පැටලිලි සහගතයි.

(පින්තූරය ගත්තේ Wikipedia වලින්)

කළු ඉරකින් වට කර දක්වා තියෙන්නේ Zones. එක Zone එකක් දුවන්නේ එක DNS සර්වරයකින්. එකම DNS සර්වරයකින් ඩොමේන කිහිපයක් දුවවන්න පුලුවන්. ඉහත රූපයේ .org ඩොමේනය යටතේ තිබන සියළුම ඩොමේන දුවවන්නේ එකම Zone එකක් තුල නිසා එකDNS සර්වරයකින් (සැබෑ ලෝකයේදී මෙය මෙසේ නොවිය යුතුයි).

DNS සර්වර් වර්ග

ප්‍රධාන වශයෙන් DNS සර්වර් වර්ග දෙකකට බෙදන්න පුලුවන්.

Authoritative Server

DNS සර්වරයක් මේ වර්ගයට අයිති වෙන්නේ එය යටතේ තියෙන ඩොමේන සඳහා පිළිතුරු ලබා දීමට හැකි නම් විතරයි. ඒ කියන්නේ ඒ සර්වරය තුලින් ලබා දෙන පිළිතුරු නිපදවන්නේ එය තුලමයි. හැම zone එකකටම අනිවාර්යයෙන් authoritative DNS සර්වරයක් තිබිය යුතුයි. අදාල zone එකේ ඩොමේන පිලිබඳ තොරතුරු A RR විදියට ගබඩා කර ගැනීම එය විසින් සිදු කරන්න ඕනෙ. ඊට අමතරව එම zone එක තුල zone එකක් වෙනත් Name සර්වරයකට delegate කර ඇත්නම් ඒ Name සර්වර ඇතුලත් කිරීම් ගබඩා කරගන්නත් ඕනෙ.

මෙම සර්වර වර්ග දෙකක් තියෙනවා.

  1. Primary DNS

    • මෙය තමයි ප්‍රධාන DNS සර්වරය. DNS ඇතුලත් කිරීම් අලුතින් සිදු කරන්නෙත්, වෙනස් කම් කරන්නෙත්, මකා දැමීම් කරන්නෙත් මෙය තුල. ක්‍රියාත්මක වන අවස්ථාවලදී query සඳහා පිලිතුරු දෙන්නේ මෙය විසින්.
  2. Secondary DNS

    • මේ සර්වරය තියෙන්නේ Primary සර්වරයට අමතර දෙයක් විදියට. මෙහි කිසිම වෙනස්කමක් අපි සිදු කරන්නේ නැහැ. එය කරන්නේ කාලයෙන් කාලයට Primary DNS සර්වරයෙන් zone transfer ක්‍රියාවලිය මගින් DNS ඇතුලත් කිරීම් පිටපත් කර ගැනීම.
    • DNS සේවාවේ තියෙන වැදගත් කම නිසා තමයි secondary සර්වරයක් තියෙන්නේ. Primary සර්වරය අකර්මණ්‍ය වුනොත් සේවාව ලබා දෙන්න වෙන්නේ secondary සර්වරයට

Caching Servers

මේ සර්වර් වර්ගයේදී තමන්ට ලැබුන query එකක් වෙනුවෙන් වෙනත් සර්වරයකට කතා කරලා පිලිතුර ලබා දෙනවා. ඒ ලබා දෙන ගමන්ම එම පිලිතුර සර්වරය තුල කෑෂ් කර ගන්නවා. එම නිසා වාසි දෙකක් සිදු වෙනවා.

  • නැවත query එකක් ආවොත් තමන්ගේ කෑෂ් එකෙන් පිලිතුර දීමට පුලුවන්.
  • සේවාග්‍රාහකයින් විසින් කරන්න ඕනෙ කෑෂ් සර්වරයකට query එක යැවීම විතරයි. එම සර්වරයට පිලිතුරු දීමට බැරිනම් root සර්වරයන් හා recursive request මගින් (මේවා ඉදිරි සටහනකින් පැහැදිලි කරන්නම්) අදාල පිලිතුර සොයලා දෙනවා. මේ නිසා සේවාග්‍රාහක වැඩසටහන් අනවශ්‍ය ලෙස සංකීර්ණ වීම නවතිනවා. සේවාග්‍රාහකයා කල යුත්තේ අවශ්‍ය කෑෂ් සර්වරයේ IP address ගබඩා කර ගැනීම පමණයි.

සාමාන්‍යයෙන් කෑෂ් සර්වර පවත්වාගෙන යන්නේ ISP විසින්. DNS Propagation කාලයට හේතු වෙන්නෙත් මේ කෑෂ් සර්වර්.

No comments:

Post a Comment