DNS: คืออะไรและทำงานอย่างไร

เผยแพร่แล้ว: 2014-08-14

ระบบชื่อโดเมนหรือ DNS เป็นหนึ่งในรากฐานที่สำคัญที่สุดของอินเทอร์เน็ต มีหน้าที่รับผิดชอบในความสามารถของเราในการเชื่อมต่อกับเซิร์ฟเวอร์โดยไม่ต้องจำตัวเลขที่ยาวและยุ่งยาก ในฐานะนักออกแบบหรือนักพัฒนา สิ่งสำคัญคือต้องเข้าใจว่า DNS คืออะไร มันทำงานอย่างไร และใช้งานอย่างไร

DNS คืออะไร?

Arpanet_logical_map_march_1977

แผนภาพของคอมพิวเตอร์ทุกเครื่องที่เชื่อมต่อกับ ARPANET ซึ่งเป็นบรรพบุรุษของอินเทอร์เน็ต ในเดือนมีนาคม พ.ศ. 2520

ในปี 1970 มีคอมพิวเตอร์ไม่กี่เครื่องที่เชื่อมต่อเครือข่ายกันจนทุกคนสามารถเก็บรายการคอมพิวเตอร์เครื่องอื่น ๆ ด้วยตนเองได้อย่างง่ายดาย ในสมัยของ ARPANET (ผู้บุกเบิกอินเทอร์เน็ต) หากมีการซื้อคอมพิวเตอร์เครื่องใหม่และเพิ่มเข้าไปในเครือข่าย เจ้าของก็จะบอกทุกคนใน ARPANET ที่จะเพิ่มคอมพิวเตอร์เครื่องใหม่นั้นลงในรายการของพวกเขา ระบบนี้ทำงานได้ดีเมื่อมีคอมพิวเตอร์เพียงไม่กี่โหลที่เชื่อมโยงกัน แต่เสื่อมโทรมลงอย่างรวดเร็วเนื่องจากคอมพิวเตอร์มีราคาถูกลงและเข้าถึงได้ทั่วไปมากขึ้น ในแง่ของวันนี้ จะคล้ายกับต้องแจ้งให้โลกทั้งโลกทราบทุกครั้งที่มีการเปิดตัวเว็บไซต์หรือบริการใหม่

ในช่วงต้นยุค 80 DNS ถูกสร้างขึ้นเพื่อแก้ปัญหานี้โดยการรักษารายชื่อโดเมนที่เชื่อถือได้และคอมพิวเตอร์เครื่องใดที่โดเมนเหล่านั้นชี้ไปที่ แต่มันทำงานอย่างไรกันแน่? ในแง่เทคนิค DNS เป็นระบบที่เกือบทุกอุปกรณ์ที่เปิดใช้งานเครือข่ายใช้เพื่อแก้ไขชื่อโดเมนด้วยที่อยู่ IP ที่เกี่ยวข้อง คิดว่ามันเป็นสมุดโทรศัพท์ของอินเทอร์เน็ต

เมื่อคุณพิมพ์ที่อยู่เว็บ เช่น http://www.getflywheel.com ลงในเว็บเบราว์เซอร์ คอมพิวเตอร์ของคุณจะไม่ทราบโดยอัตโนมัติว่าจะไปที่ใด ต้องใช้ที่อยู่ IP เพื่อเชื่อมต่อ แต่คุณระบุชื่อโดเมนซึ่งเป็นเพียงชุดตัวอักษร โดเมนช่วยให้มนุษย์จดจำตำแหน่งของเว็บไซต์ได้ง่ายขึ้นมาก แต่ก็ไม่ใช่สิ่งที่คอมพิวเตอร์ต้องการเพื่อเชื่อมต่อ คอมพิวเตอร์ของคุณจะติดต่อกับเซิร์ฟเวอร์ DNS และขอที่อยู่ IP ของเว็บไซต์นั้นแทน เซิร์ฟเวอร์ DNS ตอบสนองและบอกคอมพิวเตอร์ของคุณว่า “http://www.getflywheel.com อยู่ที่ 192.241.128.208” คอมพิวเตอร์ของคุณคว้าที่อยู่ IP นั้นจากเซิร์ฟเวอร์ DNS และใช้เพื่อเชื่อมต่อกับที่อยู่ IP ซึ่งจะทำให้เว็บไซต์ของ Flywheel ปรากฏขึ้น

