หน้าแรก > คุย Linux > Domain Name Server (DNS) คืออะไร

Domain Name Server (DNS) คืออะไร

 

 

การเชื่อมต่อสื่อสารระหว่าง คอมพิวเตอร์ในระบบ internet นั้นใช้มาตรฐาน TCP/ IP ที่เครื่องคอมพิวเตอร์นั้นต้องมีหมายเลข IP Address ไม่ซ้ำกัน ซึ่งใช้ เวลาติดต่อสื่อสารระหว่างกัน โดยจะอ้างถึงหมายเลขประจำตัวเครื่องปลายทางที่เราติดต่อได้ทันที โดยปกติเครื่อง Web Server จะมี IP Address ทั้งนี้เกิดปัญหาในการจำ เพราะว่า IP Address มีตัวเลขถึง 12 ตัว จากจุดนี้เลยได้มีการคิดที่จะแปลง IP Address ให้เป็นชื่อที่จำได้ง่าย Domain Name System จึงถือกำเนิดขึ้นเพื่อใช้ชื่อแทนที่หมายเลข IP ฉะนั้น DNS คือระบบการแปลงค่าระหว่าง IP Address และชื่อเครื่อง(Host) 

ประวัติความเป็นมาของระบบ DNS

ในช่วงศตวรรษที่ 90 ในขณะที่การใช้งานอีเมลล์เริ่มเป็นที่นิยมอย่างแพร่หลาย จำนวนเครือข่ายที่เชื่อมต่อมายังเครือข่าย ARPA NET ได้เพิ่มจำนวนสูงขึ้นอย่างรวดเร็ว จนทำให้บริการเครือข่ายแบบรวมศูนย์ของ SRI ( The NIC ) เริ่มประสบปัญหาในการจัดการระบบฐานข้อมูลซึ่งใช้ในการอ้างอิงถึงโฮสท์ที่เชื่อมต่อมาจากเครือข่ายอิสระต่างๆ ที่มีโครงสร้างการทำงานที่แตกต่างกัน โดยในขณะนั้น การเพิ่มรายชื่อโฮสท์แต่ละเครื่องเข้ามาในเครือข่าย ARPA NET จำเป็นต้องส่งข้อมูลโดยการ FTP เข้ามาปรับปรุงข้อมูลในไฟล์ Host Table ที่ SRI เป็นผู้ดูแล ซึ่งจะมีการปรับปรุงข้อมูลเพียงสัปดาห์ละ 2 ครั้งเท่านั้น ทำให้การจัดการข้อมูลมีความล่าช้าและไม่ยืดหยุ่น นอกจากนี้เครือข่ายต่างๆ ที่เข้ามาเชื่อมต่อต่างก็ต้องการอิสระในการจัดการบริหารระบบของตนเองจึงเกิดแนวความคิดที่กระจายความรับผิดชอบในการจัดระบบนี้ออกไป โดยแบ่งการจัดพื่นที่ของโลกเสมือนนี้ออกเป็นส่วนๆ โดยกำหนดให้โฮสท์แต่ละเครื่องอยู่ภายใต้ขอบเขตพื้นที่ใดพื้นที่หนึ่งที่ได้แบ่งเอาไว้ โดยแต่ละพื้นที่สามารถแบ่งออกเป็นพ้นที่ที่เล็กลงได้อย่างไม่จำกัด ซึ่งพื้นที่แต่ละส่วน ก็ถูกอ้างไปยังพื้นที่ที่ใหญ่กว่าเป็นลำดับชั้นขึ้นไป เพื่อให้สามารถระบุตำแหน่งอ้างอิงของโฮสท์แต่ละเครื่องที่อยู่ภายใต้ขอบเขตของแต่ละพื้นที่ได้อย่างถูกต้องและรวดเร็ว โดยพื้นที่เสมือนแต่ละส่วนถูกเรียกว่า “ โดเมน” (Domain) และเรียกการอ้างระบบอ้างอิงเป็นลำดับชั้นด้วยชื่อของแต่ละพื้นที่หรือโดเมนนี้ว่า “ ระบบชื่อโดเมน ” ( Domain Name System) ส่วนพื้นที่ทั้งหมดของโลกเสมือนที่ประกอบด้วยพื้นที่ย่อยๆจำนวนมากนี้  
จะเรียกว่า “Domain Name Space”

