คุณสามารถตั้งค่า IP สำรองสำหรับเซิร์ฟเวอร์ของคุณใน DNS ได้หรือไม่


10

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

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

คำตอบ:


12

ใช่ ...

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

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

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

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


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

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

"แคช DNS อันธพาล" เป็นนิทานของภรรยาเก่า ไม่มีซอฟต์แวร์เซิร์ฟเวอร์ DNS ที่แท้จริงแสดงพฤติกรรมของการเพิกเฉยต่อ TTL สถานที่ที่ข้อมูล DNS ถูกแคชในลักษณะที่ทำให้เกิดปัญหาคือแอปพลิเคชันเช่นปัญหาการค้นหาที่น่าอับอายของ Netscape Navigatorเป็นต้น
JdeBP

@JdeBP: ในคำพูดของเควินคอสต์เนอร์: "แคช DNS อันธพาลไม่ใช่ตำนาน ... ฉันเคยเห็นพวกเขา!" ฉันได้ทำการขุดและเห็นผลลัพธ์ที่บ้าและเหลือเชื่อ ส่วนใหญ่ได้รับความนิยมด้วยบริการที่ จำกัด แบนด์วิดท์และแฝงที่แฝงอยู่ในสมัยที่สิ่งต่าง ๆ เป็นเรื่องธรรมดา (ISP ที่เชื่อมต่อด้วยอัปสตรีมคือ ISDN เป็นต้น) ตอนนี้พวกเขาส่วนใหญ่ใช้งานโดยคนที่ได้ยินเกี่ยวกับพวกเขาว่าเป็นคนดี คิดมานานแล้วและไม่ได้เปลี่ยนใจตั้งแต่นั้น (ไม่ใช่ว่าพวกเขาเป็นความคิดที่ดีโดยเฉพาะในตอนนั้น ... แต่ใช่)
womble

6

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

เช่นชื่อเซิร์ฟเวอร์สำรองหรือเซิร์ฟเวอร์อีเมล

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

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

ตอนนี้เซิร์ฟเวอร์ DNS เนื้อหาจะอยู่ในระเบียนทรัพยากรชนิดพิเศษของตัวเองNSระเบียนทรัพยากรซึ่งไม่มีข้อมูลสำคัญและน้ำหนัก เซิร์ฟเวอร์รีเลย์ของ SMTP นั้นอยู่ในตำแหน่งเดียวกันกับระเบียนทรัพยากรชนิดพิเศษของตนเองMXซึ่งมีข้อมูลลำดับความสำคัญ แต่ไม่มีข้อมูลน้ำหนัก ดังนั้นสำหรับเซิร์ฟเวอร์ DNS เนื้อหาไม่มีข้อกำหนดสำหรับการเผยแพร่ข้อมูลสำรองและการกระจายโหลด และหากมีการใช้MXบันทึกทรัพยากรสำหรับเซิร์ฟเวอร์ส่งต่อ SMTP ไม่มีข้อกำหนดสำหรับการเผยแพร่ข้อมูลการกระจายโหลด

อย่างไรก็ตามSRV- -capable MTSes มีอยู่ในขณะนี้ (เป็นครั้งแรกeximที่ได้รับSRV-capable ตั้งแต่ปี 2005) และสำหรับอื่น ๆโปรโตคอลบริการปราศจากภาระผูกพันกับสัมภาระของMXและNSระเบียนทรัพยากร, SRVการยอมรับอยู่ไกลมากขึ้นอย่างละเอียดและแพร่หลาย หากคุณมีโดเมน Microsoft Windows, เช่นนั้นแพทั้งบริการที่มีอยู่ผ่านSRVการค้นหาในของ DNS ในกรณีนี้มานานกว่าทศวรรษแล้ว

ปัญหาคือทุกคนคิดว่า HTTP เมื่อ HTTP ผ่านไปแล้วในปัจจุบันในปี 2011 ข้อยกเว้นและไม่ใช่กฎที่นี่


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

