ระเบียน DNS A กับ NS


42

ฉันพยายามที่จะเข้าใจ DNS ดีขึ้นเล็กน้อย แต่ฉันยังไม่ได้รับระเบียน A และ NS อย่างสมบูรณ์

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

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


ยกโทษให้ฮับริสในคำถามเก่า แต่ฉันเป็นผู้ดูแลระบบ DNS และฉันไม่ได้พิจารณาคำตอบ upvoted ใด ๆ เพื่ออธิบายปัญหาอย่างเพียงพอ ฉันสามารถเกี่ยวข้องกับคำถามนี้เพราะฉันมีความสับสนเหมือนกันในวันแรกของฉัน ฉันมีส่วนร่วมคำตอบของฉันเอง
Andrew B

คำตอบ:


44

ตัวอย่างบางส่วนจากfoo.comไฟล์โซนที่สมมติขึ้น

 ....... SOA record & lots more stuff .......
 foo.com.      IN        NS        ns1.bar.com.

 foo.com.      IN        A         192.168.100.1
 ....... More A/CNAME/AAAA/etc. records .......

A Record = "โฮสต์เรียกว่ามีfoo.comชีวิตอยู่ที่อยู่ 192.168.100.1"
NS Record = "ถ้าคุณต้องการทราบเกี่ยวกับโฮสต์ในfoo.comโซนให้ถามเซิร์ฟเวอร์ชื่อ ns1.bar.com"


3
ฉันชอบอ้างอิง foobar : D
JohnThePro

2
@Tiddo เหตุผลใหญ่คือเซิร์ฟเวอร์ทาสมักจะได้รับแจ้งการเปลี่ยนแปลงของโซนเพราะพวกเขาอยู่ในรายการเป็นระเบียน NS นอกจากนี้หากคุณค้นหาเซิร์ฟเวอร์ที่มีสิทธิ์สำหรับns1.foo.comที่อยู่ในกระบวนการค้นหาอย่างอื่นและไม่มีระเบียนอยู่ที่นั่นคุณจะได้รับNXDOMAINและสิ่งเลวร้ายจะเกิดขึ้น (แต่จะใช้งานได้สำหรับผู้ที่สอบถามcomเซิร์ฟเวอร์แม่เนื่องจาก น่าจะมีเรกคอร์ด A บันทึกอยู่ที่นั่น)
voretaq7

1
@JohnThePro - ตัวเลือกอื่นของฉันคือ example.com และฉันเกลียดการอ้างอิง example.com :-)
voretaq7

3
@ voretaq7 ดังนั้นโดยทั่วไปแล้วระเบียน NS จะถูกใช้เป็นกลไกการสำรองข้อมูลและแจ้งให้เซิร์ฟเวอร์ชื่อเหล่านั้นทราบเมื่อที่อยู่ IP ของโดเมนเปลี่ยนไปหรือไม่
Tiddo

2
@tiddo และเป็นป้ายบอกทางตามที่อธิบายไว้ข้างต้น & ในคำตอบอื่น ๆ อีกมากมาย อาจมีสิ่งอื่น ๆ ที่ดูระเบียน NS ที่ฉันลืม แต่สิ่งเหล่านี้เป็นสองสิ่งที่ยิ่งใหญ่ที่จะนึกถึง
voretaq7

18

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

จากกฎเหล่านั้นเราสามารถรับพฤติกรรมที่แตกต่างกันสองอย่างสำหรับสิ่งที่เกิดขึ้นเมื่อมีAบันทึกอยู่บนเซิร์ฟเวอร์ DNS ที่มีชื่อเดียวกัน:

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

ทำให้เกิดความสับสน? ใช่มันเป็น วางบันทึกลงในความคิดเห็นหากคุณมีปัญหาในการติดตามและฉันจะเห็นสิ่งที่ฉันสามารถทำได้


APEX หมายถึงอะไร
Ryan-Neal Mes

@ Ryan-Neal NSบันทึกที่ด้านบนของไฟล์โซน
Andrew B

9

ระเบียน NS ระบุเซิร์ฟเวอร์ที่ให้บริการ DNS สำหรับชื่อโดเมนนั้น

ระเบียน A ชี้ชื่อโฮสต์ (เช่น www, ftp, mail) ไปยังที่อยู่ IP อย่างน้อยหนึ่งรายการ


7

ระเบียน A จับคู่ชื่อกับที่อยู่ IP เช่น

binary.example.com ใน A 192.168.1.42

ระบุว่า binary.example.com แก้ไขเป็น 192.168.1.42

ระเบียน NS จะจับคู่ชื่อกับเนมเซิร์ฟเวอร์อื่นนั่นคือเซิร์ฟเวอร์ DNS อื่นที่ให้บริการโดเมนนั้น นั่นคือ "ฉันไม่ทราบที่อยู่ IP ของชื่อนี้ แต่ถ้าคุณไปถามชื่อเซิร์ฟเวอร์ที่นั่นก็อาจรู้"

binary.example.com IN NS otherbox.example.com
otherbox.example.com ใน A 192.168.1.2

