DNS คืออะไร?
DNS(Domain Name System) คือบริการที่แปลง Domain Name ที่เราเขียนในรูปแบบของ URL เช่น https://codinggun.com ไปเป็น IP Address https://111.111.111.111 ซึ่งเป็นที่อยู่ที่เครื่องคอมพิวเตอร์ใช้ในการติดต่อสื่อสารกันบนเครือข่าย ซึ่งเราสามารถ Map Domain name และ IP Address ได้ทั้ง Private(ภายในองค์กร) และ Public Network(อินเตอร์เน็ตทั่วไป)
ทำไมต้องมี DNS
การที่เราจะเข้าถึง Website ต่างๆ เราไม่สามารถจดจำ IP Address ของแต่ละ Site ได้ดังนั้นเราจึงต้องใช้ DNS เพื่อแปลง Domain Name ที่จำได้ง่าย ไปเป็น IP Address
DNS Server
ใน Network กจำเป็นต้องมี DNS Server ที่คอยนำทางเราไปยัง IP Address ที่ถูกต้อง ยกตัวอย่างเช่น ในกรณีที่เราต้องการสร้าง WebSite ถ้าเราอยากมี Website เราต้องทำตามนี้
- สร้าง Website แล้วให้บริการผ่าน Public IP Address
- จด Domain Name(เลือกชื่อ Website)
- ไปบอก DNS Server ว่า Domain ของเรานั้นแปลงไปเป็น Public IP Address อะไรด้วยการเพิ่ม A Record เข้าไปใน DNS Server
- เมื่อผู้ใช้งานพิมพิ์ Domain Name บน URL DNS Server จะนำทางไปที่ Public IP Address ทันที
หรือถ้าในระบบที่เป็น Private Network ก็เหมือนกัน คือเราต้อง
- สร้าง Website ที่ให้บริการผ่าน IP ภายใน(Private IP Address)
- ไปสร้าง A Record ใน DNS Server เพื่อ Map Domain ที่ใช้ภายในองค์กร(ส่วนใหญ่จะมีนามสกุลเป็น .local)
- เมื่อผู้ใช้งานพิมพิ์ Domain Name ที่มีนามสกุล .local บน URL DNS Server จะนำทางไปที่ Private IP Address ปลายทางทันที
การทำงานของ DNS
การทำงานของ DNS มีขั้นตอนหลัก ๆ ดังนี้:
- ผู้ใช้พิมพ์ชื่อ Domain เช่น
www.codinggun.com
ลงในเบราว์เซอร์ - ระบบจะสอบถาม DNS Resolver ซึ่งมักจะเป็นของผู้ให้บริการอินเทอร์เน็ต (ISP)
- Resolver ตรวจสอบใน Cache ว่าเคยมีข้อมูลของ Domain นั้นหรือไม่ ถ้าไม่มีก็จะเริ่มกระบวนการค้นหาใหม่
- Resolver ติดต่อไปยัง Root DNS Server ซึ่งเป็นเซิร์ฟเวอร์ระดับสูงสุดของ DNS
- Root DNS Server ชี้ไปยัง Top-Level Domain (TLD) Server เช่น
.com
,.org
,.th
- TLD Server ชี้ไปยัง Authoritative DNS Server ซึ่งเป็นแหล่งข้อมูลของชื่อโดเมนนั้น
- Authoritative Server ส่ง IP Address กลับมา
- Resolver ส่ง IP Address กลับให้เบราว์เซอร์ ซึ่งนำไปเชื่อมต่อกับเว็บไซต์เป้าหมาย
ประโยชน์ของ DNS
- ใช้งานง่าย: ผู้ใช้ไม่ต้องจำหมายเลข IP ยาว ๆ
- ยืดหยุ่น: เจ้าของเว็บไซต์สามารถเปลี่ยน IP Address ได้โดยไม่ต้องเปลี่ยนชื่อโดเมน
- มีประสิทธิภาพ: ระบบ DNS มีการแคชข้อมูลเพื่อลดเวลาในการโหลดเว็บไซต์
- จัดกลุ่มด้วย Sub Domain: เราสามารถรวม Site ต่างๆที่เป็นเรื่องเดียวกันไว้ใน Domain เดียวกันและแบ่ง Services ต่างๆออกไปเป็น Sub Domain ย่อยๆได้ ยกตัวอย่างเช่น
mail.example.com
,shop.example.com
DNSSEC
ถึงแม้ DNS จะใช้งานอย่างกว้างขวาง แต่ก็มีช่องโหว่เช่นกัน ยกตัวอย่างเช่น
- DNS Spoofing / Poisoning: การปลอม DNS หรือการเข้าไปแก้ไขข้อมูลใน DNS เพื่อชี้ผู้ใช้ไปยังเว็บไซต์ปลอม
- DNS Hijacking: การเปลี่ยนเส้นทาง DNS ไปยัง Site ของ Attacker
เพื่อป้องกันความเสี่ยงเหล่านี้ จึงมีเทคโนโลยีอย่าง DNSSEC (DNS Security Extensions) ที่ช่วยตรวจสอบความถูกต้องของข้อมูล DNS ให้
DNSSEC ย่อมาจาก Domain Name System Security Extensions เป็นเทคโนโลยีที่เพิ่มความปลอดภัยให้กับระบบ DNS โดยมีเป้าหมายเพื่อ ป้องกันการปลอมแปลงข้อมูลใน DNS Server
ทำไมต้องมี DNSSEC?
DNS เดิมถูกออกแบบมาให้ทำงานได้รวดเร็วและมีประสิทธิภาพ แต่ไม่มีระบบตรวจสอบความถูกต้องของข้อมูล
นั่นหมายความว่า หากมีผู้ไม่หวังดีสามารถปลอมแปลงข้อมูลใน DNS (เช่น ทำให้ www.yourbank.com
ชี้ไปยัง IP ปลอมที่มีหน้าเว็บเหมือนกับหน้าเว็บของธนาคาร) ผู้ใช้ก็จะถูกหลอกให้กรอก username หรือ password โดยไม่รู้ตัว
โดยที่ DNSSEC จะเพิ่ม “Digital Signature” ให้กับข้อมูลเมื่อ Browser ขอข้อมูลจาก DNS ไปใช้งาน จะสามารถตรวจสอบความถูกต้อง ถ้าข้อมูลไม่ถูกต้องก็จะไม่ยอมให้เข้าใช้งาน
DNSSEC ทำงานอย่างไร
- เจ้าของโดเมนเปิดใช้งาน DNSSEC กับ Registrar หรือ DNS provider
- ระบบจะสร้าง Private key และ Public key เพื่อใช้ลงลายเซ็นกับข้อมูลใน DNS Server
- เมื่อมีการร้องขอ
- DNS Server จะส่งข้อมูลที่ลงลายเซ็นดิจิทัล(digital signature) มาด้วย
- ฝั่งผู้ใช้จะตรวจสอบว่าลายเซ็นนั้นถูกต้องตาม Public key หรือไม่
- หากลายเซ็นตรงกัน ถือว่าเป็นข้อมูลที่ถูกต้อง และไม่ถูกดัดแปลงระหว่างทาง
ประโยชน์ของ DNSSEC
- ป้องกันการโจมตีแบบ DNS spoofing / cache poisoning
- เพิ่มความมั่นใจให้กับผู้ใช้ ว่าเว็บไซต์ที่กำลังเข้าคือของจริง
- ช่วยเพิ่มความน่าเชื่อถือของบริการออนไลน์
ข้อควรระวัง
- DNSSEC ไม่ได้เข้ารหัสข้อมูล (ไม่ใช่ HTTPS) แค่ตรวจสอบว่า “ข้อมูลใน DNS ไม่ถูกแก้ไข”
- การตั้งค่า DNSSEC ต้องทำร่วมกับ Registrar และ DNS provider ที่รองรับ
- หากตั้งค่าไม่ถูกต้อง อาจทำให้เว็บไซต์ไม่สามารถเข้าถึงได้
DNS Lookup
DNS Lookup คือกระบวนการค้นหาหมายเลข IP Address ที่สอดคล้องกับชื่อ Domain โดยอาศัยข้อมูลใน DNS Server เพื่อให้สามารถเชื่อมต่อไปยังเว็บไซต์หรือบริการต่างๆ บนอินเทอร์เน็ตได้
ประเภทของ DNS Lookup
DNS Lookup มี 2 ประเภทหลัก:
-
Forward DNS Lookup (การแปลงจาก Domain Name ไปยัง IP)
- ใช้ชื่อโดเมน เช่น
www.codinggun.com
เพื่อค้นหา IP Address ของเซิร์ฟเวอร์ที่ให้บริการเว็บไซต์นั้น - เป็นการ lookup แบบที่ผู้ใช้งานอินเทอร์เน็ตใช้บ่อยที่สุด
- ใช้ชื่อโดเมน เช่น
-
Reverse DNS Lookup (การแปลงจาก IP ไปเป็น Domain Name)
- ใช้ IP Address เพื่อค้นหาว่ามันชี้ไปยัง Domain ใด
- มักใช้ในการทดสอบด้่าน Security หรือการวิเคราะห์ log เพื่อหาแหล่งที่มาของการโจมตี
ตัวอย่างการทำ DNS Lookup
เราสามารถใช้ NSLookup สำหรับทำ
-
Forward Lookup(ค้นหา IP Address)
nslookup www.codinggun.com
ผลลัพธ์จะออกมาเป็น
Non-authoritative answer: www.codinggun.com canonical name = codinggun.com. Name: codinggun.com Address: 111.111.111.111
ซึ่งจะทไห้เรารู้ว่า Website นั้นมี Public IP Address อะไร
-
Reverse Lookup
nslookup 111.111.111.111
ซึ่งนอกจาก NSLookup แล้วเรายังมีเครื่องมืออื่นๆ อีกหลายตัวที่สามารถทำ DNS Lookup ได้
DNS Record
DNS Record คือข้อมูลที่เก็บไว้ใน DNS Server ซึ่งใช้กำหนดว่าโดเมนนั้น ๆ ควรทำงานอย่างไร เช่น ชี้ไปยัง Server ไหน, ใช้ E-mail Server ใด, หรือใช้ยืนยันว่าเป็นเจ้าของ Domain
ประเภทของ DNS Record ที่พบบ่อย
ประเภท | ชื่อเต็ม | หน้าที่ |
---|---|---|
A | Address Record | ชี้ชื่อโดเมนไปยัง IP Address แบบ IPv4 เช่น 111.111.111.111 |
AAAA | IPv6 Address Record | ชี้ชื่อโดเมนไปยัง IP Address แบบ IPv6 เช่น 2001:0db8::1 |
CNAME | Canonical Name Record | ใช้ตั้งชื่อโดเมนให้ชี้ไปยังอีกชื่อหนึ่ง เช่น example.com → www.example.com |
MX | Mail Exchange Record | ระบุว่าให้ใช้ Server ใดในการรับอีเมลของ Domain นั้น |
TXT | Text Record | เก็บข้อความ เช่น ข้อมูลยืนยันโดเมน หรือ SPF, DKIM, DMARC สำหรับความปลอดภัยของอีเมล |
NS | Name Server Record | บอกว่าโดเมนนี้ใช้ DNS Server ตัวไหนในการจัดการ |
SOA | Start of Authority Record | ข้อมูลเกี่ยวกับโดเมน เช่น ผู้ดูแล, เวลาการอัปเดต |
PTR | Pointer Record | ใช้สำหรับ Reverse Lookup (จาก IP กลับไปเป็น Domain) |
ตัวอย่าง DNS Record
ตัวอย่างของ A Record ที่ Map ระหว่าง IP Address กับ Domain ซึ่งถือได้ว่าเป็น Record แรกที่ทุกๆ Web ต้องมี
example.com. IN A 111.111.111.111
ซึ่งจะหมายความว่า example.com
ชี้ไปยัง IP 111.111.111.111