เป็นไปได้อย่างไรที่ Root Name Servers จัดการกับการร้องขอ DNS ทั้งหมด


18

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

ในทางเทคนิคแล้วเป็นไปได้อย่างไรที่ 13 Root Name Servers สามารถจัดการการร้องขอทั้งหมดที่กระทำโดยผู้ใช้อินเทอร์เน็ตหลายพันล้านคนในโลกโดยไม่ต้องซ้อนกัน ddos: ed?


11
โดยสรุปของคุณในวิธีที่ DNS ทำงานผิด คำถามที่ถามไปยังเซิร์ฟเวอร์ชื่อหลักไม่ใช่ "ใครเป็นเจ้าของ. com" แต่ "ที่อยู่ IP ของ www.example.com คืออะไร" (เซิร์ฟเวอร์ชื่อรูทตอบกลับโดยการอ้างอิงถึงเจ้าของ. com) เซิร์ฟเวอร์ชื่อรูทเห็นข้อความค้นหาทั้งหมด (ซึ่งมีประโยชน์สำหรับสถิติการทำเหมืองข้อมูล ฯลฯ )
bortzmeyer

@bortzmeyer สาเหตุหลักที่ทำให้ชื่อทั้งหมดถูกส่งไปยังเซิร์ฟเวอร์รูทนั่นไม่ใช่จุดทุกจุดในชื่อนั้นจำเป็นต้องมีขอบเขตของสิทธิ์ ในทางปฏิบัติฉันเชื่อว่ามีขอบเขตอำนาจหน้าที่อยู่ด้านล่าง TLD เสมอ แต่โดยหลักการแล้วมันไม่ได้รับประกัน ดังนั้นที่จุดในอนาคตบางคนก็อาจจะมีการตัดสินใจที่จะแนะนำ TLD พิเศษที่ชั้นที่สองจะถูกจัดการโดยเซิร์ฟเวอร์รากเช่นว่าเมื่อคุณสอบถามเซิร์ฟเวอร์รากของa.b.c.exampleคุณจะบอกว่าใครเป็นผู้รับผิดชอบมากกว่าใครเป็นผู้รับผิดชอบc.example example
kasperd

คำตอบ:


51

พวกเขามีเซิร์ฟเวอร์ที่พร้อมใช้งานสูง 13 แห่งไม่ใช่แค่เซิร์ฟเวอร์ 13 แห่ง

เหนือสิ่งอื่นใดตัวดำเนินการเนมเซิร์ฟเวอร์รูทจำเป็นต้องมีความจุเพียงพอที่จะรองรับปริมาณการรับส่งข้อมูลปกติสามเท่า ( RFC 2870 ) สิ่งนี้นำไปสู่กลุ่มค่อนข้างใหญ่

อย่างไรก็ตามเซิร์ฟเวอร์รากเพียง แต่ทำหน้าที่ตอบสนองสำหรับโดเมนระดับบนสุดของตัวเองเช่นcom., net., uk., ae.ฯลฯ และเซิร์ฟเวอร์ที่สอบถามรากสามารถแคชข้อมูลนี้ถึง 48 ชั่วโมงซึ่งจะช่วยลดภาระในเซิร์ฟเวอร์ราก สิ่งนี้นำไปสู่กลุ่มที่เล็กกว่า

เซิร์ฟเวอร์ชื่อนั้นอยู่ในสถานที่ตั้งมากกว่า 130 แห่งใน 53 ประเทศ; ด้วยชื่อเซิร์ฟเวอร์เพียง 13 ชื่อสิ่งนี้ทำได้ผ่านเวทมนต์ของ IPv4 anycast

เซิร์ฟเวอร์ชื่อรูทยังมีเว็บไซต์ของตัวเองซึ่งคุณอาจพบว่าการอ่านน่าสนใจ


48 ชั่วโมงเป็น TTL ของระเบียน NS ที่รูท แต่สามารถ overriden โดยเซิร์ฟเวอร์ชื่อของ TLD เอง ตัวอย่างเช่นสำหรับ. jp เพียง 24 ชั่วโมง
bortzmeyer

ทีนี้เรากำลังพูดถึงรูทเนมเซิร์ฟเวอร์ที่นี่ :)
Michael Hampton

RFC 2870 ค่อนข้างล้าสมัยไปแล้วในวันนี้ เนื่องจากการโจมตีของ dDoS เซิร์ฟเวอร์ชื่อรูทจะต้องพร้อมตอบมากกว่าสามเท่าของปริมาณการใช้งานปกติ
bortzmeyer