Domain Name Server (DNS) คือสิ่งที่นำมาอ้างถึงหมายเลขเครื่อง หรือ หมายเลข IP Address เพื่อให้ง่ายต่อการจดจำ DNS จะทำหน้าที่คล้ายกับสมุดโทรศัพท์ คือ เมื่อมีคนต้องการจะโทรศัพท์หาใคร คน ๆ นั้นก็จะต้องเปิดสมุดโทรศัพท์เพื่อค้นหาเบอร์โทรศัพท์ของคนที่ต้องการจะติดต่อคอมพิวเตอร์ก็เช่นกัน เมื่อต้องการจะสื่อสารกับคอมพิวเตอร์เครื่องอื่น เครื่องนั้นก็จะทำการสอบถามหมายเลข IP ของเครื่องที่ต้องการจะสื่อสาร กับ DNS server ซึ่งจะทำการค้นหาหมายเลขดังกล่าว ในฐานข้อมูลแล้วแจ้งให้ Host ดังกล่าวทราบ ระบบ DNS แบ่งออกได้เป็น 3 ส่วน คือ

Name Resolvers โดยเครื่อง Client ที่ต้องการสอบถามหมายเลขไอพีเรียกว่า Resolver ซึ่งซอฟต์แวร์ที่ทำหน้าที่เป็น Resolvers นั้นจะถูกสร้างมากับแอพพลิเคชันหรือเป็น Library ที่มีอยู่ใน Client

Domain Name Space เป็นฐานข้อมูลของ DNS ซึ่งมีโครงสร้างเป็น Tree หรือเป็นลำดับชั้น แต่ละโหนดคือ โดเมนโดยสามารถมีโดเมนย่อย (Sub Domain) ซึ่งจะใช้จุดในการแบ่งแยก

Name Servers เป็นคอมพิวเตอร์ที่รันโปรแกรมจัดการฐานข้อมูลบางส่วนของ DNS โดย Name Server จะตอบการร้องขอทันที โดยการหาข้อมูลตัวเอง หรือส่งต่อการร้องขอไปยัง Name Server อื่น ซึ่งถ้า Name Server มีข้อมูลของส่วนโดเมนแสดงว่า Server นั้นเป็นเจ้าของโดเมนเรียกว่า Authoritative แต่ถ้าไม่มีเรียกว่า Non-Authoritative

การทำงานของระบบDNS

    การทำงานของระบบชื่อโดเมนนั้น  เริ่มต้นจากเครื่องคอมพิวเตอร์ซึ่งทำหน้าที่เป็น  DNS Server ซึ่งทำงานด้วยซอฟแวร์พิเศษชื่อว่า  BIND ที่ทำหน้าที่ในการรับส่งข้อมูลระหว่าง  DNS Server  แต่ละเครื่องผ่าน  DNS  Photocal  เมื่อมีคำร้องขอให้สืบค้นหมายเลข ไอพี  อย่างไรก็ตาม  คำตอบที่  DNS Server  จะมีให้ก็ต่อคำร้องหนึ่งๆนั้นขันกับว่า  DNS Server  นั้นเป็น DNS Server  ประเภทใด  ซึ่งสามารถแบ่งได้เป็น  2  ประเภทคือ
        1. Name Server
        2. Resolver
 
 การตั้งชื่อให้ DNS ต้องเป็นไปตามกฏนี้
    ใช้ได้เฉพาะตัวอักษรละติน (ASCII character set) ใน RFC 1035 ระบุว่าสัญลักษณ์ที่ใช้ได้ในโดเมนเนม คือ
          (1) ตัวอักษร a ถึง z (case insensitive – ไม่สนใจพิมพ์เล็ก พิมพ์ใหญ่)
          (2) เลข 0 ถึง 9
          (3) เครื่องหมายยติภังค์ (-)

ขั้นตอนการติดตั้ง DNS Server ด้วย Fedora Core 5

1. ตรวจสอบ BIND packet ด้วยคำสั่ง ดังตัวอย่างนี้

[root@cs ~]# rpm -qa bind

bind-9.3.2-4.1 ในการทดลองนี้ ได้ติดตั้งโปรแกรม BIND ไว้แล้วคือ bind-9.3.2-4.1 ซึ่งเป็นเวอร์ชั่น 9.3.2-4.1

2. หากยังไม่ได้ติดตั้งโปรแกรม BIND สามารถดาวน์โหลดได้ที่ http://fedora.redhat.com/download/ ซึ่งต้องดาวน์โหลดเป็นไฟล์ rpm และเป็น Fedora Core 5 หรือสูงกว่า เมื่อดาวน์โหลดเสร็จแล้ว ทำการติดตั้งด้วยคำสั่ง ดังตัวอย่างนี้

[root@cs ~]# rpm -ivh bind-9.3.2-4.1.rpm

3. เพิ่มชื่อโดเมน และกลุ่ม IP address ที่ต้องการ ลงไปในไฟล์ named.conf ดังตัวอย่างนี้

3.1     ใช้คำสั่ง vi เพื่อแก้ไขไฟล์ named.conf ดังตัวอย่างนี้

[root@cs ~]# vi /etc/named.conf

