DynamicDNS ทำงานอย่างไรในทันที


16

ความเข้าใจของฉันเกี่ยวกับฟังก์ชั่นหลักของ DNS คือการให้บริการการตั้งชื่อ / การแมประหว่างชื่อโดเมน (เช่นblah-whatever.com) และที่อยู่ IP (เช่น100.2.3.4 )

นอกจากนี้ฉันเข้าใจว่าเซิร์ฟเวอร์ Internet DNS ทำงานอย่างไรเมื่อมีการเปลี่ยนแปลงการจับคู่โดเมน / IP (กล่าวว่าเปลี่ยนblah-whatever.comเป็นชี้ไปที่105.2.3.4ฯลฯ ) การเปลี่ยนแปลงนี้จะต้องเผยแพร่ทั่วทุกเซิร์ฟเวอร์ DNS ในโลก ก่อนที่การเปลี่ยนแปลงจะถูกกล่าวว่าเป็น "สมบูรณ์" บางครั้งระยะเวลาการเผยแพร่นี้อาจนานถึง 24 ชั่วโมง

ดังนั้นเริ่มต้นด้วยหากมีสิ่งใดที่ฉันได้กล่าวไปแล้วว่ามีความเข้าใจผิดหรือไม่ถูกต้องโปรดเริ่มต้นด้วยการแก้ไขฉัน!

สมมติว่าฉันถูกต้องมากขึ้นหรือน้อยลงฉันไม่เข้าใจว่า บริษัท เช่น CloudFlare หรือ DynamicDNS สามารถให้บริการ "แบบโรลโอเวอร์ทันที" - ประเภทบริการที่คุณเปลี่ยนระเบียน DNS กับพวกเขาและ - บูม - การเปลี่ยนแปลงจะมีผลทันที

ฉันเข้าใจว่ามีบางสิ่งที่เรียกว่า "TTL" (เวลาที่จะอยู่ฉันคิดว่า?!?) ที่มีบทบาทในความสามารถในการโรลโอเวอร์แบบทันทีนี้ แต่เนื่องจากฉันกำลังสับสนกับความสามารถในการเริ่มต้นด้วยมันยากที่จะเข้าใจว่าอะไร TTL นี้หรือเพื่อจุดประสงค์

ดังนั้นฉันจึงถามว่า: อะไรเกี่ยวกับ Dynamic DNS และคู่แข่งที่อนุญาตให้พวกเขาเปลี่ยนการแมป DNS ได้ทันที (โดยไม่ต้องใช้เวลา 24 ชั่วโมงในการเผยแพร่การเปลี่ยนแปลง DNS เหมือนคนอื่น ๆ ) และ TTL เข้ากับกระบวนการนี้อย่างไร ขอบคุณล่วงหน้า.

คำตอบ:


3

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

เพื่อความเข้าใจของฉันมี 2 ปัจจัยที่เกี่ยวข้องกับความรวดเร็วของการเปลี่ยนแปลง DNS ที่เผยแพร่:

  1. การถ่ายโอนโซนระหว่างเซิร์ฟเวอร์ DNS ที่มีสิทธิ์สำหรับโซน
  2. TTL ตั้งค่าสำหรับระเบียนเดียวในโซนนั้น

การโอนโซน

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

สิ่งนี้สามารถทำได้โดยการดึงโซนล่าสุดในช่วงเวลาที่กำหนดหรือรอการแจ้งเตือนจากเซิร์ฟเวอร์ชื่อที่ได้รับอนุญาต

เนื่องจากกลไกนี้อยู่ภายใต้การควบคุมอย่างสมบูรณ์ของใครก็ตามที่ทำงานชื่อเซิร์ฟเวอร์ความล่าช้าใด ๆ ในพื้นที่นี้สามารถควบคุมได้อย่างสมบูรณ์

TTL

TTLคือหมดเวลาที่กำหนดไว้สำหรับระเบียนทรัพยากรทุกเดียวในโซน ค่านี้กำหนดระยะเวลาที่เร็กคอร์ดควรถูกแคชโดยผู้ให้บริการ DNS ที่ไม่ได้รับอนุญาต

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

เนื่องจาก TTL ยังอยู่ภายใต้การควบคุมอย่างเต็มที่ของใครก็ตามที่ควบคุมโซนความล่าช้านั้นยังสามารถควบคุมได้อย่างสมบูรณ์


ขอบคุณ @Oliver (+1) - ดังนั้นดูเหมือน "การวางเมาส์ทันที" เป็นตำนานของเมือง! ฉันเดาว่าคำถามการติดตามของฉันคือ: ทำไมไม่เพียงแก้ไขระเบียน DNS ของฉันด้วยตัวเอง เป็นเพราะ บริษัท เหล่านี้ให้บริการ API เพื่อให้การเปลี่ยนแปลง DNS สามารถดำเนินการอัตโนมัติเมื่อมีเหตุการณ์บางอย่างเกิดขึ้น ฉันเดาว่าฉันกำลังค้นหาจุดประสงค์ที่พวกเขาให้บริการในตอนแรก!
pnongrata

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

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