DNS_Rquest

ระเบียน DNS มีการจัดการและตั้งค่าอย่างไร

DNS ได้รับการตั้งค่าผ่านระเบียน DNS ซึ่งมีข้อมูลเช่นที่อยู่ IP ที่โดเมนควรชี้ไป โดเมนย่อย การตั้งค่าอีเมล และแม้แต่ข้อความโดยอำเภอใจ เมื่อซื้อโดเมนแล้ว เจ้าของจะระบุเนมเซิร์ฟเวอร์ที่เชื่อถือได้สำหรับโดเมนนั้น เนมเซิร์ฟเวอร์เหล่านี้ควบคุมระเบียน DNS สำหรับโดเมน ซึ่งเซิร์ฟเวอร์ DNS อื่นจับและแพร่กระจายไปทั่วอินเทอร์เน็ตทั้งหมด โดยทั่วไป หากคุณตั้งค่าระเบียน DNS ของคุณเอง คุณจะทราบที่อยู่ IP ของเว็บไซต์ของคุณ ตัวอย่างเช่น Flywheel จะให้ที่อยู่ IP แก่คุณซึ่งคุณสามารถชี้ระเบียนชื่อ A ไป

มีเซิร์ฟเวอร์ DNS หลายพันแห่งทั่วโลก และทุกเซิร์ฟเวอร์จะซิงค์กันเพื่อรักษาบันทึกว่าทุกอย่างอยู่ที่ไหน อย่างไรก็ตาม เซิร์ฟเวอร์ DNS ทั้งหมดไม่ได้ถูกสร้างขึ้นมาเท่ากัน

การทำความเข้าใจว่า DNS ทำงานอย่างไรนั้นยอดเยี่ยม จำเป็นต้องนำไปปฏิบัติหรือไม่? ดู ebook ฟรีที่ยอดเยี่ยมของเราเกี่ยวกับระเบียน DNS ที่พบบ่อยที่สุดและวิธีใช้งาน

โครงสร้างของเซิร์ฟเวอร์ DNS มีลักษณะเหมือนต้นไม้กลับหัว มีเซิร์ฟเวอร์ รู ทหรือเซิร์ฟเวอร์หลัก 13 ตัวที่สร้างลำต้นของทรีนี้ เป็นสำเนาหลักของ DNS ข้อมูล DNS ทั้งหมดต้องมาจากเซิร์ฟเวอร์รากหรือจากเซิร์ฟเวอร์ที่เคยติดต่อกับเซิร์ฟเวอร์รากและดึงข้อมูลมาก่อนหน้านี้ เซิร์ฟเวอร์รากประกอบด้วยสิ่งที่เรียกว่า โซนราก หรือโซน DNS ที่เชื่อถือได้มากที่สุด

หลังจากผ่านรูทโซนแล้ว จะมีโซนย่อยที่มีโดเมนอยู่ โดเมนระดับบนสุดแต่ละโดเมนมีบันทึกโซนของตัวเอง ซึ่งแบ่งออกเป็นโดเมนแต่ละโดเมน เช่น http://www.getflywheel.com ซึ่งเรียกว่าโดเมนระดับที่สอง

นี่เป็นเรื่องทางเทคนิคเล็กน้อย ลองดูสิ่งนี้จากมุมมองของการเปรียบเทียบต้นไม้ของเรา เมื่อโซนรากสร้างลำต้น โดเมนระดับบนสุดแต่ละโดเมน เช่น .com หรือ .org จะเป็นสาขาย่อยของลำต้นนั้น แต่ละเว็บไซต์เช่น getflywheel.com เป็นใบไม้ที่ยื่นออกมาจากสาขานั้น ส่วนเล็กๆ นั้นคือพื้นที่ที่เจ้าของโดเมนมีการควบคุม DNS แต่ละสาขาจะเป็นเนมเซิร์ฟเวอร์ส่วนบุคคล คอยติดตามกิ่งและใบที่มาจากมัน