3.2  กดปุ่ม insert หรือ กด i เพื่อแทรกและแก้ไขข้อความ

3.3  จากนั้นเพิ่มกลุ่มโดเมนและ กลุ่มไอพีแอดเดรส ดังตัวอย่างนี้
zone “ossthailand.com” IN {

type master;

file “ossthailand.com.zone”;

allow-update { none; };

};

zone “0.168.192.in-addr.arpa” IN {

type master;

file “192.168.0.zone”;

allow-update { none; };

};

3.4  บันทึกไฟล์ named.conf ด้วยคำสั่ง ดังนี้

3.4.1        กดปุ่ม Esc

3.4.2        ตามด้วยเครื่องหมาย : และ wq!

3.5  สร้างไฟล์ ossthailand.com.zone และไฟล์ 192.168.0.zone ดังตัวอย่างนี้

3.5.1        เข้าไปยังไดเรคเทอรี่ /var/named/chroot/var/named ดังตัวอย่างนี้

[root@cs ~]# cd /var/named/chroot/var/named/

3.5.2        สร้างไฟล์ ossthailand.com.zone โดยการก๊อบบี้จากไฟล์ localhost.zone ดังตัวอย่างนี้

[root@cs named]# cp localhost.zone ossthailand.com.zone

3.5.3        สร้างไฟล์ 192.168.0.zone โดยการก๊อบบี้จากไฟล์ localhost.zone ดังตัวอย่างนี้

[root@cs named]# cp localhost.zone 192.168.0.zone

3.6  แก้ไขไฟล์ ossthailand.com.zone ดังตัวอย่างนี้

$TTL    86400

@               IN SOA                             cs.ossthailand.com. root.cs.ossthailand.com (

2007022201      ; serial (d. adams)

3H              ; refresh

15M             ; retry

1W              ; expiry

1D )            ; minimum

IN NS           cs.ossthailand.com

ossthailand.com.        IN NS           cs.ossthailand.com

ossthailand.com.        IN MX 5         mail.ossthailand.com

cs      IN      A       192.168.0.7

ranger  IN      A       192.168.0.1

www     IN CNAME        cs

ftp     IN CNAME        cs

3.7  แก้ไขไฟล์ 192.168.0.zone ดังตัวอย่างนี้

$TTL    86400

@               IN SOA                             cs.ossthailand.com. root.cs.ossthailand.com. (

2007022201      ; serial (d. adams)

3H              ; refresh

15M             ; retry

1W              ; expiry

1D )            ; minimum

IN NS           cs.ossthailand.com

1       IN PTR  ranger.ossthailand.com

7       IN PTR  cs.ossthailand.com

3.8  เปิดการใช้งานโปรแกรม BIND ด้วยคำสั่ง ดังตัวอย่างนี้

[root@cs named]# /etc/init.d/named restart
Stopping named:                                          [  OK  ]

Starting named:                                            [  OK  ]

3.9  ทดสอบ Forward mapping ด้วยโปรแกรม BIND โดยคำสั่ง dig ดังตัวอย่างนี้

[root@cs ~]# dig cs.ossthailand.com

3.9.1  โดยแสดงรายการดังนี้

; <<>> DiG 9.3.2 <<>> cs.ossthailand.com

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55458

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;cs.ossthailand.com.            IN      A

;; ANSWER SECTION:

cs.ossthailand.com.     86400   IN      A       192.168.0.7

;; AUTHORITY SECTION:

ossthailand.com.        86400   IN      NS      cs.ossthailand.com.ossthailand.com.

;; Query time: 4 msec

;; SERVER: 192.168.0.7#53(192.168.0.7)

;; WHEN: Tue Mar  6 00:55:10 2007

;; MSG SIZE  rcvd: 85

3.10    ทดสอบการทำงานโปรแกรม BIND ด้วยคำสั่ง nslookup ดังตัวอย่างนี้

[root@cs ~]# nslookup

> cs.ossthailand.com ——-à ใส่ชื่อโดเมนที่ต้องการตรวจสอบ

Server:         192.168.0.7

Address:        192.168.0.7#53

Name:   cs.ossthailand.com

Address: 192.168.0.7

ขั้นการกำหนดค่าการใช้งาน DNS ที่เครื่องลูกข่าย

3.11    เลือกไอคอน My Network Places ที่หน้าจอ Desktop ดังตัวอย่างนี้

3.12    คลิกขวาที่ไอคอน My Network Places และเลือกเมนู Properties ดังตัวอย่างนี้

3.13    เลือกเครือข่ายที่ต้องการติดต่อกับ DNS Server โดยคลิกขวาที่ Local Area Connection และเลือกเมนู Properties ดังตัวอย่างนี้

