Score:0

การอัปเกรด Ubuntu 20.04 - การจำแนกชื่อ DNS ล้มเหลวในเครือข่ายภายใน

ธง kr

บริษัทของฉันแจกจ่ายซอฟต์แวร์ให้กับลูกค้าบน Ubuntu VM เมื่อเร็ว ๆ นี้เราได้อัปเดต VM ไคลเอ็นต์ทั้งหมดจาก Ubuntu 16/18 เป็น Ubuntu 20.04

เราประสบปัญหาการจำแนกชื่อ DNS ไม่ทำงานบนเครือข่ายภายใน มันทำงานนอกเครือข่าย (เราสามารถ ping เว็บไซต์ภายนอกได้) แต่เราไม่สามารถเชื่อมต่อกับเครื่องในเครือข่ายภายในด้วยชื่อ DNS - โดยที่อยู่ IP เท่านั้น ในหลายกรณี เราสามารถแก้ไขชื่อ DNS ภายในบน VM เก่า (Ubuntu 16/18) ได้ แต่ใช้งานไม่ได้เมื่อเราติดตั้ง VM ใหม่โดยใช้การตั้งค่าเครือข่ายเดียวกัน

เรามักจะตั้งค่า VM ด้วย IP แบบคงที่ ฝ่ายไอทีของลูกค้าให้ข้อมูลเครือข่ายและเซิร์ฟเวอร์ DNS ภายในแก่เรา และเราได้ตั้งค่าของเรา 00-installer-config.yaml ไฟล์ตาม

/etc/netplan/00-installer-config.yaml ตัวอย่างการตั้งค่า:

เครือข่าย:
  อีเธอร์เน็ต:
    enp0s10f0:
      ที่อยู่: [192.168.10.200/24]
      เกตเวย์ 4: 192.168.10.1
      เนมเซิร์ฟเวอร์:
        ที่อยู่: [192.168.10.1, xxx.xxx.xxx.xxx ฯลฯ]
  รุ่น: 2

ใน VM แบบเก่า เรามักจะไม่สามารถ ping เครื่องภายในด้วยชื่อ DNS ได้จนกว่าเราจะเพิ่มชื่อโดเมนภายในเครื่อง เช่น. ปิง fs01 จะไม่ทำงาน แต่ ping fs01.clientdomain.local จะทำงาน. อย่างไรก็ตาม บน Ubuntu VM ดูเหมือนจะไม่ช่วยอะไรเลย เราต้องเปลี่ยนกลับเป็นที่อยู่ IP ของเซิร์ฟเวอร์ไฟล์เสมอแทนที่จะใช้ชื่อโดเมน ในกรณีส่วนใหญ่ เป็นเรื่องปกติเนื่องจาก IP เป็นแบบคงที่และไม่สามารถเปลี่ยนแปลงได้ แต่ก็ไม่เป็นเช่นนั้นเสมอไป และเราต้องการให้สามารถเชื่อมต่อผ่านชื่อ DNS ได้

เครือข่ายและโดเมนไม่เหมาะกับฉันจริงๆ ถ้าใครสามารถให้คำแนะนำเกี่ยวกับสิ่งที่ควรลองหรือพื้นที่สำหรับการวิจัยที่จะชื่นชมมาก!

อัปเดต

ฉันลองใช้คำแนะนำในการเพิ่มที่อยู่ IP ของเนมเซิร์ฟเวอร์ภายในไปยัง nslookup คำสั่งและถ่ายภาพหน้าจอบางส่วน ดูเหมือนว่า VM สามารถค้นหาโฮสต์ด้วย nslookupแต่เมื่อฉันรวม IP ของเนมเซิร์ฟเวอร์ไว้อย่างชัดเจนเท่านั้น

192.168.1.4 เป็นเนมเซิร์ฟเวอร์และโฮสต์ที่เรากำลังพยายามเชื่อมต่อด้วย

บันทึก: สิ่งนี้ใช้ได้กับ Ubuntu 18.04 VM รุ่นเก่าโดยใช้เนมเซิร์ฟเวอร์ภายในและชื่อโฮสต์ FQDN เดียวกัน

ปิงปกติ

user@ubuntu:~$ ping <hostname.domain.local>
    ping: <hostname.domain.local>: การแก้ไขชื่อล้มเหลวชั่วคราว

nslookup ง่าย

user@ubuntu:~$ nslookup <hostname.domain.local>
    เซิร์ฟเวอร์: 127.0.0.53
    ที่อยู่: 127.0.0.53#53

    ** เซิร์ฟเวอร์ไม่พบ <hostname.domain.local>: SERVFAIL

nslookup ด้วยเนมเซิร์ฟเวอร์ IP

user@ubuntu:~$ nslookup <ชื่อโฮสต์.โดเมน.ท้องถิ่น> 192.168.1.4 
    เซิร์ฟเวอร์: 192.168.1.4## หัวข้อ ##
    ที่อยู่: 192.168.1.4#53

    ชื่อ: <hostname.domain.local>
    ที่อยู่: 192.168.1.85
    ชื่อ: <hostname.domain.local>
    ที่อยู่: 192.168.1.4

ในกรณีนี้ เซิร์ฟเวอร์ชื่อ 192.168.1.4 เป็นรายการเซิร์ฟเวอร์ชื่อเดียวในไฟล์ yaml ของเรา ดังนั้นฉันจึงไม่เห็นว่านี่อาจเป็นปัญหากับลำดับของเนมเซิร์ฟเวอร์ในไฟล์ได้อย่างไร:

