ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

มอบหมายซับโดเมนให้ DNS อื่นด้วย NS Record
Home มอบหมายซับโดเมนให้ DNS อื่นด้วย NS Record

มอบหมายซับโดเมนให้ DNS อื่นด้วย NS Record

บางครั้งซับโดเมนหนึ่งต้องถูกจัดการโดยคนละทีมหรือคนละระบบกับโดเมนหลัก เช่น ทีมพัฒนาต้องการควบคุม api.example.com เองผ่านระบบอัตโนมัติ ในขณะที่ฝ่าย IT ดูแลโดเมนหลัก

การมอบหมายด้วย NS Record ทำให้คำถามทั้งหมดเกี่ยวกับซับโดเมนนั้นถูกส่งต่อไปยัง DNS Server ที่กำหนด โดยที่โดเมนหลักยังอยู่ที่เดิม

สิ่งที่ต้องเตรียม

  • สิทธิ์แก้ไข DNS ของโดเมนหลัก
  • DNS Server ปลายทางที่พร้อมรับผิดชอบซับโดเมนนั้น อย่างน้อยสองตัวเพื่อความทนทาน

ขั้นตอนที่ 1: เตรียมโซนที่ปลายทางก่อน

ขั้นตอนนี้ต้องทำก่อนมอบหมายเสมอ ไม่เช่นนั้นซับโดเมนจะใช้งานไม่ได้ทันทีที่มอบหมาย

ที่ผู้ให้บริการ DNS ปลายทาง สร้างโซนสำหรับ api.example.com แล้วเพิ่มระเบียนที่ต้องการให้ครบ

# ทดสอบว่า DNS ปลายทางตอบได้แล้ว โดยถามตรงไปที่เซิร์ฟเวอร์นั้น
dig @ns1.provider.net api.example.com +short
dig @ns1.provider.net www.api.example.com +short

ต้องได้คำตอบที่ถูกต้องก่อน จึงค่อยไปขั้นตอนถัดไป

ขั้นตอนที่ 2: เพิ่ม NS Record ในโดเมนหลัก

api.example.com.  3600  IN  NS  ns1.provider.net.
api.example.com.  3600  IN  NS  ns2.provider.net.

ข้อสำคัญที่มักพลาด

  • ต้องมี NS อย่างน้อยสองรายการ หากมีตัวเดียวและตัวนั้นล่ม ซับโดเมนจะหายทั้งหมด
  • ชื่อที่ชี้ไปต้องเป็น FQDN ลงท้ายด้วยจุด และต้องมีระเบียน A ของตัวเองที่ค้นหาได้
  • ห้ามมีระเบียนอื่นของชื่อเดียวกันอยู่ในโดเมนหลัก เช่น หากมี api.example.com A 203.0.113.10 อยู่แล้ว ต้องลบออก ไม่เช่นนั้นจะขัดแย้งกัน

ตรวจว่าไม่มีระเบียนที่ขัดแย้ง

dig api.example.com A @ns-of-parent-zone +short
dig api.example.com NS +short

ขั้นตอนที่ 3: เพิ่ม Glue Record เมื่อจำเป็น

หาก DNS Server ปลายทางใช้ชื่อที่อยู่ภายในซับโดเมนนั้นเอง เช่น ns1.api.example.com จะเกิดปัญหาไก่กับไข่ คือต้องถาม DNS ของซับโดเมนเพื่อหา IP ของ DNS ของซับโดเมน

แก้ด้วย Glue Record ซึ่งคือระเบียน A ที่ใส่ไว้ในโดเมนแม่โดยตรง

api.example.com.      IN  NS  ns1.api.example.com.
api.example.com.      IN  NS  ns2.api.example.com.
ns1.api.example.com.  IN  A   203.0.113.20
ns2.api.example.com.  IN  A   203.0.113.21

หลีกเลี่ยงสถานการณ์นี้ได้ด้วยการใช้ชื่อ DNS Server ที่อยู่คนละโดเมน ซึ่งง่ายกว่ามาก

ขั้นตอนที่ 4: ตรวจสอบการมอบหมาย

# ดูว่าโดเมนแม่ส่งต่อไปที่ไหน
dig api.example.com NS +norecurse @ns1.parent-dns.com

# ไล่ตามห่วงโซ่ทั้งหมด
dig +trace api.example.com

# ตรวจจาก Resolver สาธารณะ
dig api.example.com +short @1.1.1.1
dig api.example.com +short @8.8.8.8

