โดเมนและ DNS ทำงานอย่างไร: คู่มือสำหรับคนที่ไม่ใช่นักพัฒนา
โดเมนคือชื่อที่คนพิมพ์เพื่อเข้าเว็บไซต์ของคุณ เช่น example.com ส่วน DNS (Domain Name System) คือสมุดรายชื่อของอินเทอร์เน็ตที่แปลชื่อนั้นให้เป็นตำแหน่งจริงที่เว็บไซต์ของคุณอยู่ คุณเช่าโดเมนจาก registrar แล้วเพิ่ม DNS record ที่บอกว่า "เว็บไซต์อยู่ที่นี่" และ "อีเมลไปที่นั่น" การเชื่อมโดเมนที่กำหนดเองเข้ากับแอปส่วนใหญ่คือการเพิ่ม record ที่ถูกต้องในที่ที่ถูกต้อง แล้วรอให้มีผล
ทำไมเรื่องนี้สำคัญเมื่อสร้างด้วย AI
AI app builder สามารถเขียนและโฮสต์แอปของคุณได้ แต่โดเมนของคุณอยู่นอกแอป มักอยู่กับบริษัทอื่น ในแผงควบคุมที่เต็มไปด้วยประเภท record ที่คุ้นเคยน้อย นี่คือจุดที่การเปิดตัวหลายครั้งติดขัด แอปพร้อมแล้ว แต่โดเมนแสดงข้อผิดพลาด หรืออีเมลหยุดทำงานอย่างลึกลับหลังการเปลี่ยน DNS
ความเข้าใจเล็กน้อยช่วยได้มาก คุณจะรู้ว่าผู้ให้บริการโฮสต์ต้องการ record ใด ทำไมยังไม่ได้ผล และหลีกเลี่ยงการทำให้สิ่งที่พึ่งพาโดเมนอยู่แล้ว (เช่น อีเมล) พัง
ตัวอย่างในชีวิตประจำวัน
ลองนึกถึงรายชื่อผู้ติดต่อในโทรศัพท์ของคุณ
คุณไม่ได้จำเบอร์เพื่อนทุกคน คุณแตะชื่อเพื่อนแล้วโทรศัพท์ค้นหาเบอร์ให้ DNS ทำแบบเดียวกันสำหรับอินเทอร์เน็ต คุณพิมพ์ example.com แล้ว DNS ค้นหาหมายเลข (ที่อยู่ IP) ของเซิร์ฟเวอร์ที่ต้องเชื่อมต่อ
- โดเมน คือชื่อของผู้ติดต่อ
- registrar คือบริษัทที่บันทึกอย่างเป็นทางการว่าชื่อนี้เป็นของคุณ
- DNS record คือข้อมูลที่บันทึกไว้ใต้ชื่อนั้น: เบอร์โทร อีเมล ที่อยู่
- nameserver คือสมุดรายชื่อไหนที่เป็นฉบับทางการของชื่อนั้น
- การแคช คือโทรศัพท์จำเบอร์ไว้ชั่วระยะหนึ่ง หากเพื่อนของคุณเปลี่ยนเบอร์ บางเครื่องจะยังโทรเบอร์เก่าจนกว่าสำเนาที่บันทึกจะถูกรีเฟรช นั่นคือ DNS "propagation"
ส่วนประกอบของชื่อโดเมน
ลองดู app.example.com:
| ส่วน | ชื่อ | หมายเหตุ |
|---|---|---|
.com | Top-level domain (TLD) | ดูแลโดย registry อื่นๆ ได้แก่ .org, .io, .ai และรหัสประเทศ เช่น .uk |
example | Second-level domain | ส่วนที่คุณจดทะเบียน |
example.com | Root หรือ "apex" domain | สิ่งที่คุณเป็นเจ้าของ |
app | Subdomain | คุณสร้างได้ตามต้องการใน DNS เช่น www, app, shop |
คุณไม่ได้ซื้อโดเมนขาด แต่จดทะเบียนไว้เป็นช่วงเวลา (มักหนึ่งปีขึ้นไป) และต่ออายุ หากปล่อยให้หมดอายุ คนอื่นสามารถจดทะเบียนได้
การค้นหา DNS ทำงานอย่างไร
เมื่อมีคนพิมพ์ app.example.com:
- เบราว์เซอร์ถาม DNS resolver ซึ่งมักดำเนินการโดยผู้ให้บริการอินเทอร์เน็ตหรือบริการสาธารณะ เพื่อขอที่อยู่
- หาก resolver มีคำตอบที่แคชไว้และยังสด มันตอบทันที
- หากไม่มี มันไล่ลงมาตามลำดับชั้น: root server ชี้ไปยังเซิร์ฟเวอร์
.comซึ่งชี้ไปยัง nameserver ของโดเมนคุณ - nameserver ของคุณส่ง record ที่คุณตั้งไว้กลับมา เช่น CNAME ไปยังโฮสต์ หรือ A record ที่มีที่อยู่ IP
- resolver แคชคำตอบตาม TTL (time to live) ของ record และส่งให้เบราว์เซอร์ที่เชื่อมต่อไปยังเซิร์ฟเวอร์
ทั้งหมดนี้มักเกิดขึ้นในหน่วยมิลลิวินาที
ประเภท DNS record ที่คุณจะได้ใช้จริง
| Record | หน้าที่ | ตัวอย่าง |
|---|---|---|
| A | ชี้ชื่อไปยังที่อยู่ IPv4 | example.com → 203.0.113.10 |
| AAAA | ชี้ชื่อไปยังที่อยู่ IPv6 | example.com → 2001:db8::10 |
| CNAME | ทำให้ชื่อเป็นนามแฝงของชื่อโฮสต์อื่น | app.example.com → myapp.host.com |
| MX | ระบุเซิร์ฟเวอร์ที่รับอีเมลของโดเมน พร้อมหมายเลขความสำคัญ | example.com → 10 mail.provider.com |
| TXT | เก็บข้อความ ใช้ยืนยันความเป็นเจ้าของและความปลอดภัยของอีเมล | v=spf1 include:_spf.provider.com ~all |
| NS | ระบุ nameserver ที่มีอำนาจของโดเมน | ns1.dnsprovider.com |
| CAA | จำกัดว่า certificate authority ใดออกใบรับรอง HTTPS ได้ | 0 issue "letsencrypt.org" |
กฎบางข้อที่ควรรู้:
- CNAME ไม่สามารถใช้ชื่อร่วมกับ record อื่นได้ นั่นคือเหตุผลที่ CNAME มาตรฐานใช้กับ root domain ไม่ได้ เพราะ root domain มี NS และ record อื่นอยู่แล้ว ผู้ให้บริการ DNS หลายรายมีทางเลือกที่เรียกว่า ALIAS, ANAME หรือ CNAME flattening
- TXT record ทำงานด้านอีเมลได้มาก SPF ระบุว่าใครส่งอีเมลในนามโดเมนของคุณได้ DKIM เผยแพร่คีย์สำหรับตรวจลายเซ็น และ DMARC บอกผู้รับว่าควรทำอย่างไรกับอีเมลที่ไม่ผ่านการตรวจเหล่านั้น
- หมายเลข MX ที่น้อยกว่าหมายถึงความสำคัญที่สูงกว่า อีเมลจะลองที่ตัวที่น้อยที่สุดก่อน
Propagation และ TTL
คำว่า "propagation" ทำให้ฟังดูเหมือนการเปลี่ยนแปลงกระจายช้าๆ ไปทั่วอินเทอร์เน็ต แต่สิ่งที่เกิดขึ้นจริงคือการแคช resolver เก็บสำเนาของแต่ละคำตอบตาม TTL และจะถามใหม่เมื่อหมดอายุเท่านั้น ดังนั้น:
- record ใหม่ที่ไม่เคยถูกค้นหามักใช้ได้ภายในไม่กี่นาที
- การเปลี่ยน record ที่มีอยู่ต้องรอจนถึง TTL เดิมหมดก่อน จึงจะเห็นการเปลี่ยนแปลงทุกที่
- การเปลี่ยน nameserver อาจใช้เวลาถึงหนึ่งหรือสองวัน เพราะ record เหล่านั้นถูกแคชนานกว่าที่ระดับ TLD
เทคนิคที่มีประโยชน์: ก่อนทำการเปลี่ยนแปลงตามแผน ให้ลด TTL ของ record ลง (เช่น เหลือไม่กี่นาที) รอให้ TTL เดิมหมดไป แล้วจึงทำการเปลี่ยนแปลง
ตัวอย่างการทำงาน: เชื่อมแอปจองคิวเข้ากับโดเมนของคุณ
คุณเป็นเจ้าของ yoursalon.com เว็บไซต์ปัจจุบันของคุณและอีเมล Google Workspace ใช้โดเมนนี้อยู่แล้ว คุณสร้างแอปจองคิวและอยากให้อยู่ที่ book.yoursalon.com
- หาว่า DNS ของคุณจัดการที่ไหน อาจเป็น registrar หรือผู้ให้บริการ DNS แยกต่างหาก NS record จะบอกคุณ
- เพิ่ม CNAME สำหรับ
bookที่ชี้ไปยังเป้าหมายที่ผู้ให้บริการแอปของคุณให้มา - เพิ่ม TXT record ที่ผู้ให้บริการขอเพื่อยืนยันความเป็นเจ้าของ หากใช้วิธีนั้น
- ปล่อย MX และ TXT record ของอีเมลไว้เหมือนเดิม อีเมลจะยังทำงานต่อไปเพราะคุณไม่ได้แตะต้อง
- ยืนยันในผู้ให้บริการของคุณ เมื่อ DNS อัปเดตแล้ว ผู้ให้บริการจะออกใบรับรอง HTTPS สำหรับ
book.yoursalon.com - ทดสอบ บนโทรศัพท์โดยใช้ข้อมูลมือถือ เพราะมันใช้ resolver และแคชต่างจาก Wi-Fi ที่บ้าน
หากคุณต้องการให้แอปอยู่ที่ root yoursalon.com แทน คุณจะต้องใช้ A record หรือฟีเจอร์ ALIAS/flattening ของผู้ให้บริการ DNS ของคุณ และคุณจะต้องแทนที่เว็บไซต์ปัจจุบันของคุณที่นั่น ขั้นตอนเพิ่มเติมดู วิธีเชื่อมโดเมนที่กำหนดเอง
ความผิดพลาดและความเข้าใจผิดที่พบบ่อย
- "โดเมนกับโฮสติ้งคือสิ่งเดียวกัน" โดเมนคือชื่อ ส่วน โฮสติ้ง คือที่ที่แอปรันอยู่ DNS เป็นตัวเชื่อมทั้งสองอย่าง
- ใช้ A record ทั้งที่โฮสต์ขอ CNAME (หรือกลับกัน) ทำตามคำแนะนำของโฮสต์อย่างเคร่งครัด
- พิมพ์ปลายทางผิด อักขระเพียงตัวเดียวผิดใน CNAME ก็ทำให้การยืนยันล้มเหลว
- เปลี่ยน nameserver โดยไม่คัดลอก record การย้าย DNS ไปผู้ให้บริการใหม่โดยไม่สร้าง MX และ TXT record ใหม่คือวิธีคลาสสิกที่ทำให้อีเมลพัง
- การ proxy เมื่อไม่ควร ผู้ให้บริการ DNS บางราย เช่น Cloudflare สามารถ proxy ทราฟฟิกได้ บางโฮสต์ต้องการให้ตั้ง record เป็น "DNS only" เพื่อให้ออกใบรับรองได้
- ลบ TXT record ที่ "ไม่รู้จัก" มักเป็น record สำหรับยืนยันหรือความปลอดภัยของอีเมลที่บางอย่างพึ่งพาอยู่
- ปล่อยให้โดเมนหมดอายุ เปิดการต่ออายุอัตโนมัติและทำให้บัตรที่ใช้ชำระเงินเป็นปัจจุบันอยู่เสมอ
สิ่งที่ควรขอจาก AI builder ของคุณ
DNS อยู่นอกโค้ดของคุณ ดังนั้นสิ่งนี้เป็นเรื่องของการถามเกี่ยวกับ:
- "ฉันต้องใช้ DNS record ตัวไหนสำหรับ app.mydomain.com บ้าง ทั้งประเภท ชื่อ และค่า?"
- "การเปลี่ยนแปลงนี้จะกระทบอีเมลของฉันไหม?"
- "โดเมนแสดงข้อผิดพลาดหลังเพิ่ม record ฉันควรตรวจสอบอะไร?"
- "เพิ่ม canonical URL และ redirect ที่ถูกต้อง เพื่อให้ www และไม่มี www ไม่แสดงเว็บไซต์ซ้ำกัน"
- "ตั้งค่าการส่งอีเมลจากโดเมนของฉัน ฉันต้องใช้ SPF, DKIM และ DMARC record ใดบ้าง?" ดู วิธีส่งอีเมลจากแอปของคุณ
โดเมนที่กำหนดเองบน Mythex
แอป Mythex ที่เผยแพร่แล้วทุกแอปจะได้ที่อยู่ yourname.mythex.app บน Pro คุณใช้โดเมนของตัวเองแทนได้ โดยซื้อโดเมนภายใน Mythex (ค่าจดทะเบียนคิดแยกต่างหาก และ DNS ของโดเมนที่ซื้อจะถูกจัดการให้) หรือเชื่อมโดเมนที่คุณเป็นเจ้าของอยู่แล้วโดยเพิ่ม CNAME จากโดเมนย่อย เช่น app.example.com ไปยังที่อยู่ yourname.mythex.app ของแอปคุณ แล้วคลิก Verify HTTPS จะถูกออกให้อัตโนมัติ หาก DNS ของคุณอยู่บน Cloudflare ให้ตั้ง record นั้นเป็น "DNS only" แนะนำให้ใช้โดเมนย่อย ส่วนโดเมนหลักขึ้นอยู่กับการรองรับ ALIAS หรือ flattening ของผู้ให้บริการ DNS ของคุณ เอกสารโดเมนที่กำหนดเอง อธิบายแต่ละขั้นตอน และ ราคา แสดงสิ่งที่ Pro รวมอยู่
คำถาม
DNS คืออะไรแบบง่ายๆ
DNS (Domain Name System) คือสมุดรายชื่อของอินเทอร์เน็ต มันแปลชื่อที่คนจำได้ เช่น example.com ให้เป็นข้อมูลที่คอมพิวเตอร์ต้องการ ซึ่งมักเป็นที่อยู่ IP เพื่อให้เบราว์เซอร์หาเซิร์ฟเวอร์ที่ถูกต้องเจอ
ความต่างระหว่าง A record กับ CNAME คืออะไร
A record ชี้ชื่อไปยังที่อยู่ IPv4 โดยตรง ส่วน CNAME ชี้ชื่อไปยังชื่อโฮสต์อื่น และการค้นหาจะดำเนินต่อจากตรงนั้น CNAME มีประโยชน์เมื่อที่อยู่ IP ของโฮสต์อาจเปลี่ยน แต่ CNAME มาตรฐานใช้กับโดเมนหลัก (root domain) โดยตรงไม่ได้
DNS propagation ใช้เวลานานแค่ไหน
มักใช้เวลาไม่กี่นาที บางครั้งหลายชั่วโมง การเปลี่ยนแปลงจะปรากฏเมื่อสำเนาแคชของค่าเดิมหมดอายุ ซึ่งขึ้นอยู่กับ TTL ของ record การเปลี่ยน nameserver อาจใช้เวลาถึงหนึ่งหรือสองวัน เพราะข้อมูลเหล่านั้นถูกแคชไว้นานกว่า
การเปลี่ยน DNS ของเว็บไซต์จะทำให้อีเมลพังไหม
จะพังก็ต่อเมื่อคุณเปลี่ยนหรือลบ record ที่อีเมลพึ่งพา ได้แก่ MX record และ TXT record อย่าง SPF, DKIM และ DMARC การเพิ่ม CNAME สำหรับ www หรือ app จะไม่กระทบอีเมล แต่การย้ายโดเมนไป nameserver ใหม่อาจทำให้อีเมลพัง หากคุณไม่คัดลอก record เหล่านั้นไปก่อน
ทำไมต้องใช้ www หรือ app แทนโดเมนหลัก
โดเมนย่อยอย่าง www.example.com หรือ app.example.com ใช้ CNAME ได้ ซึ่งเป็นสิ่งที่แพลตฟอร์มโฮสติ้งหลายแห่งต้องการ โดเมนหลัก (example.com) ใช้ CNAME มาตรฐานไม่ได้ จึงต้องใช้ A record หรือฟีเจอร์เฉพาะของผู้ให้บริการอย่าง ALIAS, ANAME หรือ CNAME flattening