เครือข่าย:
  อีเธอร์เน็ต:
    enp0s10f0:
      ที่อยู่: [192.168.1.21/24]
      เกตเวย์ 4: <เกตเวย์>
      เนมเซิร์ฟเวอร์:
        ค้นหา: [<domain.local>]
        ที่อยู่: [192.168.1.4]
  รุ่น: 2
jtessier72 avatar
cn flag
เกตเวย์ของคุณเป็นเซิร์ฟเวอร์ DNS ของคุณเหมือนในตัวอย่างหรือไม่ นอกจากนี้ ผลลัพธ์ของ 'nslookup ' และ 'nslookup '. ดูเหมือนว่าคุณไม่สามารถเข้าถึงเซิร์ฟเวอร์ DNS
kr flag
บางครั้ง IT ให้เกตเวย์เป็นหนึ่งในเซิร์ฟเวอร์ DNS ของพวกเขา มักจะแตกต่างกันแม้ว่า เราพยายามทำ nslookup กับชื่อโฮสต์หนึ่งครั้งและไม่พบ แต่เราสามารถเชื่อมต่อกับเซิร์ฟเวอร์ DNS ซึ่งแปลกมาก เมื่อเร็วๆ นี้เราได้อัปเดตที่ซึ่งเราสามารถเชื่อมต่อด้วยชื่อโฮสต์ได้เป็นครั้งแรก แต่โดเมนของพวกเขาคือ ".ca" แทนที่จะเป็น ".local" (เช่น `hostname.domain.ca`) ฉันไม่แน่ใจว่าทำไมมันถึงสร้างความแตกต่างได้
jtessier72 avatar
cn flag
ใน VM แบบเก่า การเพิ่มส่วนต่อท้ายการค้นหา clientdomain.local จะช่วยได้ ราวกับว่าคุณพิมพ์ ping fs01 ระบบจะเพิ่มส่วนต่อท้ายการค้นหาตามลำดับเมื่อพยายามแก้ไขชื่อ คุณอาจเปรียบเทียบที่อยู่ IP ของเนมเซิร์ฟเวอร์ เมื่อคุณบอกว่าคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ dns - นั่นคือการ ping หรือวิธีอื่นหรือไม่
kr flag
ใช่ มันเป็นเพียงการ ping อย่างง่ายไปยังเซิร์ฟเวอร์ DNS ที่เราลอง ฉันคิดว่าฝ่ายไอทีอาจทำ nslookup โดยตรงไปยังเซิร์ฟเวอร์ DNS ในกรณีหนึ่ง แต่ฉันจำไม่ได้แน่ชัด มีคนแนะนำให้ฉันทำ `nslookup ` แทนที่จะระบุเฉพาะโฮสต์ ดังนั้นฉันจะลองอีกครั้งในครั้งต่อไป
ru flag
โปรดทราบว่าคุณลืมกำหนดค่าโดเมนการค้นหาของคุณ หาก "ชื่อโฮสต์" ควรเป็น "ชื่อโฮสต์.foo.bar" เมื่อคุณใช้ FQDN โดเมนการค้นหาของคุณจะต้องตั้งค่าสำหรับ "foo.bar" ในการกำหนดค่า เพิ่ม `การค้นหา: [clientdomain.local]` ลงในส่วน 'เนมเซิร์ฟเวอร์' ของคุณ
kr flag
ขออภัย ฉันลืมใส่ข้อมูลนั้น ฉันคัดลอกเนื้อหาไฟล์ด้วยตนเอง ฉันได้อัปเดตเอาต์พุตการกำหนดค่าด้านบนเพื่อให้แม่นยำยิ่งขึ้น ครั้งนี้เราลองเพิ่มโดเมนการค้นหาและเรียกใช้คำสั่ง `ping/nslookup` อีกครั้ง แต่ก็ไม่มีผลกระทบต่อปัญหาการแก้ไขชื่อภายในของเรา
ru flag
@ user2437443 ฉันถือว่าคุณรัน `netplan apply` หลังจากการเปลี่ยนแปลงหรือรีบูตหลังจากนั้น เพราะไม่เช่นนั้นมันจะไม่ทำงาน นอกจากนี้ยังใช้งานไม่ได้เว้นแต่ 192.168.1.4 (เซิร์ฟเวอร์ DNS) จะทราบว่ามีโดเมนการค้นหา DNS อยู่ และตรวจสอบให้แน่ใจว่าคุณไม่ได้ใส่ `` เพราะนั่นไม่ใช่ส่วนหนึ่งของโดเมน นอกจากนี้ SERVFAIL หมายความว่าเมื่อระบบพยายามค้นหา 192.168.1.4 เกิดข้อผิดพลาด ดังนั้นเซิร์ฟเวอร์ DNS จึงไม่สามารถตอบกลับด้วยการตอบสนองที่ถูกต้อง นั่นแสดงว่าเซิร์ฟเวอร์ DNS ที่คุณใช้เสียหรือกำหนดค่าไม่ถูกต้อง และไม่ใช่ปัญหาฝั่งไคลเอ็นต์
jtessier72 avatar
cn flag
คุณสามารถดูได้ว่าเซิร์ฟเวอร์ DNS ที่ใช้งานจริงคืออะไร: แก้ไข systemd -- สถานะ | grep 'เซิร์ฟเวอร์ DNS' -A2

โพสต์คำตอบ

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