Domain
DNS Propagation คืออะไร
DNS Propagation (การแพร่กระจาย DNS) หมายถึงกระบวนการที่ข้อมูล DNS Record หรือ Nameserver ใหม่แพร่กระจายไปยังเซิร์ฟเวอร์ DNS ทั่วโลก เมื่อคุณเปลี่ยน Nameserver หรือเพิ่ม/แก้ไข DNS Record (เช่น A Record, MX Record, CNAME) บน Registrar หรือ DNS Server จะใช้เวลาสักครู่ก่อนที่ข้อมูลนั้นจะอัพเดตบนเซิร์ฟเวอร์ DNS ทั้งหมดทั่วโลก ด้วยเหตุนี้คุณอาจเห็นว่าเว็บของคุณ "เข้าได้" บนเครื่องหนึ่ง แต่ "เข้าไม่ได้" บนเครื่องอื่น หรือเข้าได้บ้างเข้าไม่ได้บ้างขึ้นกับเซิร์ฟเวอร์ DNS ที่เครื่องนั้นใช้
ทำไม DNS Propagation ถึงใช้เวลานาน
ระบบ DNS ใช้ระบบ caching (จำเก็บข้อมูลชั่วคราว) เพื่อลดภาระของเซิร์ฟเวอร์ DNS หลัก เมื่อใครสักคนค้นหาข้อมูล DNS จะมีเซิร์ฟเวอร์หลายตัวเกี่ยวข้อง:
- Authoritative Nameserver: เซิร์ฟเวอร์ DNS ที่มีข้อมูล DNS Record แท้จริงของโดเมนของคุณ (ตั้งไว้ที่ Registrar หรือ DNS Provider)
- Recursive Resolver: เซิร์ฟเวอร์ DNS ที่ ISP หรือผู้ให้บริการ (เช่น Google 8.8.8.8, Cloudflare 1.1.1.1) ใช้เพื่อตอบคำถาม DNS จากผู้ใช้ เซิร์ฟเวอร์นี้จะเก็บข้อมูลแคชไว้
- OS-level DNS Cache: ระบบปฏิบัติการของคุณ (Windows, macOS, Linux) จัดเก็บแคช DNS ของตัวเอง
- Browser Cache: เบราว์เซอร์ที่คุณใช้ (Chrome, Firefox, Safari) เก็บแคช DNS ไว้เพื่อความเร็ว
แต่ละชั้นของแคชนี้จะมีค่า TTL (Time To Live) ซึ่งเป็นตัวเลขที่บอกว่าแคชนั้นจะนำไปใช้ได้นานเท่าไหร่ (วัดเป็นวินาที) ถ้า TTL สูง (เช่น 86400 วินาที = 1 วัน) ข้อมูล DNS เก่าจะยังคงใช้งานได้นาน จึงทำให้ DNS Propagation ใช้เวลานาน
DNS Propagation ใช้เวลานานแค่ไหน
นี่คือคำถามที่บ่อยครั้งมากจากผู้ใช้ cPanel Hosting คำตอบคือ ไม่มีเวลาที่แน่นอน เพราะมันขึ้นอยู่กับหลายปัจจัย:
- TTL Value: ถ้า TTL สูง (e.g. 86400) อาจใช้เวลา 12-24 ชั่วโมง ถ้า TTL ต่ำ (e.g. 300) อาจใช้เวลาแค่ไม่กี่นาที
- ISP Resolver Caching: เซิร์ฟเวอร์ DNS ที่ ISP ของคุณใช้อาจจำแคชข้อมูล DNS ไว้นาน บ้างใช้เวลาลดลง บ้างใช้เวลาสูงกว่า TTL ที่ตั้งไว้
- Geographic Location: DNS Server ทั่วโลกไม่ได้อัพเดตพร้อมกัน บ้านที่อยู่ในพื้นที่ต่างกันอาจมีเวลา Propagation ต่างกัน
- Public vs Private Resolver: ถ้าคุณใช้ Google 8.8.8.8 หรือ Cloudflare 1.1.1.1 มักเร็วกว่า ISP Resolver
ในกรณีส่วนใหญ่ DNS Propagation จะสำเร็จภายใน 2-4 ชั่วโมง แต่อาจใช้เวลานานถึง 24-48 ชั่วโมง ขึ้นอยู่กับปัจจัยข้างต้น นี่คือสาเหตุว่าทำไมการเปลี่ยน Nameserver จึงไม่ชี้ไปเว็บเดิมทันทีทั่วโลก
วิธีเช็คสถานะ DNS Propagation
หากคุณสงสัยว่า DNS ของคุณเปลี่ยนแล้วไหม มีหลายวิธีในการตรวจสอบ:
เครื่องมือฟรีที่แนะนำคือ DNS Propagation Checker ของ dnsxray.com ซึ่ง query resolver สาธารณะ 14 ตัวพร้อมกัน จุดเด่นคือมี resolver ของ 3BB ในไทยอยู่ในลิสต์ด้วย ทำให้รู้ว่าผู้ใช้เน็ตบ้านในไทยเห็นค่า DNS ใหม่แล้วหรือยัง
วิธีที่ 1: ใช้คำสั่ง dig บน Terminal/Command Prompt
คำสั่ง dig ช่วยให้คุณค้นหา DNS Record โดยตรง เปิด Terminal (Mac/Linux) หรือ Command Prompt (Windows) แล้วพิมพ์:
dig yourdomain.com +short
ผลลัพธ์จะแสดง IP Address ของโดเมนของคุณ สามารถเช็ค Nameserver ได้ด้วยคำสั่ง:
dig yourdomain.com NS +short
จะแสดง Nameserver ที่ระบบกำหนดไว้ให้ โดยส่วนใหญ่สามารถใช้ได้จากภายในประเทศไทยเพราะ Thailand DNS Server ใช้ recursive resolver ของตัวเอง
วิธีที่ 2: ใช้ nslookup ค้นหา DNS จากเซิร์ฟเวอร์ที่ต่างกัน
nslookup คืออีกคำสั่งคล้ายกับ dig แต่คุณสามารถระบุเซิร์ฟเวอร์ DNS ที่ต้องการใช้ได้:
nslookup yourdomain.com 8.8.8.8
nslookup yourdomain.com 1.1.1.1
nslookup yourdomain.com 208.67.222.222
ถ้าผลลัพธ์แตกต่างจากเซิร์ฟเวอร์หนึ่งไปอีกเซิร์ฟเวอร์หนึ่ง แสดงว่า DNS Propagation ยังอยู่ในระหว่างดำเนินการ ยิ่งเซิร์ฟเวอร์ DNS ให้ผลลัพธ์เหมือนกัน ก็แสดงว่า Propagation เสร็จแล้ว
วิธีที่ 3: ใช้ DNS Propagation Checker Tools
มีหลายเว็บไซต์ที่ให้บริการเช็ค DNS Propagation โดยค้นหาจากเซิร์ฟเวอร์ DNS ในหลายประเทศพร้อม ๆ กัน เช่น "DNS Propagation Checker" ที่คุณสามารถป้อนชื่อโดเมนแล้วรอผลลัพธ์ ข้อดีของเครื่องมือนี้คือแสดงภาพรวมทั่วโลกว่าแต่ละภูมิภาคสำเร็จแล้วหรือยัง และแสดงเปอร์เซ็นต์ความเสร็จสมบูรณ์
เคล็ดลับเร่งความเร็ว DNS Propagation
ถึงแม้ว่า DNS Propagation ไม่สามารถควบคุมได้ทั้งหมด แต่มีวิธีบางอย่างที่ช่วยเร่งความเร็ว:
ลดค่า TTL ก่อนการเปลี่ยน
ถ้าคุณวางแผนที่จะเปลี่ยน Nameserver หรือ DNS Record ให้ลดค่า TTL เป็น 300-600 วินาที (5-10 นาที) ก่อน 24-48 ชั่วโมง ก่อนการเปลี่ยน เมื่อ TTL ต่ำลง Recursive Resolver จะตรวจสอบ Authoritative Nameserver บ่อยครั้ง ทำให้การเปลี่ยนอัพเดตเร็วขึ้น อย่าลืมเพิ่ม TTL กลับเป็นค่าปกติ (3600-86400) หลังจากการเปลี่ยนสำเร็จเพื่อลดภาระของ DNS Server
ล้าง DNS Cache ท้องถิ่น
เมื่อ DNS Propagation อัพเดตแล้ว ให้ล้าง DNS Cache ของเครื่องตัวเองด้วย เพื่อให้ระบบบังคับค้นหา DNS ใหม่จากเซิร์ฟเวอร์:
Windows: เปิด Command Prompt แล้วพิมพ์:
ipconfig /flushdns
macOS: เปิด Terminal แล้วพิมพ์:
dscacheutil -flushcache
Linux: ขึ้นอยู่กับ DNS Service ที่ใช้ แต่ส่วนใหญ่ใช้:
sudo systemctl restart systemd-resolved
ใช้ Mobile Data แทน Wi-Fi
ISP ที่บ้านอาจใช้ Recursive Resolver ที่แคช DNS นานกว่า ให้ลองเข้าเว็บของคุณผ่านอินเทอร์เน็ต 4G/5G ของโทรศัพท์แทน เพราะ Mobile ISP บ่อยครั้งใช้ Public Resolver ที่ปรับปรุงเร็วกว่า หรือ ISP ของเมืองต่างกันใช้ Resolver ต่างกันทำให้ได้ผลลัพธ์ต่างกัน
ติดต่อ ISP ขอให้ล้าง DNS Cache
ถ้าเป็นเรื่องเร่งด่วน คุณสามารถติดต่อ ISP ที่ให้บริการอินเทอร์เน็ตแก่คุณขอให้ล้าง DNS Resolver Cache ของพวกเขา บางครั้ง ISP จะทำให้ได้ภายในไม่กี่นาที
ตรวจสอบว่า DNS Propagation ทำงานถูกต้อง
หลังจากเปลี่ยน Nameserver หรือ DNS Record แล้ว แนะนำให้ทดสอบด้วยขั้นตอนต่อไปนี้:
# 1. ตรวจสอบ A Record ของโดเมน
dig yourdomain.com +short
# 2. ตรวจสอบ Nameserver ของโดเมน
dig yourdomain.com NS +short
# 3. ตรวจสอบ MX Record สำหรับอีเมล
dig yourdomain.com MX +short
# 4. ค้นหา DNS จากเซิร์ฟเวอร์สาธารณะ (Google DNS)
nslookup yourdomain.com 8.8.8.8
# 5. ตรวจสอบ CNAME Record ถ้ามี
dig yourdomain.com CNAME +short
แก้ปัญหาที่พบบ่อย
Error: "เว็บเข้าได้บางเครื่องแต่บางเครื่องเข้าไม่ได้"
นี่คือสัญญาณทั่วไปของ DNS Propagation ที่ยังอยู่ในระหว่างดำเนินการ เครื่องที่เข้าได้เป็นเพราะใช้ Recursive Resolver ที่มี Nameserver ใหม่อยู่แล้ว ส่วนเครื่องที่เข้าไม่ได้ยังคงใช้แคช DNS เก่า วิธีแก้: ล้าง DNS Cache ของเครื่องที่เข้าไม่ได้ (ดู ipconfig /flushdns หรือ dscacheutil -flushcache) หรือรอให้ Propagation สำเร็จ
Error: "DNS_PROBE_FINISHED_NXDOMAIN" ขึ้นใน Chrome
ข้อความนี้แสดงว่า Chrome ไม่สามารถพบ DNS Record สำหรับโดเมนของคุณได้ สาเหตุอาจเป็นจาก DNS Propagation ยังไม่สำเร็จ หรือ Nameserver ตั้งผิด ให้ตรวจสอบด้วยคำสั่ง dig ว่า Nameserver ถูกต้องไหม และค่อยลองใหม่หลังจาก 30 นาที นอกจากนี้ ลองล้าง Chrome Cache และ Cookies ด้วย
Error: "This site can't be reached" หรือ "ERR_NAME_NOT_RESOLVED"
โดยปกติเกิดจากการเปลี่ยน Nameserver เพิ่งเสร็จ ให้รอ 15 นาที-1 ชั่วโมง แล้วลองเข้าใหม่ ถ้าโดเมนอยู่ภายใต้ Cloudflare ตรวจสอบว่า SSL/TLS Mode ตั้งเป็น "Flexible" หรือสูงกว่า เพราะการตั้งค่าผิดอาจทำให้เว็บไม่เข้าได้
Error: "TTL ต่ำเกินไปทำให้ DNS Query ช้า"
ถ้าตั้ง TTL เป็น 60 วินาทีแล้วปล่อยไว้นาน ระบบจะบังคับค้นหา DNS บ่อยมาก ทำให้ DNS Query ช้าลง แนวทางแก้: เพิ่ม TTL กลับเป็น 3600-86400 วินาที (1-24 ชั่วโมง) หลังจากการเปลี่ยนสำเร็จแล้ว เพื่อลดภาระการค้นหา DNS ให้เซิร์ฟเวอร์
Error: "Nameserver ไม่ตอบสนอง" (nameserver not responding)
อาจเกิดจาก Nameserver ที่ตั้งผิด ตรวจสอบว่าชื่อ Nameserver ถูกต้องจาก Registrar ของคุณ (เช่น cPanel Hosting Provider) หรือตรวจสอบว่า IP Address ของ Nameserver หา DNS ข้อมูลได้ไหม ด้วยคำสั่ง nslookup nameserver_name 8.8.8.8 ถ้าไม่ตอบสนอง ให้ติดต่อ Hosting Provider ทันที
คำถามที่พบบ่อย
Q: DNS Propagation จะเกิด Error ขณะรอได้ไหม?
A: ได้ครับ ขณะ DNS Propagation อยู่ระหว่างดำเนินการ บางเครื่องอาจเห็น Error เช่น "This site can't be reached" ขณะที่เครื่องอื่นเข้าได้ปกติ นี่คือปรากฏการณ์ปกติและชั่วคราว ทั้งหมดจะกลับมาปกติหลังจาก DNS Propagation สำเร็จ (โดยปกติ 2-4 ชั่วโมง) ข้อสำคัญคือไม่ต้องกังวลว่า "บางอย่างผิด" เพราะจริง ๆ แล้วระบบกำลังอัพเดตข้อมูลตามปกติ
Q: จะรู้ได้ยังไงว่า DNS Propagation สำเร็จทั้งหมด?
A: สามารถใช้ DNS Propagation Checker Tool เพื่อเช็คทั่วโลก ถ้า Tool แสดงเปอร์เซ็นต์ 100% ก็แสดงว่าสำเร็จแล้ว นอกจากนั้นให้ลอง dig จากหลายเซิร์ฟเวอร์ (Google, Cloudflare, Quad9) ถ้าทั้งหมดให้ผลลัพธ์เดียวกัน ก็เป็นสัญญาณว่า Propagation เสร็จแล้ว
Q: TTL สูง (86400) ทำให้ DNS Propagation ใช้เวลา 24 ชั่วโมงเสมอไป?
A: ไม่เสมอไป TTL สูงเพียงหมายความว่า "Resolver อาจเก็บแคชไว้นาน" แต่ไม่ได้บังคับให้ใช้เวลา 24 ชั่วโมง ในกรณีที่คุณเปลี่ยน Nameserver ซึ่งเป็นการเปลี่ยนพื้นฐาน Propagation อาจเร็วกว่าที่ TTL บอก เพราะ Registrar จะประกาศการเปลี่ยน Nameserver ไปยัง Root Nameserver ทั่วโลกโดยไม่สนใจ TTL ของ Record เดิม สำหรับการแก้ไข A Record, MX Record เท่านั้นที่ TTL มีผลมาก