ดังนั้น เมื่อคอมพิวเตอร์ร้องขอ getflywheel.com อันดับแรก คอมพิวเตอร์จะติดต่อกับรูทเซิร์ฟเวอร์ ซึ่งระบุว่า “คุณกำลังมองหาเว็บไซต์ .com ไปคุยกับเนมเซิร์ฟเวอร์ .com ซึ่งอยู่ที่นี่” จากนั้น คอมพิวเตอร์ของคุณจะเรียกซ้ำตามสายโซ่ไปยังเนมเซิร์ฟเวอร์ที่รับผิดชอบ .com และขอรายละเอียดเพิ่มเติม คอมพิวเตอร์ของคุณติดต่อกับเซิร์ฟเวอร์จนกว่าจะพบเซิร์ฟเวอร์ชื่อที่ระบุโดยเจ้าของโดเมน จากนั้นจะค้นหาที่อยู่ IP ที่เชื่อมโยงกับเว็บไซต์และไปที่มัน คอมพิวเตอร์ของคุณข้ามต้นไม้ของเซิร์ฟเวอร์ลงไปตามกิ่งต่างๆ จนกระทั่งถึงจุดปลายที่มีเป้าหมายสุดท้าย

DNS Root Hierarchy

หมายเหตุ: แม้ว่าจะมีเซิร์ฟเวอร์รูท DNS อย่างเป็นทางการถึง 13 เซิร์ฟเวอร์ แต่ทั้งสองถูกเชื่อมโยงและแจกจ่ายแยกกันไปยังเซิร์ฟเวอร์ที่เหมือนกันหลายสิบเซิร์ฟเวอร์ผ่านเทคโนโลยีการกำหนดเส้นทางที่เรียกว่า anycast Anycast อนุญาตให้มีโหนดหลายโหนดเป็นเอนทิตีเดียวกัน เมื่ออุปกรณ์เชื่อมต่อกับเอนทิตีนั้น อุปกรณ์จะเชื่อมต่อกับโหนดที่ใกล้ที่สุดบนเครือข่าย (ซึ่งแตกต่างจาก geocast ซึ่งใช้ใน CDN เช่น ที่อุปกรณ์เชื่อมต่อกับเซิร์ฟเวอร์ทางภูมิศาสตร์ที่ใกล้ที่สุด) Anycast ช่วยให้รูทเซิร์ฟเวอร์สามารถคูณและกระจายไปทั่วโลก ปรับสมดุลโหลด เร่งเวลาตอบสนอง และป้องกันจุดบกพร่องจุดเดียว

การติดต่อเซิร์ฟเวอร์ทั้งหมดนี้ดูค่อนข้างยุ่งยากและต้องเสียภาษีทุกครั้งที่ต้องการเข้าชมเว็บไซต์ โชคดีที่ DNS ถูกแคชไว้เป็นจำนวนมาก ซึ่งหมายความว่าสำเนามักจะถูกบันทึกไว้ในคอมพิวเตอร์ที่อยู่ใกล้คุณ ทำให้โหลดออกจากเซิร์ฟเวอร์รากและทำให้การสืบค้นของคุณโหลดเร็วขึ้น ISP, บริษัท, มหาวิทยาลัย และแม้แต่คอมพิวเตอร์ของคุณจำนวนมากจะเก็บแคชของการสืบค้น DNS ล่าสุด หากคุณกำลังมองหา google.com แสดงว่าคอมพิวเตอร์ของคุณมีที่อยู่ IP ที่จัดเก็บไว้อยู่แล้ว แต่ถ้าคุณกำลังมองหาเว็บไซต์ที่คุณไม่เคยไป เป็นไปได้ว่าอาจมีคนอื่นในละแวกบ้านหรือบริษัทของคุณเคยไปที่นั่นแล้ว และการสืบค้นและข้อมูลจะถูกจัดเก็บไว้เพียงเซิร์ฟเวอร์ DNS ของ ISP ของคุณ

หากไม่มี DNS เราแต่ละคนจะต้องจำหรือจดที่อยู่ IP ของเว็บไซต์และคอมพิวเตอร์ทุกเครื่องที่เราอยากเยี่ยมชม โชคดีที่ DNS เป็นงานวิศวกรรมที่ยืดหยุ่น เชื่อถือได้ และน่าประทับใจอย่างเหลือเชื่อ โดยคอยติดตามเว็บไซต์และการสื่อสารทั้งหมดของเรา ดังนั้นเราจึงไม่ต้องทำ