Score:0

คุณจะแก้ไขทั้งโซนสาธารณะและส่วนตัวใน Split-Horizon DNS (โดยใช้ GCP Cloud DNS) ได้อย่างไร

ธง tr

เราใช้ GCP และ Cloud DNS เพื่อจัดการโดเมนของเรา และฉันกำลังพยายามแก้ปัญหาสำหรับกรณีการใช้งานเหล่านี้:

  1. มีบันทึกส่วนตัวสำหรับสิ่งต่างๆ เช่น ฐานข้อมูลที่สามารถแก้ไขได้ภายในเครือข่ายของบริษัทเท่านั้น (VPC ของเรา)
  2. ลบล้างบันทึกสาธารณะด้วย IP ส่วนตัวสำหรับการกำหนดเส้นทางทางเลือกภายในเครือข่ายของบริษัท
  3. สามารถออกความท้าทาย DNS01 และแก้ไขบันทึกภายในเครือข่ายของเราและต่อสาธารณะ เราต้องการสิ่งนี้เนื่องจากวิธีการทำงานของ cert-manager (ซึ่งเราใช้เพื่อออกใบรับรองด้วย letsencrypt)

ฉันได้ลองแก้ปัญหานี้ด้วยโซนสาธารณะและส่วนตัว (หรือที่เรียกว่า DNS แบบแยกขอบฟ้า) อย่างไรก็ตาม โซลูชันนี้จะแก้ปัญหากรณีการใช้งานที่ 1 และ 2 เท่านั้น และจะแก้ปัญหากรณีการใช้งานที่ 2 ก็ต่อเมื่อเราแน่ใจว่าโซนส่วนตัวมีสำเนาของ บันทึกทั้งหมดในโซนสาธารณะ (หากไม่มีคู่ส่วนตัว)

โซลูชันนี้ไม่ตรงกับกรณีการใช้งาน 3 เนื่องจากเซิร์ฟเวอร์ตัวจัดการใบรับรองของเราสร้างเรกคอร์ดในโซนสาธารณะ จากนั้นจึงไม่สามารถแก้ไขในโซนสาธารณะได้ เนื่องจากการตั้งค่าเฉพาะของเรา การปรับแต่ง cert-manager เพื่อแก้ไขทั้งสองโซนผ่านการกำหนดค่าในเครื่องบางอย่างนั้นไม่เหมาะ นอกจากนี้ยังเป็นการยากที่จะสร้างบันทึกในทั้งสองโซน ดังนั้นจึงไม่ใช่ทางออกที่ดีอีกต่อไป

สิ่งที่ฉันต้องการคือให้โซนส่วนตัวส่งต่อคำขอไปยังสาธารณะหากไม่มีบันทึกสำหรับคำขอเฉพาะ มีวิธีการทำเช่นนี้โดยเฉพาะโดยใช้ GCP Cloud DNS หรือไม่

อุดมคติ nslookup -> โซนส่วนตัว -> โซนสาธารณะ

ขณะนี้เรามี nslookup -> โซนส่วนตัว -> ข้อผิดพลาด (NXDOMAIN) หากไม่มีการบันทึก

ตัวอย่างเช่น,

#ขณะอยู่บนแล็ปท็อป
> nslookup ws1.example.com
...
ชื่อ: ws1.example.com
ที่อยู่: 34.111.111.111 # IP สาธารณะสำหรับเว็บเซิร์ฟเวอร์

# ขณะอยู่ในเครือข่าย GCP
> nslookup db.example.com
...
ชื่อ: db.example.com
ที่อยู่: 10.10.0.2 # IP ส่วนตัวสำหรับฐานข้อมูล
> nslookup ws1.example.com
...
ชื่อ: ws1.example.com
ที่อยู่: 10.0.0.10 # IP ส่วนตัว (จากโซนส่วนตัว) สำหรับเว็บเซิร์ฟเวอร์

วิธีนี้ใช้ได้ดีกับกรณีการใช้งานที่ 1 และ 2 แต่เมื่อเราพยายามแก้ไขระเบียนที่มีเฉพาะในโซนสาธารณะ...

