เซิร์ฟเวอร์ DNS 2012R2 เซิร์ฟเวอร์ส่งคืน SERVFAIL สำหรับการสืบค้น AAAA บางรายการ


17

(เขียนใหม่คำถามส่วนใหญ่เนื่องจากการทดสอบดั้งเดิมจำนวนมากของฉันไม่เกี่ยวข้องกับข้อมูลใหม่)

ฉันมีปัญหากับเซิร์ฟเวอร์ DNS ของเซิร์ฟเวอร์ 2012R2 ผลข้างเคียงที่ใหญ่ที่สุดของปัญหาเหล่านี้คือการแลกเปลี่ยนอีเมลที่ไม่ผ่าน แลกเปลี่ยนการสืบค้นสำหรับระเบียน AAAA ก่อนที่จะลองบันทึก A เมื่อเห็น SERVFAIL สำหรับระเบียน AAAA จะไม่ลองใช้ระเบียน A แต่จะยอมแพ้

สำหรับบางโดเมนเมื่อทำการค้นหาเซิร์ฟเวอร์ DNS ไดเรกทอรีที่ใช้งานของฉันฉันได้รับ SERVFAIL แทนที่จะเป็น NOERROR โดยไม่มีผลลัพธ์

ฉันลองสิ่งนี้จากตัวควบคุมโดเมน Server 2012R2 หลายตัวที่ใช้ DNS หนึ่งในนั้นคือโดเมนที่แยกจากกันอย่างสิ้นเชิงในเครือข่ายที่แตกต่างกันหลังไฟร์วอลล์และการเชื่อมต่ออินเทอร์เน็ตที่แตกต่างกัน

ที่อยู่สองที่ฉันรู้ว่าทำให้เกิดปัญหานี้smtpgw1.gov.on.caและmxmta.owm.bell.net

ฉันใช้digเครื่อง linux เพื่อทดสอบสิ่งนี้ (192.168.5.5 เป็นตัวควบคุมโดเมนของฉัน):

grant@linuxbox:~$ dig @192.168.5.5 smtpgw1.gov.on.ca -t AAAA

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56328
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;smtpgw1.gov.on.ca.             IN      AAAA

;; Query time: 90 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Oct 21 14:09:10 EDT 2015
;; MSG SIZE  rcvd: 46

แต่การค้นหากับตัวควบคุมโดเมนสาธารณะทำงานได้ตามที่คาดไว้:

grant@home-ssh:~$ dig @4.2.2.1 smtpgw1.gov.on.ca -t AAAA

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 269
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 8192
;; QUESTION SECTION:
;smtpgw1.gov.on.ca.             IN      AAAA

;; Query time: 136 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Wed Oct 21 14:11:19 EDT 2015
;; MSG SIZE  rcvd: 46

ดังที่ฉันได้กล่าวมาฉันได้ลองทำสิ่งนี้ในเครือข่ายและโดเมนสองแห่ง หนึ่งคือโดเมนใหม่ซึ่งแน่นอนมีการตั้งค่าเริ่มต้นทั้งหมดสำหรับ DNS อีกรายการหนึ่งถูกย้ายไปยัง Server 2012 ดังนั้นอาจมีการตั้งค่าเก่าจาก 2003/2008 ฉันได้ผลลัพธ์เดียวกันทั้งคู่

ปิดใช้งาน EDNS ด้วยการdmscnd /config /enableednsprobes 0แก้ไข ฉันเห็นผลลัพธ์การค้นหามากมายเกี่ยวกับ EDNS ที่เป็นปัญหาใน Server 2003 แต่ไม่มากที่ตรงกับสิ่งที่ฉันเห็นใน Server 2012 ไฟร์วอลล์ทั้งสองไม่มีปัญหากับ EDNS การปิดใช้งาน EDNS ควรเป็นการแก้ปัญหาชั่วคราวซึ่งจะป้องกันการใช้ DNSSEC และอาจทำให้เกิดปัญหาอื่น ๆ

ฉันเคยเห็นบางโพสต์เกี่ยวกับปัญหากับ Server 2008R2 และ EDNS แต่โพสต์เดียวกันเหล่านั้นบอกว่าสิ่งต่าง ๆ ได้รับการแก้ไขใน Server 2012 ดังนั้นจึงควรทำงานอย่างถูกต้อง