ในผลของ +trace จะเห็นลำดับตั้งแต่ Root ไป TLD ไปโดเมนหลัก แล้วส่งต่อไปยัง DNS ของซับโดเมน หากขาดตอนตรงไหนจะเห็นชัดเจน

ขั้นตอนที่ 5: กรณีใช้งานจริง

แยกระบบทดสอบออกจากระบบจริง

มอบหมาย dev.example.com ให้ DNS ที่ทีมพัฒนาควบคุมเอง ทำให้สร้างและลบซับโดเมนย่อยได้เองโดยไม่ต้องขอฝ่าย IT ทุกครั้ง

ใช้ Cloudflare เฉพาะบางส่วน

เก็บโดเมนหลักไว้ที่ DNS เดิม แล้วมอบหมายเฉพาะ www หรือ shop ไปที่ Cloudflare เพื่อใช้ความสามารถด้านการป้องกันโดยไม่ต้องย้ายทั้งโดเมน

ระบบที่ต้องการควบคุม DNS ด้วยโค้ด

ระบบ Kubernetes หรือระบบออกใบรับรองอัตโนมัติมักต้องสร้างระเบียน DNS เอง การมอบหมายซับโดเมนให้ระบบนั้นควบคุมเป็นวิธีที่ปลอดภัยกว่าการให้สิทธิ์แก้ทั้งโดเมน

ยืนยันใบรับรองแบบ DNS challenge

มอบหมาย _acme-challenge.example.com ไปยัง DNS ที่มี API ทำให้ขอใบรับรอง Wildcard อัตโนมัติได้แม้ผู้ให้บริการ DNS หลักไม่มี API

_acme-challenge.example.com.  IN  NS  ns1.acme-dns.io.

ขั้นตอนที่ 6: ตั้ง TTL ให้เหมาะสม

ระเบียน NS ควรตั้ง TTL ยาว เช่น 3600 ถึง 86400 วินาที เพราะไม่ค่อยเปลี่ยน และการตั้งสั้นทำให้ Resolver ต้องถามบ่อยโดยไม่จำเป็น

แต่เมื่อวางแผนจะเปลี่ยน ให้ลด TTL ลงล่วงหน้าอย่างน้อยหนึ่งช่วง TTL เดิม เพื่อให้การเปลี่ยนมีผลเร็ว

ขั้นตอนที่ 7: ยกเลิกการมอบหมาย

ทำตามลำดับนี้เพื่อไม่ให้ซับโดเมนหายระหว่างทาง

  1. เพิ่มระเบียนที่จำเป็นทั้งหมดของซับโดเมนกลับเข้าโดเมนหลักก่อน แต่ยังไม่ลบ NS
  2. ลด TTL ของ NS ลงเหลือ 300 แล้วรอ
  3. ลบระเบียน NS ออก
  4. ตรวจว่าคำตอบมาจากโดเมนหลักแล้ว
dig api.example.com +short
dig api.example.com NS +short   # ต้องไม่มีผลลัพธ์แล้ว

ปัญหาที่พบบ่อย

ซับโดเมนหายทันทีหลังมอบหมาย

DNS ปลายทางยังไม่มีโซนของซับโดเมนนั้น ตรวจด้วยการถามตรงไปที่เซิร์ฟเวอร์นั้น หากไม่ตอบ ให้สร้างโซนก่อนแล้วค่อยมอบหมาย

คำตอบไม่คงที่ บางครั้งได้บางครั้งไม่ได้

มีระเบียนขัดแย้งกันในโดเมนหลัก เช่น มีทั้ง NS และ A ของชื่อเดียวกัน ให้เหลือเฉพาะ NS

Resolver บางตัวไม่ตามไปยังซับโดเมน

ชื่อ DNS Server ที่ระบุใน NS ค้นหา IP ไม่ได้ ตรวจด้วย dig +short ns1.provider.net ต้องได้ IP กลับมา

อีเมลของซับโดเมนไม่ทำงาน

หลังมอบหมาย ระเบียน MX ของซับโดเมนต้องไปตั้งที่ DNS ปลายทาง ไม่ใช่ที่โดเมนหลักอีกต่อไป ตรวจว่าย้ายมาครบทุกระเบียน

ต้องการที่ปรึกษาด้านการออกแบบโครงสร้าง DNS ขององค์กร ติดต่อ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security