#ขณะอยู่บนแล็ปท็อป
> nslookup ws1.example.com
...
ชื่อ: ws1.example.com
ที่อยู่: 34.111.111.111 # IP สาธารณะสำหรับเว็บเซิร์ฟเวอร์
> nslookup ws2.example.com # เรามีบันทึกนี้ในโซนสาธารณะเท่านั้น
...
ชื่อ: ws2.example.com
ที่อยู่: 34.111.111.112 # IP สาธารณะสำหรับเว็บเซิร์ฟเวอร์อื่น

# ขณะอยู่ใน GCP VPC
> nslookup ws1.example.com
...
ชื่อ: ws1.example.com
ที่อยู่: 10.0.0.1 # IP ส่วนตัว (แทนที่) สำหรับเว็บเซิร์ฟเวอร์
> nslookup ws2.example.com # เรามีบันทึกนี้ในโซนสาธารณะเท่านั้น
...
** เซิร์ฟเวอร์ไม่พบ ws2.example.com: NXDOMAIN # ล้มเหลวในการแก้ไข ควรดูที่ private แล้วก็ public zone แล้วแก้เป็น 34.111.111.112

ข้อเสนอแนะใด ๆ

เพื่อแก้ปัญหาชั่วคราว เราได้เปลี่ยนไปใช้ HTTP01 challenge สำหรับ cert-manager แต่เราต้องการใช้ DNS01 ถ้าเป็นไปได้

Score:2
ธง cn

ถ้า ตัวอย่าง.คอม เป็นทั้งโซนส่วนตัวและโซนสาธารณะ ดังนั้น คุณต้องมีบันทึกทรัพยากรสำหรับ ws2 ทั้งในโซนสาธารณะและโซนส่วนตัว ไม่มีความล้มเหลวจากส่วนตัวเป็นสาธารณะ แต่ละโซนต้องมี มีอำนาจ.

กุญแจสำคัญในการทำความเข้าใจปัญหาของคุณ: แบบสอบถามดำเนินการที่ ตัวอย่าง.คอม. หากโซนส่งคืน NXDOMAIN นั่นคือจุดสิ้นสุดของการค้นหา DNS จะไม่ย้ายไปยังเซิร์ฟเวอร์อื่นเพื่อค้นหาคำตอบอื่น

James avatar
tr flag
ฉันรู้ว่ามีวิธีกำหนดค่าเซิร์ฟเวอร์ให้ใช้ DNS ผ่านการกำหนดค่าในเครื่อง ไม่มีเคล็ดลับขี้ขลาดกับ DNS พร็อกซีบางตัวที่สามารถทำได้หรือไม่ หรือใช้เขตนโยบายการตอบสนอง (RPZ) หรือคุณสมบัติ DNS ใหม่อื่น ๆ เพื่อให้บรรลุเป้าหมายนี้
John Hanley avatar
cn flag
@James - 1/2) เกี่ยวกับนโยบายการตอบกลับ DNS ของ Google Cloud ฉันไม่แน่ใจเกี่ยวกับการแยก DNS คุณจะต้องสร้างกฎการส่งผ่าน อย่างไรก็ตาม ฉันไม่ทราบตัวเลือกในการแนบนโยบายการตอบกลับในโซน **ส่วนตัว** เพื่อให้ข้อความค้นหาสำหรับ **ws2.example.com** จะข้ามโซนส่วนตัวและถูกส่งไปยังโซนสาธารณะแทน ในกรณีนั้น คุณจะไม่ใช้ DNS ของ Spit Horizon คุณต้องสร้างนโยบายการตอบกลับสำหรับแต่ละโซนที่คุณต้องการการตอบกลับที่แตกต่างกัน
John Hanley avatar
cn flag
@James - 2/2) สำหรับกรณีการใช้งานของคุณ การจัดการใดง่ายกว่ากัน สร้างนโยบายการตอบสนองสำหรับแต่ละโซนที่คุณต้องการแก้ไขผลลัพธ์หรือสร้างบันทึกทรัพยากรในโซนส่วนตัว? ฉันไม่คิดว่านโยบายการตอบสนองจะให้ความมหัศจรรย์ที่คุณกำลังมองหา คุณจะต้องกำหนดค่าบางอย่างในโซนหรือผ่านนโยบาย
James avatar
tr flag
โอเค ขอบคุณจอห์น ฉันจะประเมินกรณีการใช้งานของเราอีกครั้ง เราอาจต้องยอมรับข้อจำกัดนี้และเปลี่ยนไปใช้ HTTP01 สำหรับ cert-manager

โพสต์คำตอบ

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