ฉันได้ลองเปิดใช้งานบันทึกการดีบักสำหรับ DNS แล้ว ฉันเห็นแพ็คเก็ตที่ฉันคาดไว้ แต่มันก็ไม่ได้ให้ข้อมูลเชิงลึกมากนักว่าทำไมมันถึงส่งคืน SERVFAIL นี่คือส่วนที่เกี่ยวข้องของบันทึกการดีบักเซิร์ฟเวอร์ DNS:

แพคเก็ตแรก - แบบสอบถามจากไคลเอนต์ไปยังเซิร์ฟเวอร์ DNS ของฉัน

10/16/2015 9:42:29 น. 0974 แพ็คเก็ต 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7) smtpgw1 (3) gov (2) บน (2) ca (0)
ข้อมูลคำถาม UDP ที่ 000000EFF1BF01A0
  ซ็อกเก็ต = 508
  รีโมท addr 172.16.0.254, พอร์ต 50764
  Query Time = 4556080, Queued = 0, Expire = 0
  Buf length = 0x0fa0 (4000)
  ความยาวของข้อความ = 0x002e (46)
  ข้อความ:
    XID 0xa61e
    ธง 0x0120
      QR 0 (คำถาม)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 1
      RA 0
      Z 0
      ซีดี 0
      โฆษณา 1
      RCODE 0 (NOERROR)
    จำนวน 1
    ACOUNT 0
    NSCOUNT 0
    บัญชี 1
    ส่วนคำถาม:
    Offset = 0x000c, RR count = 0
    ชื่อ "(7) smtpgw1 (3) gov (2) บน (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ส่วนคำตอบ:
      ว่างเปล่า
    ส่วนของผู้รับผิดชอบ:
      ว่างเปล่า
    ส่วนเพิ่มเติม:
    Offset = 0x0023, RR count = 0
    ชื่อ "(0)"
      ประเภท OPT (41)
      ชั้น 4096
      TTL 0
      DLEN 0
      ข้อมูล   
        ขนาดบัฟเฟอร์ = 4096
        Rcode Ext = 0
        Rcode เต็ม = 0
        รุ่น = 0
        ธง = 0

แพคเก็ตที่สอง - ค้นหาจากเซิร์ฟเวอร์ DNS ของฉันไปยังเซิร์ฟเวอร์ DNS

10/16/2015 9:42:29 น. 0974 แพ็คเก็ต 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA (7) smtpgw1 (3) gov (2) บน (2) ca (0)
ข้อมูลคำถาม UDP ที่ 000000EFF0A22160
  ซ็อกเก็ต = 9812
  รีโมต addr 204.41.8.237, พอร์ต 53
  Query Time = 0, Queued = 0, Expire = 0
  Buf length = 0x0fa0 (4000)
  ความยาวของข้อความ = 0x0023 (35)
  ข้อความ:
    XID 0x3e6c
    ตั้งค่าสถานะ 0x0000
      QR 0 (คำถาม)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 0
      RA 0
      Z 0
      ซีดี 0
      โฆษณา 0
      RCODE 0 (NOERROR)
    จำนวน 1
    ACOUNT 0
    NSCOUNT 0
    ARCOUNT 0
    ส่วนคำถาม:
    Offset = 0x000c, RR count = 0
    ชื่อ "(7) smtpgw1 (3) gov (2) บน (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ส่วนคำตอบ:
      ว่างเปล่า
    ส่วนของผู้รับผิดชอบ:
      ว่างเปล่า
    ส่วนเพิ่มเติม:
      ว่างเปล่า

แพ็กเก็ตที่สาม - การตอบสนองจากเซิร์ฟเวอร์ DNS (NOERROR)

10/16/2015 9:42:29 น. 0974 แพ็คเก็ต 000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ [0084 A NOERROR] AAAA (7) smtpgw1 (3) gov (2) บน (2) ca (0)
ข้อมูลตอบกลับ UDP ที่ 000000EFF2188100
  ซ็อกเก็ต = 9812
  รีโมต addr 204.41.8.237, พอร์ต 53
  Query Time = 4556080, Queued = 0, Expire = 0
  Buf length = 0x0fa0 (4000)
  ความยาวของข้อความ = 0x0023 (35)
  ข้อความ:
    XID 0x3e6c
    ธง 0x8400
      QR 1 (ตอบโต้)
      OPCODE 0 (QUERY)
      AA 1
      TC 0
      RD 0
      RA 0
      Z 0
      ซีดี 0
      โฆษณา 0
      RCODE 0 (NOERROR)
    จำนวน 1
    ACOUNT 0
    NSCOUNT 0
    ARCOUNT 0
    ส่วนคำถาม:
    Offset = 0x000c, RR count = 0
    ชื่อ "(7) smtpgw1 (3) gov (2) บน (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ส่วนคำตอบ:
      ว่างเปล่า
    ส่วนของผู้รับผิดชอบ:
      ว่างเปล่า
    ส่วนเพิ่มเติม:
      ว่างเปล่า