1
อีกครั้งที่คุณปล่อยให้ HTTP ควบคุมความคิดของคุณ สำหรับลูกค้าหลายรายที่กล่าวถึงข้างต้นSRVระเบียนเป็นวิธีที่กำหนดไว้เพื่อค้นหาบริการ โปรดทราบด้วยว่าคำถามคือกลไกมีอยู่หรือไม่และเป็นอย่างไร มีกลไกอยู่และนี่คือกลไก มันถูกใช้อย่างกว้างขวางมานานนับทศวรรษ
JdeBP

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

1

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

วิธีอื่น ๆ (งบประมาณ) ที่คุณจะสามารถทำได้คือตั้งค่าเครื่องแยกต่างหาก (หรือสองเครื่อง) เพื่อดำเนินการ NAT ตามคำขอดังนั้นหากเว็บเซิร์ฟเวอร์ตายคุณสามารถลบกฎ NAT ออกได้


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

ไม่มีการเชื่อมต่อก็จะหมดเวลาที่คุณควรจะได้รับ iptables ที่จะปฏิเสธมันอย่างถูกต้องชอบโดย:
Olipro

iptables -I อินพุต -p tcp - พอร์ต 80 -j ปฏิเสธ - ปฏิเสธด้วย
icmp

ฉันเหนื่อยและผู้คนไม่สามารถเชื่อมต่อได้ .... ฉันถอดปลั๊กเซิร์ฟเวอร์ที่ฉันกำลังทดสอบ
kjones1876

ผู้ถามไม่ได้พูดถึงเซิร์ฟเวอร์ WWW โดยเฉพาะเท่านั้น แท้จริงแล้ว xe ได้กล่าวถึงเมลและเนมเซิร์ฟเวอร์อย่างชัดเจน
JdeBP

0

ไม่มีเรคคอร์ด A สำรอง แต่อาจมีเร็กคอร์ด A จำนวนมากซึ่งจัดเรียงตามลำดับแบบสุ่ม

เบราว์เซอร์ส่วนใหญ่สามารถลองเซิร์ฟเวอร์อื่นได้หากล้มเหลว (ดู: ความยืดหยุ่นของเว็บด้วย Round Robin DNS )

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


ผู้ถามไม่ได้พูดถึงเซิร์ฟเวอร์ WWW โดยเฉพาะเท่านั้น แท้จริงแล้ว xe ได้กล่าวถึงเมลและเนมเซิร์ฟเวอร์อย่างชัดเจน
JdeBP

@JdeBP: โอ้ ฉันดูเหมือนจะตาบอด ขออภัย: P
jkj

0

ใช่ แต่คุณต้องทำเอง ;-)

คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่คุณต้องการ "ข้อมูลสำรอง A" และวิธีการและสถานการณ์ที่คุณต้องการไปใช้ในการสำรองข้อมูล

นอกจากนี้จะเป็นการดีหากได้ทราบความสัมพันธ์จากมุมมองเครือข่ายระหว่างโฮสต์หลักและโฮสต์สำรอง


0

นี่เป็นคำถามที่ค่อนข้างเก่า แต่เทคโนโลยีที่สำคัญสองอย่างไม่ได้ถูกนำมาใช้ในคำตอบ: Dynamic DNS และ CDNs

Dynamic DNS ได้รับการตั้งค่าเพื่อให้สามารถแก้ไขระเบียน DNS ได้แบบเรียลไทม์ดังนั้นไคลเอนต์การตรวจสอบสามารถทริกเกอร์การเปลี่ยนแปลงไปยังระเบียน DNS A สาธารณะตามความพร้อมใช้งานของบริการ (แน่นอนว่าบริการโฮสต์ DNS ของคุณต้องรองรับ Dynamic DNS)

CDNs สามารถใช้ในการส่ง DNS เช่นเดียวกับ Cloudflare (ซึ่งเปิดตัวในปี 2010 ผมเชื่อว่า)

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