@zharvey แน่นอนคุณสามารถมี "โรลโอเวอร์แบบทันที" หากคุณหมายถึงว่าแท้จริงให้ทั้งสองเครื่องสลับ IP ของพวกเขา (ซึ่งเป็นไปไม่ได้เสมอไป) นอกจากนั้นคุณจะมีความล่าช้าอยู่เสมอ โดยปกติหากจะย้ายบริการไปยังเซิร์ฟเวอร์อื่นผู้ดูแลระบบจะเปลี่ยน TTL ล่วงหน้า (เช่นลดให้เหลือ 1 ชม.) - ดังนั้นเมื่อการเปลี่ยนแปลงเกิดขึ้นความล่าช้าจะน้อยที่สุด หลังจากเสร็จสิ้น TTL จะเพิ่มขึ้นอีกครั้ง (เช่น 24 ชั่วโมงหรือมากกว่า) เพื่อให้สามารถแคชได้ดีขึ้นและตอบสนองการสืบค้น DNS ได้เร็วขึ้น แต่โดยทั่วไปแล้วจะไม่เกี่ยวข้องกับ DynDNS;)
Izzy

2
ขออภัยที่เป็นคนหยาบคาย แต่คำตอบนี้ผิดไปเกือบทุกประเด็น
Alex

18

คุณมีความเข้าใจผิดบางอย่างดังนั้นฉันจะพยายามอธิบายกระบวนการทั้งหมด (ฉันดีกับรายละเอียดตั้งแต่ฉันเกี่ยวข้องกับการดำเนินการบริการ DNS แบบไดนามิกสาธารณะ)

สมมติว่าโดเมนของคุณคือexample.comและสมมติว่าโดเมน example.com โฮสต์อยู่กับ บริษัท DNS แบบไดนามิกบางอย่างลองเรียกมันว่าlightfastdns.net (ชื่อสมมติ) โดเมนของคุณมีระเบียน DNS - somehost.example.comซึ่งขณะนี้ชี้ไปที่1.1.1.1

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

  2. เซิร์ฟเวอร์การอัปเดตนี้จะผลักดันระเบียนที่อัปเดตของคุณ (สมมติว่า1.2.3.4 ) ไปยังเซิร์ฟเวอร์ DNS " หลัก " สำหรับโดเมนของคุณ เซิร์ฟเวอร์ DNS นี้ยังจะดำเนินการโดยlightfastdns.net ความรวดเร็วที่เกิดขึ้น: ขึ้นอยู่กับวิธีที่ผู้ให้บริการ DNS ออกแบบซอฟต์แวร์ (สามารถทำได้ทันทีและสามารถทำได้ทุก ๆ 24 ชั่วโมงตัวอย่างเช่น gandi.net ผลักดันการอัปเดต DNS หนึ่งครั้งต่อชั่วโมง) แน่นอนว่าlightfastdns.netของเราจะทำทันที

  3. เซิร์ฟเวอร์ DNS หลักนี้จะส่งการอัปเดตไปยังเซิร์ฟเวอร์ DNS ทาสสำหรับโดเมนexample.com เซิร์ฟเวอร์นี้ดำเนินการโดยบริษัทlightfastdns.netเดียวกัน เหตุการณ์นี้เกิดขึ้นเร็วแค่ไหน: ด้วยซอฟต์แวร์หลักที่ทันสมัยจะส่งข้อความแจ้งเตือนไปยังทาสทันทีและพวกเขาจะได้รับการอัปเดตบันทึกจากต้นแบบทันที ด้วยซอฟต์แวร์รุ่นเก่าเรามีค่า REFRESH และ RETRY ในบันทึก SOA แต่วันนี้มันไม่ค่อยมีความเกี่ยวข้อง แน่นอนว่าlightfastdns.netของเราใช้งาน NOTIFY และอัปเดตเผยแพร่ทันที