แพ็กเก็ตที่สี่ - การตอบสนองจากเซิร์ฟเวอร์ DNS ของฉันไปยังไคลเอนต์ (SERVFAIL)

10/16/2015 9:42:29 น. 0974 แพ็คเก็ต 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA (7) smtpgw1 (3) gov (2) บน (2) ca (0)
ข้อมูลตอบกลับ UDP ที่ 000000EFF1BF01A0
  ซ็อกเก็ต = 508
  รีโมท addr 172.16.0.254, พอร์ต 50764
  แบบสอบถามเวลา = 4556080, จัดคิว = 4556080, หมดอายุ = 4556083
  Buf length = 0x0fa0 (4000)
  ความยาวของข้อความ = 0x002e (46)
  ข้อความ:
    XID 0xa61e
    ธง 0x8182
      QR 1 (ตอบโต้)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 1
      RA 1
      Z 0
      ซีดี 0
      โฆษณา 0
      RCODE 2 (SERVFAIL)
    จำนวน 1
    ACOUNT 0
    NSCOUNT 0
    บัญชี 1
    ส่วนคำถาม:
    Offset = 0x000c, RR count = 0
    ชื่อ "(7) smtpgw1 (3) gov (2) บน (2) ca (0)"
      QTYPE AAAA (28)
      QCLASS 1
    ส่วนคำตอบ:
      ว่างเปล่า
    ส่วนของผู้รับผิดชอบ:
      ว่างเปล่า
    ส่วนเพิ่มเติม:
    Offset = 0x0023, RR count = 0
    ชื่อ "(0)"
      ประเภท OPT (41)
      คลาส 4000
      TTL 0
      DLEN 0
      ข้อมูล   
        ขนาดบัฟเฟอร์ = 4000
        Rcode Ext = 0
        Rcode Full = 2
        รุ่น = 0
        ธง = 0

สิ่งอื่น ๆ ที่ควรทราบ:

  • หนึ่งในเครือข่ายที่มีการเข้าถึงอินเทอร์เน็ต IPv6 ดั้งเดิมอื่น ๆ ไม่ได้ (แต่สแต็ค IPv6 ถูกเปิดใช้งานบนเซิร์ฟเวอร์ที่มีการตั้งค่าเริ่มต้น) ดูเหมือนจะไม่ใช่ปัญหาเครือข่าย IPv6
  • ไม่ส่งผลกระทบต่อโดเมนทั้งหมด ตัวอย่างเช่นdig @192.168.5.5 -t AAAA serverfault.comคืนค่า NOERROR และไม่มีผลลัพธ์ สิ่งเดียวกันสำหรับgoogle.comส่งคืนที่อยู่ IPv6 ของ Google อย่างถูกต้อง
  • พยายามติดตั้งโปรแกรมแก้ไขด่วนจากKB3014171ไม่แตกต่าง
  • ติดตั้งการอัปเดตจากKB3004539แล้ว

แก้ไข 7 พ.ย. 2558

ฉันจะตั้งค่าได้อีกไม่อยู่ในโดเมนเข้าร่วมเครื่องเซิร์ฟเวอร์ 2012R2 และติดตั้งบทบาทเซิร์ฟเวอร์ DNS nslookup -type=aaaa smtpgw1.gov.on.ca localhostและทดสอบกับคำสั่ง มันไม่มีปัญหาเดียวกัน

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

แก้ไข 8 พฤศจิกายน 2558

ใช้การอัปเดตทั้งหมดสร้างความแตกต่าง ผ่านการตรวจสอบอีกครั้งว่ามีความแตกต่างของการกำหนดค่าระหว่างเซิร์ฟเวอร์ทดสอบใหม่กับการตั้งค่า DNS ของตัวควบคุมโดเมนของฉันหรือไม่และ - ตัวควบคุมโดเมนมีการตั้งค่าตัวส่งต่อ