8
53 ประเทศ? มันเป็นเรื่องบังเอิญหรือพวกเขาเลือกเช่นเดียวกับพอร์ตการสืบค้น DNS : D
amyassin

10

พวกเขาทำไม่ได้ Nameserver ของรากก็ต้องบอกคุณว่า Nameservers comจับ comจากนั้นคุณไม่จำเป็นต้องไปกับพวกเขาในการจัดการภายในโดเมนใด ๆ Nameserver example.comของรากมีความคิดที่เป็นเจ้าของไม่มี พวกเขาเป็นรูทเนมเซิร์ฟเวอร์ไม่ใช่com เนมเซิร์ฟเวอร์

สิ่งที่ slimsuperhero พูดก็เป็นจริงเช่นกัน เซิร์ฟเวอร์ชื่อจำนวนมากใช้การออกอากาศใดก็ได้เพื่อให้มีที่อยู่ IP เดียวที่ให้บริการโดยเซิร์ฟเวอร์จำนวนหนึ่งทั่วโลก


แต่ถ้าผู้ใช้ 1 พันล้านคนกำลังท่องไปยังที่อยู่. com ในเวลาเดียวกันเซิร์ฟเวอร์ชื่อหลักจะจัดการคำขอทั้งหมดหรือไม่
Rox

3
ไม่ประการหนึ่งผู้ใช้พูดคุยกับเซิร์ฟเวอร์ชื่อซ้ำ (ผู้ที่เชื่อมต่อกับเซิร์ฟเวอร์ชื่ออื่นเพื่อรับคำตอบ) และเซิร์ฟเวอร์ชื่อนั้นไม่ได้เรียกซ้ำ (พวกเขาให้บริการข้อมูลท้องถิ่นที่พวกเขารู้แล้วเท่านั้น) พูดคุยกับผู้ใช้เซิร์ฟเวอร์ของตัวเอง (มักจะมาจาก ISP ของพวกเขา) คนเดียวที่ต้องถามเซิร์ฟเวอร์รากครั้งเดียวcomสำหรับเซิร์ฟเวอร์ที่จับ
David Schwartz

1
@DavidSchwartz ถูกต้อง - ดังนั้นแทนที่จะมีหนึ่งพันล้านคำขอจากผู้ใช้หนึ่งพันล้านคนพวกเขาต้องการเพียงหนึ่งล้านคำร้องขอจากหนึ่งล้าน ISPs ซึ่งแต่ละคนให้บริการผู้ใช้นับพันคน
Shadur

@Shadur: ตอนนี้เซิร์ฟเวอร์ชื่อสำหรับcomในทางกลับกันต้องใช้การเต้นขนาดใหญ่มากขึ้น
David Schwartz

1
และฉันค่อนข้างแน่ใจว่าพวกเขาปรับขนาดและจัดกลุ่มอย่างเหมาะสม
Shadur

6

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


3

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


0

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

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

สิ่งต่าง ๆ เช่น DNS นั้นไม่ช้าและนั่นคือสาเหตุที่เรายังคงใช้ระบบเดิม


คำตอบของแบบสอบถาม.ไม่เหมาะกับ 512 ไบต์อีกต่อไป เนื่องจากตอนนี้ IPv6 เป็นสิ่งจำเป็นคำตอบจึงเพิ่มเป็น 811 ไบต์ ด้วย EDNS ที่สามารถส่งคืนได้ในการตอบกลับครั้งเดียว อย่างไรก็ตามการค้นหา.นั้นไม่จำเป็นบ่อยครั้งที่การปัดเศษสองรอบเป็น showstopper เป็นสิ่งจำเป็นสำหรับผู้เรียกซ้ำเพื่อเรียนรู้การเปลี่ยนแปลงล่าสุดของที่อยู่ IP ของรากซึ่งไม่ค่อยเปลี่ยนแปลง
kasperd

@kasperd ฉันไม่แน่ใจ ฉันตรวจสอบ dig + trace สำหรับเร็กคอร์ด A หรือเรคคอร์ด AAAA และการตอบกลับทั้งหมด (จากเซิร์ฟเวอร์ระดับรากเซิร์ฟเวอร์ระดับบนสุดหรือในเนมเซิร์ฟเวอร์) ต่ำกว่า 508 ถึง 509 ไบต์ คุณช่วยอธิบายเพิ่มเติมเล็กน้อยได้ไหม
Jaison

คุณต้องใช้ EDNS หรือ TCP เพื่อรับการตอบกลับแบบเต็ม คำร้องขอ UDP ที่ไม่มี EDNS จะไม่สามารถรับการตอบกลับนานกว่า 512 ไบต์
kasperd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.