วันจันทร์ที่ 16 มีนาคม พ.ศ. 2552

การทำงานของ DNS

DNS มีขั้นตอนอย่างง่ายๆ ดังรูปที่ 1 โดยในที่นี้จะไม่ขอกล่าวถึงรายละเอียดปลีกย่อยอื่นๆ ซึ่งมีอยู่มากและยังมีโปรโตคอลพิเศษคอยทำหน้าที่ต่างๆอยู่เบื้องหลังด้วย เช่น โปรโตคอล ARP ช่วยแปลงค่า IP address เป็นค่าฮาร์ดแวร์ เป็นต้น ตามรูปการทำงานของ DNS มีขั้นตอนที่สามารถอธิบายรายละเอียดได้ดังนี้
1. เครื่องคอมพิวเตอร์ลูกข่าย (client) ที่มี domain เป็น abccompany.com ต้องการติดต่อกับเว็บไซต์ที่ชื่อ www.xyz.com ดังนั้นเครื่องไคลเอนด์นี้ จะส่งคำสั่งขอข้อมูลหมายเลข IP address ด้วยกลไก resolver ไปที่ DNS server ที่ดูแล zone ของตนอยู่ คือ domain abccompany.com ในกรณีนี้สมมุติว่าฐานข้อมูลที่มีใน DNS server ไม่มีข้อมูลหมายเลข IP address ของ www.xyz.com ทั้งนี้เพราะ DNS server ของ zone abccompany.com จะดูแลฐานข้อมูลเฉพาะเครื่องลูกข่ายตนเอง ดังนั้น DNS server นี้ก็จะส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ที่อยู่ระดับบนกว่า ซึ่งได้กำหนดเอาไว้ให้เป็นเครื่อง DNS server ของบริษัทผู้ให้บริการ ISP นั่นเอง
2. เมื่อ DNS server ของ abc.company.com ส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ของบริษัทผู้ให้บริการ ISP แล้ว เครื่อง DNS server ของ ISP ก็จะค้นหาข้อมูลจากฐานข้อมูลของตนเช่นเดียวกัน ในกรณีนี้สมมุติว่ายังไม่มีข้อมูล IP address ของ www.xyz.com อีกเหมือนกัน เครื่อง DNS server ของบริษัท ISP จะส่งคำสั่งขอข้อมูลต่อออกไปยังเครื่อง DNS server ในระดับบนขึ้นไปอีกซึ่งก็ได้มีการกำหนดไว้ว่าเป็นเครื่อง root server

3. เมื่อ DNS server ของ abc.company.com ส่งคำสั่งขอข้อมูลต่อไปยัง DNS server ของบริษัทผู้ให้บริการหรือ ISP แล้ว เครื่อง DNS server ของISP ก็จะค้นหาข้อมูลจากฐานข้อมูลของตนเช่นเดียวกัน ในกรณีนี้สมมุติว่ายังไม่มีข้อมูล IP address ของ www.xyz.com อีกเหมือนกัน เครื่อง DNS server ของ ISP จะส่งคำสั่งขอข้อมูลต่อออกไปยังเครื่อง DNS server ในระดับบนขึ้นไปอีก ซึ่งก็ได้มีการกำหนดไว้ว่าเป็น root server

4. คำสั่งขอข้อมูลถูกส่งต่อไปยัง DNS server ของ root เพราะดูแลฐานข้อมูลของ domain name ในระดับสอง (.com)

5. ที่ DNS root server แม้ว่าจะไม่มีข้อมูลหมายเลข IP address ของ www.xyz.com ก็ตาม แต่มีข้อมูลที่ทราบว่า DNS server ที่ดูแล zone ของ domain xyz.com อยู่ที่ใด (มีหมายเลข IP address อะไร) DNS root server ก็จะส่งข้อมูลดังกล่าวไปให้ เพราะที่เครื่อง DNS SERVER ที่ดูแล domain xyz.com จะต้องมีข้อมูลของ IP address ของ www.xyz.com อยู่แน่นอน