สิ่งที่เรามีตอนนี้คือเซิร์ฟเวอร์ "สิทธิ์" ทั้งหมดสำหรับโดเมนของคุณได้รับบันทึกที่อัปเดต ( 1.2.3.4 ) สำหรับlightfastdns.netมันใช้เวลาประมาณสองวินาที

  1. ตอนนี้เราจะย้ายไปที่บ้านของ Ivan ที่รัสเซียและ Ivan ต้องการเปิด " somehost.example.com " ในเบราว์เซอร์ของเขา ถ้าเขาไม่เคยเปิดมาก่อนเบราว์เซอร์ของเขาไม่รู้ที่อยู่ดังนั้นเบราว์เซอร์จะถามระบบปฏิบัติการของเขา แต่ถ้าเขาเข้าเยี่ยมชมเว็บไซต์เมื่อเร็ว ๆ นี้ที่อยู่อาจยังคงถูกเก็บไว้ในเบราว์เซอร์และเขาจะใช้ที่อยู่เก่า (ล้าสมัย)! นานแค่ไหน ? - ขึ้นอยู่กับเบราว์เซอร์ Google Chrome เช่นเก็บระเบียน DNS เพียงไม่เกิน 60 วินาที เรามีได้ถึง 60 วินาทีล่าช้า สำหรับความจริงนี้ฉันจะบอกว่าการเปลี่ยนแปลง DNS ยังไม่เผยแพร่ไปยังเบราว์เซอร์นี้

  2. ไม่ว่าในกรณีใดก็ตามหลังจาก 60 วินาทีหรือทันทีเบราว์เซอร์จะขอให้ระบบปฏิบัติการรับที่อยู่ ระบบปฏิบัติการอาจรู้คำตอบ (เก่าล้าสมัย) แล้วส่งคืนในกรณีนี้ฉันจะบอกว่าบันทึกใหม่ไม่ได้เผยแพร่ไปยังระบบปฏิบัติการของ Ivan ระยะเวลาที่ระบบปฏิบัติการจะเก็บค่าเก่า - ระบบปฏิบัติการที่ทันสมัยซึ่งควบคุมโดยพารามิเตอร์TTL TTLใน DNS เป็นตัวกำหนดระยะเวลาที่บันทึกอาจถูกเก็บไว้ในแคช lightfastdns.netของเราได้รับอนุญาตให้ใช้ TTL ที่ค่อนข้างต่ำ - 30 วินาทีดังนั้นเราจึงล่าช้าใหม่มากถึง 30 วินาทีโดยรวม - 90 วินาทีจนถึงตอนนี้

  3. หากระบบปฏิบัติการไม่ทราบคำตอบหรือถ้าคำตอบที่รู้นั้นล้าสมัยแล้วโดย TTL ระบบปฏิบัติการจะถามตัวแก้ไข DNS (ISP ของ Ivan มอบหมายให้เขาใช้ตัวแก้ไข DNS dns.moscow-telecom.ru ) ที่นี่เพื่อระเบียนเก่าอาจถูกแคชได้ถึง TTL วินาทีหรือdns.moscow-telecom.ruอาจไม่ทราบที่อยู่ เราได้รับอีก 30 วินาทีเนื่องจาก dns.moscow-telecom.ruยังแคช DNS ไม่เกินค่า TTL เรามีความล่าช้า120 วินาที นั่นคือสิ่งที่เรียกว่าระเบียน DNS ใหม่ยังไม่เผยแพร่ไปยังเซิร์ฟเวอร์ DNS ของ Moscow-Telecom

  4. ถ้าเซิร์ฟเวอร์ DNS ของ ISP ไม่ทราบคำตอบหรือถ้าคำตอบที่ทราบนั้นล้าสมัยไปแล้วเพราะมันหมดอายุ TTL แล้ว - dns.moscow-telecom.ruจะถามเซิร์ฟเวอร์ DNS AUTHORITATIVEหนึ่งรายการสำหรับexample.net (คุณจำได้หรือไม่) ผู้ที่ได้รับการเปลี่ยนแปลงประมาณ 118 วินาทีที่ผ่านมาและพวกเขาจะกลับคำตอบใหม่คำตอบนี้จะถูกส่งโดย chain ไปยัง DNS resolver, OS และเบราว์เซอร์ของ Ivan ทันที

ดังนั้นการแพร่กระจายบันทึกใช้เวลา 2 ถึง 120 วินาทีขึ้นอยู่กับสถานะของแคชต่างๆ TTL อีกต่อไป - อาจเกิดความล่าช้าอีกต่อไป

เพื่อให้เสร็จสมบูรณ์ - ISP บางรายละเมิดมาตรฐานและบันทึกแคชเป็นเวลานาน OS ที่เก่ากว่าบางตัวเก็บบันทึกเก่าเป็นเวลานานและเบราว์เซอร์รุ่นเก่าด้วย แต่สำหรับผู้ใช้ส่วนใหญ่มันจะทำงานได้ตามที่คาดไว้


ฉันเสียใจมากที่มันออกมานี้อย่างละเอียด อาจมีบางคนต้องการสร้างตัวแปรที่สั้นกว่า (เป็นคำตอบที่แยกต่างหาก) - ยินดีต้อนรับ
Alex

@zharvey ที่จริงแล้วคุณถามว่าอะไรคือความแตกต่างระหว่างไดนามิกและไม่ไดนามิก - มันคือ 1 พวกเขาจัดการกับขั้นตอน (2) และ (3) และ 2 ได้เร็วแค่ไหนพวกเขา TTL ต่ำอนุญาตให้คุณตั้ง
Alex

3

เลขที่การเปลี่ยนแปลงไม่ได้ต้องการที่จะเผยแพร่ไปยังเซิร์ฟเวอร์ DNS ที่ทุกคนในโลก

หากคุณเปลี่ยนบางสิ่งและบางคนสอบถามการเปลี่ยนแปลงระเบียนบนเซิร์ฟเวอร์ DNS ของคุณผลลัพธ์จะเกิดขึ้นทันที

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


ขอบคุณ @Hennes (+1) - โปรดดูคำถามของฉันภายใต้คำตอบของ Oliver - ฉันมีคำถามเดียวกันสำหรับคุณ!
pnongrata
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.