หากคุณถามเซิร์ฟเวอร์ DNS ที่มี 2 รายการข้างต้นสำหรับ binary.example.com (หรือ www.binary.example.com. หรือ foo.bar.binary.example.com) มันจะบอกคุณว่าคุณจะต้องไปขอให้ 192.168.1.2 แปลชื่อเหล่านั้น (หรือเซิร์ฟเวอร์ DNS สามารถทำสิ่งนั้นให้คุณได้หรืออาจมีชื่อที่ได้รับการแก้ไขแคชและส่งคืนให้คุณ)


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

นี่คือคำอธิบายที่ฉันชอบในหมู่ทั้งหมด!
เบนจามิน

6

สิ่งสำคัญคือต้องมีทั้งระเบียน NS และ A ในโซนหากคุณต้องการมอบหมายย่อยให้กับเซิร์ฟเวอร์ DNS อื่น

เช่นเรามีเซิร์ฟเวอร์ dns ns1.bar.com อย่างเป็นทางการสำหรับโซน bar.com และเราต้องมอบหมาย foo.bar.com ให้กับ ns1.foo.bar.com ดังนั้นเราต้องสร้างโซน foo.bar.com และเก็บบันทึกนี้ไว้:

foo.bar.com.     IN NS ns1.foo.bar.com.
ns1.foo.bar.com. IN A  10.10.10.10

หากเราไม่มีตัวแทนการบันทึก A จะใช้ไม่ได้ คู่บันทึกดังกล่าวเรียกว่าบันทึกกาว

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

;; ANSWER SECTION:
foo.bar.com.             10800   IN      NS      ns1.foo.bar.com.

;; ADDITIONAL SECTION:
ns1.foo.bar.com.         7972    IN      A       10.10.10.10

เมื่อทำการร้องขอซ้ำเช่น www.foo.bar.com ไคลเอนต์ DNS ของคุณจะขอสิทธิ์ DNS สำหรับโซน foo.bar.com และรับคำตอบ ns1.foo.bar.com

หากต้องการไปต่อต้องส่งคำขอ A ns1.foo.bar.com ซึ่งให้บริการโดย ... ns1.foo.bar.com ในการแยกลูปการมอบหมายเซิร์ฟเวอร์ DNS ควรเพิ่มส่วนเพิ่มเติมนี้พร้อมกับเรคคอร์ด

เซิร์ฟเวอร์ ns1.foo.bar.com ควรมีระเบียนเดียวกันในโซนดังนั้นจึงสามารถเชื่อถือได้สำหรับโซน foo.bar.com


มีเวลายากที่จะจัดการปัญหาไก่และไข่จนกว่าฉันจะเห็นคำอธิบายบันทึกกาวของคุณ!
Jon Skarpeteig

3

ระเบียน NS มีอยู่ทั้งหมดเพื่อจุดประสงค์ในการกำหนดซึ่ง NAMESERVERS จะรับผิดชอบโดเมนเฉพาะ

มีระเบียน A สำหรับ "ADDRESS" ของเครื่องหรือบริการหนึ่ง ๆ

ตัวอย่างสำหรับคุณ:

ในแผงควบคุม DNS ของคุณคุณจะเห็นระเบียน NS บางรายการนี่คือชื่อ NAMESERVERS ของคุณหรือเครื่องหลักที่รับผิดชอบในการบอกอินเทอร์เน็ตว่ามีข้อมูลใดบ้างในโดเมนของคุณ

NS1.CP.COM NS2.CP.COM

นอกจากนี้ในแผง DNS ของคุณคุณจะมีโดเมนที่คุณเป็นเจ้าของ (เช่น -mikesfunhouse.com) ซึ่งคุณต้องมีบริการบางอย่างเช่นเว็บไซต์

ดังนั้นสิ่งที่คุณจะทำคือมีระเบียน A หลักโดยชี้ "mikesfunhouse.com" ไปที่ "76.19.87.956" (เห็นได้ชัดว่าเป็น IP ปลอม)

จากนั้นคุณจะสร้างอีกระเบียนหนึ่งซึ่งเป็นระเบียน www ซึ่งจะเปลี่ยนเส้นทางโดเมนย่อย "www" ส่วนไปยังเว็บไซต์หลักของคุณ

กล่าวโดยย่อคือคุณใช้ระเบียน A เพื่อแปลงเนมสเปซเป็นที่อยู่ IP


1

ระเบียนเนมเซิร์ฟเวอร์จะบอกอินเทอร์เน็ตว่าเซิร์ฟเวอร์ DNS เก็บเรคคอร์ด A ไว้ดังนั้นเพื่อค้นหาเรคคอร์ด A สำหรับโดเมนย่อยโดยคร่าวๆก็คือกระบวนการต่อไปนี้:

ค้นหาเนมเซิร์ฟเวอร์สำหรับโดเมน -> ค้นหาเนมเซิร์ฟเวอร์สำหรับระเบียน A ของโดเมนย่อย


แต่ถ้าระเบียน A อยู่ในไฟล์เดียวกันนั้นทำไมคุณควรระบุระเบียน NS
Tiddo

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