6. DNS server ของ ISP จะรับข้อมูล IP address ของเครื่อง DNS server ที่ดูแล zone ของ domain xyz.com เป็น 192.183.255.20 และแจ้งต่อไปให้ DNS server ที่รับผิดชอบ domain xyz.com อีกทีหนึ่ง ในขั้นนี้เครื่อง DNS server ของบริษัท ISP จะเก็บค่าคำตอบเอาไว้ในหน่วยความจำแคชเพื่อใช้กรณีที่มีการเรียกข้อมูลซ้ำอีกในอนาคต จะได้ส่งคำตอบไปให้เลยโดยไม่ต้องไปขอข้อมูลซ้ำอีก ค่าที่เก็บเอาไว้จะมีระยะเวลาที่ต้องปรับปรุงข้อมูลใหม่ตามค่าในฟีลด์ TTL ที่กำหนดไว้ใน resource record

7. DNS server ของบริษัท abccompany.com จะรับข้อมูลหมายเลข IP address ของเครื่อง DNS server ที่ดูแล zone ของ domain xyz.com ตามที่เครื่อง DNS server ของ ISP ส่งมาให้ และเก็บลงหน่วยความจำแคชของตนเองเช่นกัน เผื่อมีการเรียกใช้อีกในอนาคต แล้วส่งคำสั่งไปถามข้อมูลว่าเครื่อง www.xyz.com อยู่ที่ไหน (มีหมายเลข IP address อะไร)

8. DNS server ของ domain xyz.com ตรวจสอบข้อมูลและแจ้งว่าเครื่อง www.xyz.com อยู่ที่ IP address 192.186.255.26 ข้อมูลถูกส่งกลับไปให้เครื่อง DNS server ของ abccompany.com

9. คำตอบที่ DNS server ของ abccompany.com ได้รับจะถูกส่งต่อให้กับเครื่องไคลเอนต์ที่ต้องการและก็จัดเก็บข้อมูลลงหน่วยความจำแคชเช่นกัน

10. เมื่อเครื่องลูกข่ายทราบว่า www.xyz.com มีหมายเลข IP address อยู่ที่ 192.183.255.26 ก็จะติดต่อกับเครื่อง www.xyz.com โดยถ้าใช้งานเว็บก็จะสร้างการเชื่อมต่อโดยโปรโตคอล HTTP และใช้งาน port 80 เพื่อเรียกดูข้อมูลในเว็บไซต์นั้นต่อไป ตามกลไกลของ TCP/IP อาจมีผู้สงสัยว่าในการทำงานของ DNS server ทั้งหลายในเครือข่ายอินเตอร์เน็ตนั้นมีวิธีการจัดการอย่างไร ซึ่งสามารถอธิบายได้ง่ายๆ ตามขั้นตอนดังกล่าวที่ผ่านมา ซึ่งจะเห็นว่า DNS server จะถูกจัดลำดับในการดูแลฐานข้อมูลแยกกันตามกลุ่ม โดยแบ่งลำดับชั้นให้สอดคล้องกับการกำหนดชื่อ domain และในแต่ละลำดับของ DNS server นี้จะทราบว่าถ้าต้องการติดต่อขอข้อมูลจากลำดับบนขึ้นไปจะติดต่อได้จากหมายเลข IP address อะไร โดยในชั้นบนสุดเป็น root ที่จะดูแลข้อมูลของ domain ลำดับที่สองและย่อยลงไปตามชั้น และแต่ละเซิร์ฟเวอร์ที่ดูแล domain ของตนก็จะเรียกว่าเซิร์ฟเวอร์นั้นมีสิทธิ์ในการรับผิดชอบ zone ของตนเอง การลงทะเบียนขอชื่อ Domain Name

ไม่มีความคิดเห็น:

แสดงความคิดเห็น