ตอนนี้ฉันแน่ใจว่าฉันลองใช้กับผู้ส่งต่อและไม่ได้ทำการทดสอบครั้งแรก แต่ฉันลองใช้digจากเครื่องลินุกซ์เท่านั้น ฉันได้รับผลลัพธ์ที่แตกต่างกันเล็กน้อยเมื่อมีและไม่มีการตั้งค่าตัวส่งต่อ (ลองกับ Google, OpenDNS, 4.2.2.1 และเซิร์ฟเวอร์ ISP DNS ของฉัน) เมื่อฉันใช้ nslookup บนเครื่อง windows

Server failedกับชุดส่งฉันได้รับ

โดยไม่ต้องมีการส่งต่อ (ดังนั้นจึงใช้เซิร์ฟเวอร์ DNS ราก) No IPv6 address (AAAA) records available for smtpgw1.gov.on.caผมได้รับ

แต่นั่นก็ยังไม่เหมือนกับสิ่งที่ฉันได้รับสำหรับโดเมนอื่น ๆ ที่ไม่มีบันทึก IPv6 - การค้นหาบน windows เพียงส่งคืนผลลัพธ์สำหรับโดเมนอื่น ๆ

มีหรือไม่มีตัวส่งต่อdigยังคงแสดงSERVFAILชื่อนั้นเมื่อทำการสอบถามเซิร์ฟเวอร์ DNS ของ windows ของฉัน

มีความแตกต่างเล็กน้อยระหว่างโดเมนปัญหากับสิ่งอื่นที่เกี่ยวข้องแม้ว่าฉันจะไม่เกี่ยวข้องกับเซิร์ฟเวอร์ DNS ของ windows:

dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca ไม่มีคำตอบและไม่มีส่วนอำนาจ

dig -t aaaa @8.8.8.8 serverfault.comไม่ส่งคืนคำตอบ แต่มีหน่วยงานที่รับผิดชอบ ดังนั้นโดเมนอื่น ๆ ส่วนใหญ่ที่ฉันลองไม่ว่าฉันจะใช้ตัวแก้ไขปัญหาใด

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


คุณกำลังทำการทดสอบเหล่านี้จากเซิร์ฟเวอร์ Exchange หรือไม่ ถ้าไม่ฉันขอแนะนำให้ทำเช่นนั้นเพื่อให้คุณสามารถดูได้จากมุมมองของ Exchange คุณอาจต้องการลองใช้งาน SMTPDiag จากเซิร์ฟเวอร์ Exchange เช่นกัน ฉันขอแนะนำให้เรียกใช้ในขณะที่ทำการดักจับเครือข่ายบนเซิร์ฟเวอร์ Exchange เพื่อให้คุณสามารถดูรายละเอียดของกิจกรรมเครือข่าย / DNS SMTPDiag เป็นเครื่องมือเก่า แต่เป็นเครื่องมือบรรทัดคำสั่งที่ไม่ต้องการการติดตั้งใด ๆ ดังนั้นฉันคิดว่าควรทำงานกับ Exchange ทุกเวอร์ชัน - microsoft.com/en-us/download/details.aspx?id=11393
joeqwerty

อุปกรณ์เครือข่ายบางตัวไม่รู้จักและจะปฏิเสธแพ็คเก็ต EDNS ทีมเครือข่ายของคุณแนะนำอุปกรณ์ / การตั้งค่าใหม่เมื่อเร็ว ๆ นี้หรือไม่? หากต้องการขจัดความเป็นไปได้นี้ให้พยายามแก้ไขระเบียน AAAA ของ google.com ซึ่งควรส่งคืนที่อยู่ IPv6
strongline

แพ็คเก็ต @strongline EDNS นั้นผ่านไปได้ด้วยดี ระเบียน AAAA สำหรับ Google ใช้งานได้เช่นเดียวกับเว็บไซต์อื่น ๆ ที่ฉันรู้ว่ามี IPv6 ที่ทำงานอยู่ โอกาสที่เพิ่งเกิดขึ้นเมื่อไม่นานมานี้คือการกำจัดเซิร์ฟเวอร์ 2008R2 DC / DNS เซิร์ฟเวอร์ตัวสุดท้ายของเราและแทนที่ด้วย 2012R2
สิทธิ์

IPv6 ถูกปิดการใช้งานในสภาพแวดล้อมของคุณหรือไม่?
Jim B