3.14    ดับเบิ้ลคลิกที่ Internet Protocol (TCP/IP) ดังตัวอย่างนี้

3.15    กำหนดหมายเลขไอพีแอดเดรส DNS Server ในช่อง Preferred DNS server: ดังตัวอย่างนี้

ขั้นตอน การตรวจสอบการทำงาน DNS Server จากเครื่องลูกข่าย

3.16    ไปที่เมนูบาร์ แล้วเลือกเมนู Run ดังตัวอย่างนี้

3.17    พิมพ์คำสั่ง cmd แล้วคลิกปุ่ม Ok ดังตัวอย่างนี้

3.18    พิมพ์คำสั่ง nslookup แล้ว Enter ดังตัวอย่างนี้

3.19    จากนั้นใส่ชื่อโดเมนที่ต้องการตรวจสอบ ดังตัวอย่างนี้ (ดังตัวอย่างโดเมนชื่อ ranger.ossthailand.com โดยแสดงหมายเลขไอพีแอดเดรสคือ 192.168.0.7)

3.20    พิมพ์คำสั่ง exit เพื่อออกจากการทำงาน


 

วิธีการตรวจสอบสถานะของ Server แบบง่ายๆ ด้วยการใช้คำสั่ง Ping

1. คลิกที่ปุ่ม Start –> Run

 

2. จะพบกับหน้าต่าง Run ให้ท่านพิพม์คำสั่ง CMD ในช่อง Open จากนั้นกดปุ่ม OK

 

3. จะพบกับหน้าต่าง DOS Mode ให้ท่านพิมพ์คำสั่งดังนี้ C:\> Ping http://www.yourdomain.com

 

4.จากตัวอย่างในภาพข้างต้นแสดงว่าเว็บไซต์ http://www.siamwebhost.com Host อยู่บน หมายเลข IP: 203.146.252.208 และมีการ Reply กลับมาแสดงว่า Server ไม่ได้ Down
208 คือรหัส 3 ตัวสุดท้ายของหมายเลข IP สามารถนำไปตรวจสอบสถานะได้ที่หน้าแรกของ Siamwebhost.Com

5. ในกรณีที่ท่านใช้คำสั่ง Ping แล้วได้ Reply กลับมา แต่ไม่สามารถเข้าเว็บผ่านทาง http://www.yourdomain.com ให้ทดสอบโดยการเข้าหน้าเว็บผ่านทางหมายเลข IP ตัวอย่างเช่น http://203.146.252.208/yordomain.com (อย่าลืมเปลี่ยนหมายเลข IP เป็นหมายเลข ตามที่ท่าน Ping ได้จากข้อ 3) หากยังคงไม่สามารถเข้าเว็บได้อีกแสดงว่า Service บางตัวตัว Down เนื่องจากมีปัญหาทางเทคนิค (Technical Problem) หรือ อยู่ระหว่างการซ่อมบำรุงระบบ (System Maintainance)

 

6. ในกรณีที่ใช้คำสั่ง Ping แล้วพบข้อความ Ping request could not find host.. ดังภาพข้างต้น แสดงว่า Domain Name Server (DNS) มีปัญหา หรือ ตั้งค่า DNS ของโดเมนเนมไว้ไม่ถูกต้อง ให้เข้าไปตรวจสอบที่  Whois  ดูว่าโดเมนเนมชื่อนี้ ตั้งค่า DNS ให้ชี้ไปที่ไหน จากนั้นให้ทำการแก้ไข DNS ของโดเมนเนมให้ถูกต้อง จากภาพตัวอย่างเป็นโดเมนเนม *.th ต้องเข้าไปตรวจสอบที่เว็บไซต์ของ  THNIC  ไม่สามารถตรวจสอบที่ Whois ได้นะคะ

 

7. หากใช้คำสั่ง Ping แล้วพบข้อความ Request timed out.ดังภาพข้างต้น อาจเป็นไปได้ 2 กรณีคือ

  • กรณีที่หนึ่ง Server Down เนื่องจากมีปัญหาทางเทคนิค (Technical Problem) หรือ อยู่ระหว่างการซ่อมบำรุงระบบ (System Maintainance)
  • กรณีที่สอง Domain Name Server ของผู้ให้บริการอินเทอร์เน็ตที่ท่านกำลังใช้งานอยู่ในขณะนั้น มีปัญหาทางเทคนิคบางประการ ให้ทดสอบการ Ping อีกครั้งผ่านทางแบบฟอร์มในหน้า Network-Tools ของสยามเว็บโฮสดอทคอม ซึ่งจะทำการ Ping มาจากเว็บไซต์ของต่างประเทศ แทน
หมวดหมู่:คุย Linux
  1. ยังไม่มีความเห็น
  1. No trackbacks yet.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: