เหตุใด DNS จึงทำงานได้เหมือนกัน


40

นี่เป็นคำถามที่ยอมรับได้เกี่ยวกับ DNS (บริการชื่อโดเมน)

หากความเข้าใจของฉันเกี่ยวกับระบบ DNS นั้นถูกต้องรีจิสทรีของ. com จะเก็บตารางที่จับคู่โดเมน (www.example.com) กับเซิร์ฟเวอร์ DNS

  1. ข้อดีคืออะไร ทำไมไม่แมปโดยตรงไปยังที่อยู่ IP

  2. หากระเบียนเดียวที่ต้องเปลี่ยนเมื่อฉันกำหนดค่าเซิร์ฟเวอร์ DNS ให้ชี้ไปยังที่อยู่ IP อื่นตั้งอยู่ที่เซิร์ฟเวอร์ DNS เหตุใดกระบวนการจึงไม่ประมวลผลทันที

  3. หากเหตุผลเดียวสำหรับความล่าช้าคือแคช DNS เป็นไปได้หรือไม่ที่จะเลี่ยงผ่านดังนั้นฉันสามารถดูว่าเกิดอะไรขึ้นในเวลาจริง


18
ถึงทุกคนที่พยายามจะโยกย้าย / ปิดคำถามนี้: โปรดทิ้งไว้ที่นี่ มันมีบ้านอยู่ที่นี่ซึ่งสามารถเป็นที่รักและได้รับการดูแลอย่างอ่อนโยน และเราสามารถชี้คำถามทั้งหมด "วิธีการทำงานของ DNS" ที่นี่เป็นคำตอบที่ยอมรับได้เพราะคำถามนี้ได้รับคำตอบที่ดีมาก
Mark Henderson

You can not able full understand DNS unless you are name Paul Mockapetris, Paul Vixie or Cricket Liu. twitter.com/DEVOPS_BORAT/status/249006925767909376
Anthony Hatzopoulos

คำตอบ:


87

จริงๆแล้วมันซับซ้อนกว่านั้น - มากกว่าหนึ่ง "รีจิสทรีกลาง (ที่) ถือตารางที่จับคู่โดเมน (www.mysite.com) กับเซิร์ฟเวอร์ DNS" มีหลายลำดับชั้น

- The NS (nameserver) สำหรับทุกโดเมนระดับบนสุด: มีรีจิสทรีกลาง (เซิร์ฟเวอร์ราก) ซึ่งมีเพียงชุดเล็ก ๆ ของรายการเป็น.com, .net, .org, .uk, .us, .auและอื่น ๆ

เซิร์ฟเวอร์เหล่านั้นมีระเบียน NS สำหรับระดับถัดไปลง ที่จะเลือกหนึ่งตัวอย่างเช่นเซิร์ฟเวอร์สำหรับ.ukโดเมนก็มีรายการสำหรับ.co.uk, .ac.ukและโซนระดับที่สองอื่น ๆ ในการใช้งานในสหราชอาณาจักร

เซิร์ฟเวอร์เหล่านั้นมีระเบียน NS สำหรับระดับถัดไป - เพื่อดำเนินการต่อตัวอย่างพวกเขาจะบอกคุณว่าจะหาระเบียน NS ได้จากgoogle.co.ukที่ไหน ในเซิร์ฟเวอร์เหล่านั้นในที่สุดคุณจะพบการจับคู่ระหว่างชื่อโฮสต์www.google.co.ukและที่อยู่ IP

ในฐานะที่เป็นริ้วรอยพิเศษแต่ละชั้นจะทำหน้าที่บันทึก 'กาว' ระเบียน NS แต่ละรายการจะจับคู่โดเมนกับชื่อโฮสต์ - ตัวอย่างเช่นระเบียน NS สำหรับ.ukรายการnsa.nic.ukเป็นหนึ่งในเซิร์ฟเวอร์ ในการที่จะไปสู่ระดับต่อไปเราต้องค้นหาระเบียน NS ที่nic.ukเป็นและพวกเขาก็รวมไปถึงnsa.nic.ukเช่นกัน ดังนั้นตอนนี้เราจำเป็นต้องรู้ IP ของnsa.nic.ukแต่เพื่อหาว่าเราต้องทำแบบสอบถามไปnsa.nic.ukแต่เราไม่สามารถทำแบบสอบถามนั้นจนกว่าเราจะรู้ว่า IP สำหรับnsa.nic.uk...

เมื่อต้องการแก้ไขความไม่แน่ใจนี้เซิร์ฟเวอร์สำหรับการ.ukเพิ่มระเบียนสำหรับการnsa.nic.ukเข้ามาADDITIONAL SECTIONของการตอบสนอง (การตอบสนองด้านล่างตัดแต่งสำหรับความกะทัดรัด):

jamezpolley@li101-70:~$dig nic.uk ns

; <<>> DiG 9.7.0-P1 <<>> nic.uk ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21768
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 14

;; QUESTION SECTION:
;nic.uk.                IN  NS

;; ANSWER SECTION:
nic.uk.         172800  IN  NS  nsb.nic.uk.
nic.uk.         172800  IN  NS  nsa.nic.uk.

;; ADDITIONAL SECTION:
nsa.nic.uk.     172800  IN  A   156.154.100.3
nsb.nic.uk.     172800  IN  A   156.154.101.3

หากไม่มีประวัติกาวพิเศษเหล่านี้เราจะไม่สามารถค้นหาเซิร์ฟเวอร์ชื่อได้nic.uk.ดังนั้นเราจึงไม่สามารถค้นหาโดเมนที่โฮสต์อยู่ที่นั่นได้

เพื่อกลับไปที่คำถามของคุณ ...

a) ข้อดีคืออะไร? ทำไมไม่แมปโดยตรงไปยังที่อยู่ IP

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

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

อีกสิ่งหนึ่งนี่จะเป็น Single Point of Failure - หากการลงทะเบียนกลางเดียวล้มเหลวอินเทอร์เน็ตทั้งหมดจะออฟไลน์ การมีระบบแบบกระจายหมายความว่าความล้มเหลวมีผลเฉพาะกับส่วนเล็ก ๆ ของอินเทอร์เน็ตไม่ใช่ทุกสิ่ง

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

b) หากระเบียนเดียวที่ต้องเปลี่ยนเมื่อฉันกำหนดค่าเซิร์ฟเวอร์ DNS ให้ชี้ไปยังที่อยู่ IP อื่นนั้นจะอยู่ที่เซิร์ฟเวอร์ DNS เหตุใดกระบวนการจึงไม่ประมวลผลทันที

เพราะ DNS ใช้การแคชจำนวนมากเพื่อเร่งความเร็วและลดภาระให้กับ NSes โดยไม่ต้องแคชทุกเวลาเดียวที่คุณเข้าเยี่ยมชมgoogle.co.ukเครื่องคอมพิวเตอร์ของคุณจะต้องออกไปกับเครือข่ายที่จะมองขึ้นเซิร์ฟเวอร์สำหรับ.ukแล้ว.co.ukจากนั้นแล้ว.google.co.uk www.google.co.ukคำตอบเหล่านั้นไม่ได้เปลี่ยนแปลงมากนักดังนั้นการค้นหาพวกเขาทุกครั้งจึงเป็นการเสียเวลาและทราฟฟิกเครือข่าย แต่เมื่อ NS ส่งคืนระเบียนไปยังคอมพิวเตอร์ของคุณจะมีค่า TTL ซึ่งจะบอกให้คอมพิวเตอร์ของคุณแคชผลลัพธ์เป็นเวลาหลายวินาที

ตัวอย่างเช่นระเบียน NS สำหรับ.ukมี TTL 172800 วินาที - 2 วัน Google ยิ่งอนุรักษ์มากขึ้น - ระเบียน NS สำหรับgoogle.co.ukมี TTL 4 วัน บริการที่ต้องพึ่งพาการอัปเดตอย่างรวดเร็วสามารถเลือก TTL ที่ต่ำกว่าได้ตัวอย่างเช่นtelegraph.co.ukมี TTL เพียง 600 วินาทีในระเบียน NS ของพวกเขา

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

c) หากเหตุผลเดียวของความล่าช้าคือแคช DNS เป็นไปได้ไหมที่จะข้ามพวกเขาไปดังนั้นฉันจะเห็นว่าเกิดอะไรขึ้นในเวลาจริง

ใช่มันเป็นเรื่องง่ายถ้าคุณกำลังทดสอบด้วยตนเองdigหรือเครื่องมือที่คล้ายกัน - เพียงแค่บอกเซิร์ฟเวอร์ที่จะติดต่อ

นี่คือตัวอย่างของการตอบกลับที่แคช:

jamezpolley@host:~$dig telegraph.co.uk NS

; <<>> DiG 9.7.0-P1 <<>> telegraph.co.uk NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36675
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;telegraph.co.uk.       IN  NS

;; ANSWER SECTION:
telegraph.co.uk.    319 IN  NS  ns1-63.akam.net.
telegraph.co.uk.    319 IN  NS  eur3.akam.net.
telegraph.co.uk.    319 IN  NS  use2.akam.net.
telegraph.co.uk.    319 IN  NS  usw2.akam.net.
telegraph.co.uk.    319 IN  NS  use4.akam.net.
telegraph.co.uk.    319 IN  NS  use1.akam.net.
telegraph.co.uk.    319 IN  NS  usc4.akam.net.
telegraph.co.uk.    319 IN  NS  ns1-224.akam.net.

;; Query time: 0 msec
;; SERVER: 97.107.133.4#53(97.107.133.4)
;; WHEN: Thu Feb  2 05:46:02 2012
;; MSG SIZE  rcvd: 198

ส่วนธงที่นี่ไม่มีaaธงดังนั้นเราจะเห็นว่าผลลัพธ์นี้มาจากแคชมากกว่าโดยตรงจากแหล่งที่เชื่อถือได้ ในความเป็นจริงเราสามารถเห็นได้ว่ามันมาจาก97.107.133.4ซึ่งเป็นหนึ่งในตัวแก้ไข DNS ของ Linode ความจริงที่ว่าคำตอบนั้นถูกส่งออกมาจากแคชใกล้กับฉันมากนั่นหมายความว่าฉันใช้เวลา 0msec ในการรับคำตอบ แต่อย่างที่เราจะเห็นในอีกสักครู่ราคาที่ฉันจ่ายสำหรับความเร็วนั้นคือคำตอบนั้นล้าสมัยไปเกือบ 5 นาที

ในการเลี่ยงผ่านตัวแก้ไขของ Linode และตรงไปที่แหล่งที่มาเพียงเลือกหนึ่งใน NSes เหล่านั้นและบอกให้ขุดติดต่อโดยตรง:

jamezpolley@li101-70:~$dig @ns1-224.akam.net telegraph.co.uk NS

; <<>> DiG 9.7.0-P1 <<>> @ns1-224.akam.net telegraph.co.uk NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23013
;; flags: qr aa rd; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;telegraph.co.uk.       IN  NS

;; ANSWER SECTION:
telegraph.co.uk.    600 IN  NS  use2.akam.net.
telegraph.co.uk.    600 IN  NS  eur3.akam.net.
telegraph.co.uk.    600 IN  NS  use1.akam.net.
telegraph.co.uk.    600 IN  NS  ns1-63.akam.net.
telegraph.co.uk.    600 IN  NS  usc4.akam.net.
telegraph.co.uk.    600 IN  NS  ns1-224.akam.net.
telegraph.co.uk.    600 IN  NS  usw2.akam.net.
telegraph.co.uk.    600 IN  NS  use4.akam.net.

;; Query time: 9 msec
;; SERVER: 193.108.91.224#53(193.108.91.224)
;; WHEN: Thu Feb  2 05:48:47 2012
;; MSG SIZE  rcvd: 198

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

แม้ว่า TTL ที่นี่จะมีเพียง 600 วินาทีผู้ให้บริการอินเทอร์เน็ตบางรายจะพยายามลดทราฟฟิกของพวกเขาให้มากขึ้นด้วยการบังคับให้ตัวแก้ไข DNS ทำการแคชผลลัพธ์นานขึ้น - ในบางกรณีเป็นเวลา 24 ชั่วโมงขึ้นไป มันเป็นแบบดั้งเดิม (ในแบบที่เราไม่ทราบว่านี่คือสิ่งที่จำเป็น แต่เป็นวิธีที่ปลอดภัย) เพื่อสมมติว่าการเปลี่ยนแปลง DNS ที่คุณทำจะไม่ปรากฏให้เห็นทุกที่บน อินเทอร์เน็ต 24-48 ชั่วโมง


3
+1 นั่นคือคำอธิบายที่ยอดเยี่ยมหนึ่งคำ จะคั่นหน้านี้อย่างแน่นอน!
Trollhorn

3
คำตอบที่แท้จริงว่าการตอบสนอง DNS มาจากแคชหรือไม่อยู่ในส่วน "ค่าสถานะ" ของคำตอบ ไม่มีเหตุผลทางเทคนิคว่าทำไมไม่สามารถตั้งค่า TTL ของพูด 319 วินาที ให้มองหาaa(คำตอบที่เชื่อถือได้) แทนflagในคำตอบ ถ้าaaมีคำตอบนั้นมาจากเซิร์ฟเวอร์ชื่อที่เชื่อถือได้โดยตรง (หากไม่มีคำตอบอาจยังใหม่อยู่เซิร์ฟเวอร์ชื่อแบบเรียกซ้ำบางตัวจะล้างaaค่าสถานะก่อนส่งผ่านการตอบกลับไปยังตัวแก้ไขไคลเอนต์)
CVn

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

2
@JamesPolley มีข้อผิดพลาด (เล็กน้อย) ในคำอธิบายของคุณเมื่อคุณใช้.ukเซิร์ฟเวอร์ ขณะนี้โดเมนระดับที่สองที่ได้รับการจัดการของ Nominet อยู่บนเซิร์ฟเวอร์เดียวกันuk.ดังนั้นการสอบถามexample.co.ukไปยังukเซิร์ฟเวอร์จะได้รับการมอบหมายทันทีโดยไม่ต้องผ่านการมอบหมายไปยังco.ukเซิร์ฟเวอร์ก่อน
Alnitak

1
โปรดทราบว่า+traceตัวเลือกของ dig จะทำการค้นหาเนมเซิร์ฟเวอร์ที่คุณกำหนดค่าไว้สำหรับเนมเซิร์ฟเวอร์รูทเพื่อให้สามารถเริ่มการค้นหาได้ หาก nameserver ในพื้นที่ของคุณคือdnsmasq(เช่นเดียวกับ Ubuntu) จะไม่รองรับสิ่งนี้ดังนั้นคุณจะได้รับข้อผิดพลาด dig +trace @8.8.8.8 www.example.comใช้ 8.8.8.8 เป็นบริการ DNS สาธารณะของ Google ใช้ 1.1.1.1 เพื่อให้เทียบเท่ากับ Cloudflare
Roger Lipscombe

9

a) จำนวน IP -> การแมปชื่อโฮสต์ในโลกนั้นใหญ่มาก ระบบนี้กระจายความรับผิดชอบในการโฮสต์ระเบียนย่อยและ MX ทั้งหมดและบันทึก DNS อื่น ๆ ทั้งหมดให้กับเจ้าของชื่อโดเมน นี่คือจุดสำคัญของชื่อโดเมน .comถูกถือครองโดยหนึ่งรีจิสทรีที่อื่น ๆ.ukสามารถถือครองได้ ในทำนองเดียวกันexample.comและotherexample.comสามารถโฮสต์แยกต่างหากเพื่อให้ทรัพยากรสามารถกระจาย

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

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


เกี่ยวกับ 'C' โปรดใช้ความระมัดระวัง ตั้งค่าที่ TTL ต่ำพอและเซิร์ฟเวอร์ DNS ของคุณอาจใช้งานได้ ไม่ใช่ปัญหาใหญ่ถ้ามีคนอื่นที่ไม่ใช่คุณกำลังจัดการ DNS
Publiccert

ดังนั้นหากไม่ใช่โดเมนย่อยก็จะไม่มีข้อได้เปรียบมากนัก
sabof

4
Perhapse แต่จำแม้จะเป็นโดเมนย่อยของyourdomain.com .comหากเป็นเพียง "ไฟล์โฮสต์" ขนาดใหญ่เพียงไฟล์เดียว (เหมือนก่อนหน้า DNS และพวกเอลฟ์ยังคงเดินไปกลางโลก) ใช่แล้ว คุณมีไฟล์ขนาดใหญ่เพียงไฟล์เดียวและทุกคนจะทำเช่นนั้น
Philip Couling

3
DNS เนมสเปซคงที่โดยไม่มีการมอบหมายเป็นเวลานาน และมันถูกนำมาใช้เป็นรายการเดียวที่จัดขึ้นในที่เดียว ที่กลายเป็นทำไม่ได้และได้ถูกแทนที่ด้วย DNS ในปี 1982 ...
เจมส์ Polley

1
@mfinni ก็คือ "ระบบชื่อโดเมน" ไม่ใช่ "ระบบชื่อแบบกระจาย" หรืออะไรทำนองนั้น แน่นอนว่ามันถูกออกแบบให้สามารถแจกจ่ายได้ แต่ไม่มีอะไรจะบอกว่าคุณต้องใช้มันอย่างนั้น สำหรับเครือข่ายสำนักงานขนาดเล็กบางแห่งที่ไม่มีการเชื่อมต่อทั่วโลกการมีทุกอย่างในรูทโซน (หรือ TLD เดียวเช่นlocal) อาจทำให้รู้สึกถึงจำนวน จำกัด
CVn

3

หากคุณใช้ระบบ * ให้ดาวน์โหลดสำเนา djbdns ของ Dan Bernstein จากhttp://cr.yp.to/djbdns.htmlจากนั้นรันโปรแกรม dnstrace ของเขาเพื่อดูว่าระบบสืบค้นแบบวนซ้ำ มันมีข้อมูลมาก


ฉันจะเห็นผลของการเปลี่ยนแปลงการกำหนดค่าทันทีหรือไม่
sabof

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

3

a) จำนวนชื่อโดเมนที่เป็นไปได้นั้นใหญ่เกินไปสำหรับเซิร์ฟเวอร์หนึ่งเครื่องที่จะจัดการ และไม่เพียงแค่มี. com; มี. net, .org, .se, .info และอื่น ๆ จำนวนมาก เพิ่มไปที่คุณสามารถมอบหมายความรับผิดชอบสำหรับโดเมนย่อย (ซึ่งเป็นสิ่งที่มีประสิทธิภาพcom) DNS ที่มีการรวมศูนย์น้อยทำให้ง่ายต่อการจัดการทั้งหมด

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

c) แม้ว่าคุณจะสามารถปิดการใช้งานแคชของคุณได้ แต่บ่อยครั้งที่เซิร์ฟเวอร์ DNS อื่น ๆ ระหว่างเครื่องของคุณกับเซิร์ฟเวอร์ DNS ของ yourdomain.com ตัวอย่างเช่นเซิร์ฟเวอร์ DNS ของ ISP ของคุณจะพยายามแคชให้มากที่สุด ระเบียนเดียวที่ได้รับการอัปเดตอย่างรวดเร็วรอบ ๆ เน็ตนั้นเป็นระเบียนที่มี TTL สั้น ๆ (ซึ่งโดยทั่วไปบอกว่า "ฉันใช้งานได้เพียงไม่กี่วินาทีเท่านั้นหลังจากนั้นขอข้อมูลใหม่อีกครั้ง") เหตุผลที่ TTL สูงมากคือเพื่อให้เซิร์ฟเวอร์ที่รับผิดชอบโดเมนสามารถถ่ายโอนงานบางส่วนไปยังเซิร์ฟเวอร์อื่น หากคุณมีเครือข่ายทั้งหมดติดต่อเซิร์ฟเวอร์ DNS rinky-dink หนึ่งหรือสองตัวของคุณสำหรับการเข้าชมเว็บไซต์ของคุณพวกเขาจะใช้ไม่ได้กับคนที่สองที่เห็นไซต์ของคุณใน /., digg เป็นต้น


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

2
@JdeBP: มันเป็น "ความเข้าใจผิดอย่างกว้างขวาง" เพราะเท่าที่ผมเคยเห็นในโลกแห่งความจริงมันเป็นความจริงส่วนใหญ่ หากคุณได้รับที่อยู่ของคุณผ่าน DHCP เช่นเดียวกับที่ทุกคนทำคุณจะได้รับที่อยู่ของเซิร์ฟเวอร์ DNS ที่คุณควรใช้ ซึ่งในเครือข่ายในบ้านมักจะเป็นเราเตอร์ซึ่งมักจะส่งต่อไปยัง DNS ของ ISP ของคุณ และในเครือข่ายธุรกิจขนาดเล็กมักจะเป็นตัวควบคุมโดเมน - ซึ่งมักจะส่งต่อไปยัง DNS ของ ISP อีกครั้ง โดยทั่วไปแล้ว ณ จุดนั้นสิ่งที่เกิดซ้ำจะใช้เวลามากกว่า
cHao

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

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

@cHao เซิร์ฟเวอร์ CPE DNS ส่วนใหญ่จะ "ส่งต่อ" และไม่แคช
Alnitak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.