@JimB ไม่ได้เปิดใช้งานหรือปิดการใช้งานจริง ... สแต็ค IPv6 ทำงานบนเซิร์ฟเวอร์เพราะเป็นค่าเริ่มต้นด้วยการกำหนดค่าเริ่มต้นอะไรก็ตาม เกตเวย์และการเชื่อมต่ออินเทอร์เน็ตไม่มี IPv6 ใด ๆ
สิทธิ์

คำตอบ:


3

ฉันดูในเครือข่ายแล้วอ่านเพิ่มเติม คำร้องขอสำหรับเร็กคอร์ด AAAA เมื่อไม่มีอยู่จะส่งคืน SOA เปิดใช้งาน SOA สำหรับโดเมนอื่นที่ถูกร้องขอ ฉันสงสัยว่าเป็นเพราะเหตุใด Windows จึงปฏิเสธการตอบสนอง ขอ AAAA สำหรับ mx.atomwide.com SOA สำหรับ lgfl.org.uk ฉันจะดูว่าเราสามารถทำให้บางอย่างกับข้อมูลนี้ แก้ไข: สำหรับการอ้างอิงในอนาคตการปิด "แคชที่ปลอดภัยจากมลพิษ" เป็นการชั่วคราวจะช่วยให้การสืบค้นประสบความสำเร็จ ไม่เหมาะ แต่พิสูจน์ว่าปัญหาเกิดขึ้นกับระเบียน DNS ซึ่งหลบ ๆ RFC4074 ยังเป็นการอ้างอิงที่ดี - คำแนะนำและมาตรา


ฉันกำลังจะลองทดสอบสิ่งนี้ในสภาพแวดล้อมของฉันในวันนี้ แต่ฉันคิดว่าคุณอาจจะต้องทำอะไรสักอย่าง!
แกรนท์

นอกจากนี้ฉันได้แก้ไขลิงก์ของคุณแล้ว - ไม่อนุญาตให้มีการใช้ลายเซ็นและลิงก์นอกหัวข้อที่นี่และฉันไม่ต้องการเห็นคำตอบที่ยอดเยี่ยมของคุณลบออกไป
แกรนท์

0

อ้างอิงจากKB832223

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากกลไกการทำงานเสริมสำหรับ DNS (EDNS0) ที่ได้รับการสนับสนุนใน Windows Server DNS

EDNS0 ช่วยให้ขนาดแพ็คเก็ต User Datagram Protocol (UDP) มีขนาดใหญ่ขึ้น อย่างไรก็ตามโปรแกรมไฟร์วอลล์บางโปรแกรมอาจไม่อนุญาตให้ใช้แพ็คเก็ต UDP ที่มีขนาดใหญ่กว่า 512 ไบต์ ดังนั้นแพ็กเก็ต DNS เหล่านี้อาจถูกบล็อกโดยไฟร์วอลล์

Microsoft มีความละเอียดต่อไปนี้:

มติ

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

Microsoft มีข้อเสนอแนะต่อไปนี้เพื่อแก้ไขปัญหา:

วิธีแก้ปัญหา

เมื่อต้องการแก้ไขปัญหานี้ปิดคุณลักษณะ EDNS0 บนเซิร์ฟเวอร์ DNS ที่ใช้ Windows เมื่อต้องการทำสิ่งนี้ให้ดำเนินการต่อไปนี้:

ที่พรอมต์คำสั่งให้พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:

dnscmd /config /enableednsprobes 0

หมายเหตุพิมพ์ 0 (ศูนย์) และไม่ใช่ตัวอักษร "O" หลัง "enableednsprobes" ในคำสั่งนี้


ฉันได้เห็นบทความนี้ - ไฟร์วอลที่ฉันทดสอบด้วยทั้งผ่าน dns ขนาดใหญ่ packetd โดยไม่มีปัญหาดังที่เห็นได้จากการทำงานอย่างสมบูรณ์แบบบน linux การปิดใช้งาน edns จะป้องกันการใช้ DNSSEC ดังนั้นแม้ว่าจะแก้ไขปัญหาได้ แต่ก็ไม่ใช่วิธีที่ดี
สิทธิ์

ขออภัยฉันไม่ทราบว่าแนวทางของ Microsoft จะใช้กับ Linux เช่นกัน จากความอยากรู้คุณมีใด ๆระบบปฏิบัติการไมโครซอฟท์ที่ทำงานผ่านไฟร์วอลล์?
Tim Penner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.