ระบบชื่อโดเมน
ระบบชื่อโดเมน (Domain Name System) คือไดเรกทอรีแบบกระจายของอินเทอร์เน็ต ซึ่งทำหน้าที่แปลงชื่อโดเมนที่มนุษย์อ่านเข้าใจให้เป็นที่อยู่ IP ที่เครือข่ายต้องการ ผ่านลำดับชั้นของเซิร์ฟเวอร์ผู้มีอำนาจที่ได้รับมอบหมายและการแคชที่แพร่หลาย
Definition
ระบบชื่อโดเมน (Domain Name System) คือบริการตั้งชื่อแบบลำดับชั้นและแบบกระจายที่ทำหน้าที่จับคู่ชื่อโดเมนกับที่อยู่ IP และระเบียนอื่นๆ ซึ่งดำเนินการโดยเครือข่ายของเซิร์ฟเวอร์ชื่อผู้มีอำนาจที่ได้รับมอบหมายและตัวแก้ไขแคช
Scope
หัวข้อนี้ครอบคลุม DNS: พื้นที่ชื่อแบบลำดับชั้นและโซน; บทบาทของรูท, โดเมนระดับบนสุด, และเซิร์ฟเวอร์ชื่อผู้มีอำนาจ; การแก้ไขแบบเรียกซ้ำและแบบวนซ้ำ; ระเบียนทรัพยากร (เช่น A, AAAA, NS, MX, และ CNAME); การแคชและค่าเวลาในการคงอยู่ (time-to-live) ที่ทำให้ระบบสามารถปรับขนาดได้; และการพึ่งพา UDP ของ DNS สำหรับการสอบถามส่วนใหญ่ นอกจากนี้ยังกล่าวถึงบทบาทของ DNS ที่นอกเหนือจากการค้นหาแบบง่าย เช่น การกระจายโหลดและการเปลี่ยนเส้นทาง CDN โดยไม่รวมโปรโตคอลแอปพลิเคชันและระบบการส่งเนื้อหาที่ขึ้นอยู่กับ DNS
Core questions
- เหตุใดอินเทอร์เน็ตจึงต้องการระบบการตั้งชื่อที่แยกต่างหากจากที่อยู่ IP?
- พื้นที่ชื่อ DNS ถูกจัดระเบียบตามลำดับชั้นเป็นโซนและการมอบหมายอำนาจได้อย่างไร?
- การสอบถามแบบเรียกซ้ำและแบบวนซ้ำแก้ไขชื่อเป็นที่อยู่ได้อย่างไร?
- การแคชและค่าเวลาในการคงอยู่ (time-to-live) ทำให้ DNS สามารถปรับขนาดและรวดเร็วได้อย่างไร?
- DNS ใช้ประเภทระเบียนทรัพยากรใดบ้าง และแต่ละประเภทแสดงถึงอะไร?
Key concepts
- ลำดับชั้นของชื่อโดเมน
- โซนและการมอบหมายอำนาจ
- รูท, TLD, และเซิร์ฟเวอร์ผู้มีอำนาจ
- การแก้ไขแบบเรียกซ้ำและแบบวนซ้ำ
- ระเบียนทรัพยากร (A, AAAA, NS, MX, CNAME)
- การแคชและเวลาในการคงอยู่ (TTL)
- DNS ผ่าน UDP
- การกระจายโหลดโดยใช้ DNS
Key theories
- การตั้งชื่อแบบลำดับชั้นและแบบมอบหมายอำนาจ
- DNS แบ่งพื้นที่ชื่อออกเป็นโครงสร้างต้นไม้ของโดเมน และมอบอำนาจสำหรับโดเมนย่อยให้กับเซิร์ฟเวอร์ชื่อขององค์กรต่างๆ ดังนั้นจึงไม่มีหน่วยงานใดหน่วยงานหนึ่งที่ต้องรู้ชื่อทั้งหมด และการบริหารจัดการก็กระจายออกไป
- การแก้ไขและการแคช
- ตัวแก้ไขจะตอบคำถามโดยการติดตามลำดับชั้นจากรูทไปยังเซิร์ฟเวอร์ผู้มีอำนาจ จากนั้นจะแคชผลลัพธ์ตามเวลาในการคงอยู่; การแคชอย่างเข้มข้นหมายความว่าการค้นหาส่วนใหญ่ไม่เคยไปถึงเซิร์ฟเวอร์ผู้มีอำนาจ ซึ่งเป็นสิ่งสำคัญต่อความสามารถในการปรับขนาดของ DNS
Clinical relevance
DNS เป็นส่วนสำคัญที่เกือบทุกการโต้ตอบออนไลน์ต้องพึ่งพา: การท่องเว็บ, อีเมล, และการเชื่อมต่อแอปพลิเคชันเริ่มต้นด้วยการค้นหาชื่อ ดังนั้นประสิทธิภาพและความพร้อมใช้งานของ DNS จึงส่งผลต่อประสบการณ์ของผู้ใช้ และการหยุดชะงักของ DNS อาจส่งผลกระทบเป็นวงกว้างต่อบริการต่างๆ นอกจากนี้ DNS ยังใช้เพื่อนำผู้ใช้ไปยังเซิร์ฟเวอร์ใกล้เคียงสำหรับการส่งเนื้อหาและการปรับสมดุลโหลด และความปลอดภัยของ DNS (ผ่าน DNSSEC และ DNS แบบเข้ารหัส) ก็เป็นข้อกังวลที่สำคัญในปัจจุบัน
History
ก่อน DNS ชื่อโฮสต์จะถูกจับคู่กับที่อยู่โดยไฟล์ที่ใช้ร่วมกันเพียงไฟล์เดียวซึ่งไม่สามารถปรับขนาดได้ พอล ม็อกคาเพทริส (Paul Mockapetris) ได้ออกแบบระบบชื่อโดเมนในช่วงกลางทศวรรษ 1980 (RFCs 1034 และ 1035, 1987) เพื่อเป็นทางเลือกแบบกระจายและลำดับชั้น ตั้งแต่นั้นมา DNS ก็เติบโตขึ้นอย่างมาก โดยมีการเพิ่มประเภทระเบียน, ชื่อที่รองรับหลายภาษา, ส่วนขยายความปลอดภัย (DNSSEC), และการส่งข้อมูลแบบเข้ารหัส ในขณะที่ยังคงรักษาโครงสร้างทางสถาปัตยกรรมที่ซื่อตรงต่อการออกแบบดั้งเดิม
Debates
- DNS แบบเข้ารหัสกับการมองเห็นการทำงาน
- การเข้ารหัสการสอบถาม DNS (DNS over HTTPS/TLS) ช่วยปกป้องความเป็นส่วนตัวของผู้ใช้จากผู้สังเกตการณ์ระหว่างทาง แต่ก็ลดการมองเห็นของโอเปอเรเตอร์เครือข่ายที่ใช้สำหรับการกรองและการแก้ไขปัญหา และอาจรวมศูนย์การแก้ไขไว้ที่ผู้ให้บริการรายใหญ่ไม่กี่ราย; การถกเถียงเกี่ยวกับความสมดุลระหว่างความเป็นส่วนตัวและการควบคุมยังคงดำเนินอยู่
Key figures
- Paul Mockapetris
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc1034
- rfc1035
- kurose2021
Frequently asked questions
- DNS ทำอะไร?
- DNS แปลงชื่อที่มนุษย์อ่านเข้าใจได้ เช่น example.com ให้เป็นที่อยู่ IP ที่เครือข่ายต้องการเพื่อส่งแพ็กเก็ตไปยังเซิร์ฟเวอร์ที่ถูกต้อง มันคือสมุดโทรศัพท์ของอินเทอร์เน็ต และทำหน้าที่ค้นหานี้ผ่านลำดับชั้นแบบกระจายของเซิร์ฟเวอร์ที่มีการแคชอย่างมากเพื่อให้สามารถปรับขนาดได้ทั่วทั้งอินเทอร์เน็ต
- ทำไม DNS ถึงถูกกระจายออกไปแทนที่จะเป็นเซิร์ฟเวอร์ขนาดใหญ่เพียงเครื่องเดียว?
- เซิร์ฟเวอร์เครื่องเดียวไม่สามารถรองรับปริมาณการสอบถามได้ จะเป็นจุดเดียวที่ล้มเหลว และไม่สามารถบริหารจัดการโดยองค์กรทั้งหมดทั่วโลกได้ DNS จึงมอบอำนาจเหนือส่วนต่างๆ ของพื้นที่ชื่อให้กับเซิร์ฟเวอร์จำนวนมากและแคชผลลัพธ์อย่างกว้างขวาง ดังนั้นภาระและการควบคุมจึงกระจายออกไปและระบบมีความยืดหยุ่น