การเซ็ต Domain Name Service บน RedHat 9.0 ผ่าน XWindow

        เสษวิสวะ

 

         บริการชื่อโดเมนหรือระบบชื่อโดเมน (Domain Name System : DNS) เป็นระบบการตั้งชื่อให้กับ “ทรัพยากรเครือข่าย” ซึ่งที่พบกันบ่อยก็คือการตั้งชื่อโฮสต์เพื่อใช้แทนค่า IP Address ของโฮสต์ที่จำได้ยากกว่าชื่อทั่วไป  ยกตัวอย่างเช่น การเรียกเว็บไซต์ไปที่ http://www.cat.or.th ถ้าไม่มีระบบการชื่อโดเมนเราจะต้องเรียกใช้งานเว็บไซต์ผ่านบราวเซอร์เป็น http://202.6.107.14 ซึ่งจะเห็นว่าถ้ามีจำนวนโฮสต์มาก ๆ อย่างในเครือข่ายอินเตอร์เน็ตก็จะยากมากต่อการจดจำ 

         ระบบชื่อโดเมนจะทำหน้าที่แปลงชื่อโดเมนหรือชื่อโฮสต์เป็น IP Address ที่เป็นมาตรฐานในการสื่อสารของระบบเครือข่ายคอมพิวเตอร์ ซึ่งการทำงานแบบนี้จะเรียกว่า Forward Master Zone และในบางครั้งอาจจะมีความจำเป็นที่จะต้องแปลงค่า IP Address ให้เป็นชื่อโฮสต์ ระบบชื่อโดเมนก็มีความสามารถที่จะทำงานในลักษณะดังกว่าวได้  ซึ่งเรียกกันว่า Reverse Master Zone

         ซอฟต์แวร์ที่ให้บริการดีเอ็นเอสที่นิยมแพร่หลายกันคือชุดซอฟต์แวร์ BIND (Berkeley Internet Name Domain) ซึ่งเมื่อเอาซอฟต์แวร์ประเภทนี้ไปติดตั้งบนเซิร์ฟเวอร์แล้วก็จะเรียกเซิร์ฟเวอร์ดังกล่าวว่าเป็น Name Server หรือ DNS Server ซึ่ง Name Server จะมีสองแบบคือ Master Name Sever กับ Slave Name Server ซึ่งจะต้องอยู่ต่างเครื่องกัน  โดย Master Name Server จะอ่านข้อมูลประจำโซนจากแฟ้มในดิสค์และถือว่ามีอำนาจหน้าที่ในโซนนั้น  ส่วน Slave Name Server จะสำเนาข้อมูลมาจาก Master Name Server โดยการถ่ายโอนผ่านเครือข่าย 

         โดยทั่วไปโซนหนึ่ง ๆ จะมี Master Name Server ได้เพียงเครื่องเดียว  แต่มี Slave Name Server ได้มากกว่าหนึ่งเครื่อง  แต่ในทางปฏิบัติก็มีหลายหน่วยงานที่ใช้ Master Name Server มากกว่าหนึ่ง 

         ในระบบปฎิบัติการลีนุกซ์นั้น  มีชุดซอฟต์แวร์ BIND ให้มาแล้วกับแผ่นโปรแกรม ขึ้นอยู่กับว่าในการลงครั้งแรกได้ติดตั้งแพ็กเกต BiND ไว้หรือเปล่า ซึ่งถ้าไม่ได้ติดตั้งไว้ก็สามารถจะติดตั้งเพิ่มเติมทีหลังได้ หรือถ้าอยากได้เวอร์ชันใหม่ ๆ ก็สามารถดาวน์โหลดได้จากเว็บไซต์ แล้วติดตั้งเพิ่มเติมเข้าไปได้  สำหรับในบทความนี้ผู้เขียนขอใช้ BIND ที่ติดมากับ RedHat 9.0 ที่ได้ติดตั้งไว้ตอนลงระบบปฏิบัติการครั้งแรกแล้ว ซึ่งบริการชื่อโดเมนบนลีนุกซ์มีชื่อว่า named

         วิธีการเซ็ต Name Server สามารถทำได้ 2 วิธีการคือการเซ็ตผ่าน Command Prompt กับการเซ็ตผ่านระบบกราฟฟิก Xwindow ซึ่งในที่นี้ผู้เขียนของกล่าวถึงวิธีการเซ็ตผ่านระบบกราฟฟิกเป็นหลัก

ตรวจสอบบริการ named ว่าเปิดให้บริการแล้วยัง

         วิธีการตรวจสอบให้คลิ๊กที่เมนู System Settings--->Server Settings--->Services และจะได้หน้าจอดังรูปที่ 1 ให้หาชื่อบริการที่ชื่อว่า named ซึ่งโดยปกติจะยังไม่เปิดบริการ  การเปิดบริการให้เนมดีทำงานก็ทำได้ด้วยการคลิ๊กเครื่องหมายถูกที่เช็คบ็อกหน้าชื่อบริการ และถ้าจะให้ named หรือบริการ Domain Name Server มีการเปิดให้บริการทุกครั้งที่มีการเปิดเครื่องเซิร์ฟเวอร์ก็ทำได้ด้วยการคลิ๊กที่เมนู  File--->Save และให้ดูสถานะการทำงานของ Domain Name Server ที่ช่อง Status ด้านขวาล่างของรูปที่ 1 จะต้องมีข้อความว่า “Server is up and running”

ถึงจะแสดงว่าพร้อมที่จะให้บริการได้  หรือเพื่อความมั่นใจอาจจะคลิ๊กปุ่ม Restart ก่อนและถ้ามีหน้าต่างเล็ก ๆ ขึ้นมาว่า “named restart sucessful ก็แสดงว่าสามารถให้บริการ Domain Name Server ได้แล้ว

รูปที่ 1 การตรวจสอบบริการ Domain Name Server

ทดสอบบริการสอบถามโดเมน

          มาถึงตอนนี้ก็แสดงว่าเครื่องเซิร์ฟเวอร์ของเราสามารถให้บริการสอบถามชื่อโฮสต์ได้แล้ว ซึ่งโปรแกรมสร้างคำสั่งสอบถามตามฟอร์แมตข้อความดีเอ็นเอสเพื่อให้แสดงผลตอบกลับมา  ที่นิยมกันบน Linux มี 3 โปรแกรมคือ nslookup (Name Server Lookup), dig (Domain Internet Groper) และ host ซึ่งโปรแกรมทั้งสามนี้จะต้องรันผ่าน Command Prompt

         แต่ก่อนที่จะเริ่มใช้คำสั่งทั้งสามให้ทำการตรวจสอบการตั้งค่า DNS ของการ์ดเน็ตเวิร์คของเครื่องก่อนว่าได้กำหนดให้ใช้ DNS ของเครื่องตัวเองแล้วยัง ให้คลิ๊กที่เมนู System Settings--->Network และปรับค่าให้ DNS เป็น IP ของตัวเองซึ่งในที่นี้เครื่องมี IP Address เป็น 202.129.16.18 ดังรูปที่ 2


รูปที่ 2 การคอนฟิกเน็ตเวิร์ก


         การทดสอบการทำงานของ DNS โดยใช้คำสั่งทั้งสามทำให้ด้วยการป้อนคำสั่งที่ Command Prompt ถ้าเราป้อนคำสั่ง nslooup โดยไม่มีพารามิเตอร์ใดตามหลังก็จะมีข้อความเตือนดังรูปที่ 3 ซึ่งเป็นการแจ้งบอกว่าคำสั่ง nslookup นั้นถูกคัดค้านและอาจจะถูกเอาออกจากระบบในอนาตค โดยให้ใช้คำสั่ง dig หรือ host แทน  หรือไม่ก็ให้พิมพ์คำสั่ง nslookup ที่มีพารามิเตอร์เพิ่มเติมคือ –sil ซึ่งเมื่อรันแบบนี้จะได้ดังรูปที่ 4 และให้ทดลองป้อนชื่อโดเมนหรือชื่อโฮสต์ที่มีอยู่จริงซักชื่อหนึ่งชื่อ  ซึ่งจากรูปที่ 4 เป็นการทดสอบให้ Domain Name Server ค้นหา IP Address ของเว็บไซต์ www.nectec.or.th ก็จะเห็นว่าเซิร์ฟเวอร์สามารถบอกชื่อชื่อโฮสต์กับ IP Address ของ www.sanook.com ได้ก็แสดงว่า เครื่องเซิร์ฟเวอร์ของเราสามารถให้บริการในการสอบถามชื่อโดเมนได้แล้ว

รูปที่ 3 การรันคำสั่ง nslook ที่ไม่มีพารามิเตอร์ตามหลังจะมีคำเตือน

รูปที่ 4 การรันคำสั่ง nslookup ให้ไม่มีคำเตือน

         สำหรับการใช้คำสั่ง dig และ host เพื่อทดสอบการทำงานของ DNS แสดงดังรูปที่ 5 และรูปที่ 6 ตามลำดับ  ซึ่งจริง ๆ แล้วคำสั่งทั้งสามนี้จะมีพารามิเตอร์สำหรับการสอบถามหลายตัว  แต่ในที่นี้ผู้เขียนจะขอยกตัวอย่างเท่าที่จำเป็นเท่านั้น

 

รูปที่ 5 ตัวอย่างการใช้คำสั่ง dig

รูปที่ 6 ตัวอย่างการใช้คำสั่ง host

 

การเซ็ต Domain Name Server เพื่อเป็นฐานข้อมูลโดเมนที่ได้จดทะเบียนไว้

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

         ในที่นี้สมมุติว่าเราได้จดทะเบียนโดเมนชื่อ sornlinux.net กับ Internic เอาไว้ และได้วางแผนไว้ว่าจะต้องมีชื่อโฮสต์ประเภทต่าง ๆ และ IP Address ของโฮสต์เป็นดังตารางที่ 1

 

ชื่อโฮสต์

ประเภท

IP Address

ns1.sornlinux.net

Nameserver (Master Name Server)

202.129.16.18

ns2.sornlinux.net

Nameserver (Slave Name Server)

202.129.16.19

www.sornlinux.net

Host

202.129.16.20

mail1.sornlinux.net

Mail Exchanger

202.129.16.21

mail2.sornlinux.net

Mail Exchanger

202.129.16.22

mail.sornlinux.net

Alias to mail1.sornlinux.net

IP ของ mail1.sornlinux.net

ตารางที่ 1

การเซ็ต Reverse Master Zone

         Reverse Master Zone เป็นฐานข้อมูลบนระบบชื่อโดเมนที่ใช้สำหรับการแปลงค่า IP Address ให้เป็นชื่อโฮสต์  เนื่องจากกระบวนการเซ็ต Master Name Server ที่จะกล่าวถึงในหัวข้อถัดไป  สามารถที่จะช่วยสร้างฐานข้อมูลของ Reverse Master Zone ได้โดยมีข้อแม้ว่าต้องมีการเพิ่มชื่อ Reverse Master Zone ไว้ก่อนแล้ว  ดังนั้นในขั้นตอนนี้เราเพียงแค่เพิ่มชื่อของ Reverse Master Zone และใส่ค่าที่จำเป็นเบื้องต้นไว้ก่อนเท่านั้น  โดยข้อมูลโฮสต์ต่าง ๆ จะยังคงไม่ป้อนเข้าไป เพราะจะอาศัยการเพิ่มให้อัตโนมัติจากกระบวนการเซ็ต Master Name Server (Forward Master Zone)  แต่ถ้าผู้อ่านไม่ชอบใช้ตัวช่วย จะเพิ่มโฮสต์ต่าง ๆ ไปก่อนก็ไม่ว่ากันครับ
         การเซ็ต
Reverse Master Zone ก็ให้เซ็ตจากเครื่องที่จะทำเป็น Master Name Server โดยให้เลือกเมนู System Settings--->Server Settings--->Domain Name Service ก็จะได้หน้าต่างดังรูปที่ 7  จากรูปโซนที่มีอยู่แล้วโดยปริยายคือ localhost ซึ่งเป็น Forward Master Zone ของลูปแบ็คไอพี และ Reverse Master Zone ของลูปแบ็คไอพีคือ  0.0..127.in-addr.arpa  ซึ่งจะใช้สำหรับการติดต่อในกรณีที่เป็นลูปแบ็ก (127.0.0.1) หรือ localhost

         การเซ็ตเริ่มแรกก็ให้คลิ๊กที่ปุ่ม New แล้วเลือก Reverse Master Zone และในช่อง IP Address (First 3 Octets) ให้ป้อน IP Address 3 ชุดแรกที่ใช้ในโดเมนของเราแล้วให้คลิ๊กปุ่ม Ok ดังรูปที่ 8

รูปที่ 7

 

รูปที่ 8

         จากนั้นก็จะได้หน้าต่าง IP to Name Translations ดังรูปที่ 9 ในหน้าต่างนี้เราต้องป้อนค่าต่าง ๆ ที่จำเป็นดังต่อไปนี้

·        IP Address เป็นค่า IP Address ที่เราได้ป้อนไว้ก่อนหน้านี้  ให้ทำการตรวจสอบความถูกต้องอีกครั้ง ถ้าถูกต้องแล้วก็ไม่ต้องทำอะไร ถ้าไม่ตถูกต้องก็สามารถแก้ไขได้

·        Contact เป็นชื่ออีเมล์แอดเดรสของผู้ดูแลระบบ 

·        File Name เป็นชื่อไฟล์ฐานข้อมูลที่จะเก็บข้อมูล Reverse Master Zone ซึ่งโปรแกรมได้ตั้งชื่อมาให้แล้ว ถ้ามีความจำเป็นก็สามารถจะเปลี่ยนเป็นชื่ออื่น ได้

·        Primary Nameserver (SOA) ก็ให้ป้อนชื่อโฮสต์ที่เป็น  Master Name Server ซึ่งจากตารางที่ 1 คือ ns1.sornlinux.net และอย่าลืมใส่ . ด้วยเพราะโปรแกรมจะไม่ยอมรับถ้าไม่มี . ต่อท้าย

รูปที่  9

         และที่ขาดไม่ได้คือต้องใส่ชื่อของ Nameservers อย่างน้อยหนึ่งชื่อ  วิธีการใส่ก็ให้คลิ๊กปุ่ม Add แล้วใส่ชื่อลงไป ซึ่งจากตารางที่ 1 เรากำหนดให้มี Nameservers สองตัว  ดังนั้นก็ให้ป้อนชื่อทั้งสองลงไป  และเมื่อคลิ๊กปุ่ม OK ก็จะได้หน้าต่างดังรูปที่ 10 ซึ่งจะเห็นว่ามีฐานข้อมูลของ Reverse Master Zone เพิ่มขึ้นมาอีกหนึ่งไฟล์ คือ 16.129.202.in-addr.arpa ก็เป็นการเสร็จขั้นตอนในหัวข้อนี้

รูปที่ 10

การเซ็ต Master Name Server

         จากตารางเราได้กำหนดให้เครื่องที่มีชื่อเป็น ns1.sornlinux.net เป็น Master Name Server ดังนั้นเราต้องเซ็ตเครื่องที่มี  IP Address เป็น 202.129.16.18 ให้เป็น Master Name Server ฉะนั้นจากรูปที่ p4 ให้คลิ๊กที่ปุ่ม New แล้วเลือก Forward Master Zone และในช่อง Domain name ให้ป้อนชื่อโดเมนของเราแล้วให้คลิ๊กปุ่ม OK (ดูรูปที่ 11)

รูปที่ 11

         หลังจากนั้นจะได้หน้าต่าง Name to IP Translations ขึ้นมาดังรูปที่ 12 ซึ่งหน้าต่างนี้ก็จะมีค่าต่าง ๆ ที่จะต้องใส่เพิ่มเติมหรือแก้ไข โดยค่าของ name นั้นถ้าเราไม่ได้ป้อนชื่อผิดก็คงจะไม่ต้องไปทำอะไรกับมัน ค่าของ File Name โปรแกรมจะะเอาค่าของโดเมนมาบวกกับ .zone เข้าไป ซึ่งค่านี้ถ้ามีความจำเป็นก็สามารถเปลี่ยนแปลงได้ แต่ในที่นี้จะยังคงใช้ค่าที่โปรแกรมกำหนดให้มา  ค่าของ Contact ก็ควรจะใส่ค่าอีเมล์ของผู้ดูแลระบบเผื่อว่าระบบ Domain Name Server มีปัญหาโปรแกรม Domain Name Service จะได้แจ้งไปยังผู้ดูแลระบบได้ ค่าของ Primary Nameservers (SOA) ก็ควรจะใส่ชื่อของ Master Name Server ซึ่งในที่นี้เป็น ns1.sornlinux.net. (ต้องใส่จุดต่อท้ายด้วยไม่งั้นจะมีข้อความฟ้องเตือน) ส่วนค่าของ Serial Number เป็นค่าที่ใช้กำหนดรุ่นของฐานข้อมูล เลขมากแสดงถึงฐานข้อมูลที่ปรับปรุงครั้งหลังสุด  ทั้ง Master Name Server และ Slave Name Server จะมีค่านี้ประจำตัว  หาก Slave Name Server พบว่า เลขลำดับใน Master Name Server มากกว่าเลขลำดับของตนเอง  แสดงว่ามีการปรับปรุงข้อมูลที่ Master Name Server ฉะนั้น Slave Name Server จะต้องถ่ายโอนข้อมูลใหม่ไป  ซึ่งค่า ซึ่งผู้ดูแลระบบจะต้องปรับเลขลำดับเพิ่มขึ้นทุกครั้งที่ปรับปรุงฐานข้อมูล  มิฉะนั้น Slave Name Server จะไม่อ่านค่าจาก Master Name Server การปรับค่าอาจจะเพิ่มขึ้นครั้งละเท่าใดก็ได้ตามความเหมาะสม แต่เทคนิคที่นิยมใช้คือใช้รหัส ปี-เดือน-วัน-รุ่น เป็นเลขลำดับ

รูปที่ 12

         ลำดับต่อไปก็ให้ทำการใส่ข้อมูล Name Servers และ Mail Exchangers ของโดเมน sornlinux.net โดยให้คลิ๊กที่ปุ่ม Edit ของรูปที่ 12 แล้วจะได้หน้าต่างตามรูปที่ 13 ซึ่งการป้อนข้อมูล  Nameservers ให้คลิ๊กที่ปุ่ม Add ของช่อง Nameservers ส่วนการป้อนข้อมูล Mail Exchaingers ก็ให้คลิ๊กที่ปุ่ม Add ของช่อง Mail Exchangers ตามรูปที่ 13 โดยชื่อของ Nameservers นั้นต้องป้อนชื่อเต็มรูปแบบเช่น ns1.sornlinux.net ดังรูปที่ 11 ส่วนชื่อ Mail Exchangers ให้ใส่เฉพาะชื่อโฮสต์เท่านั้น เช่น mail1 ดังรูปที่ 15

     

รูปที่ 13

รูปที่ 14

         การใส่ชื่อของ Mail Exchangers จะต้องมีการใส่ลำดับความสำคัญลงไปด้วย ซึ่งจะใช้ประโยชน์ในกรณีที่มี Mail Server หลายตัว ซึ่งก็หมายถึงว่าถ้าไม่สามารถขอใช้บริการจาก Mail Server ที่มีลำดับความสำคัญสูงกว่าแล้วก็ให้ติดต่อ Mail Server ที่มีลำดับรองลงไป  ในที่นี้ได้กำหนดให้ mail1 มีลำดับความสำคัญเป็น 5 (สำคัญกว่า) และให้ mail2 มีลำดับความสำคัญเป็น 10 (สำคัญรองลงมา) จริง ๆ แล้วตรงจะกำหนดให้มีลำดับความสำคัญเป็น 1 กับ 2 ก็ได้  แต่การกำหนดให้เป็น 5 กับ 10 ก็เป็นการเผื่ออนาคตไว้ก่อนเผื่อว่าจะมี Mail Server เพิ่มขึ้นมาหลายตัวสามารถจะแทรกลำดับความความคัญไว้ในลำดับความสำคัญที่ว่างได้  และเมื่อป้อนค่าของ Nameservers และ Mail Exchangers ครบตามค่าของตารางที่ 1 แล้วก็จะได้ดังรูปที่ 16

 

 

รูปที่ 15

รูปที่ 16

         หลังจากทำการเซ็ต Nameservers และ Mail Exchagers เสร็จแล้วเพื่อความมั่นใจก็ควรจะทำการทดสอบว่าค่าที่ได้เซ็ตเอาไว้ถูกต้องหรือไม่ด้วยการใช้คำสั่งสอบถาม nslookup, dig, หรือ host ในที่นี้ผู้ใช้ขอยกตัวอย่างการใช้คำสั่ง host และ nslookup ดังรูปที่ 17 และรูปที่ 18 ตามลำดับ 

รูปที่ 17

 

         การใช้คำสั่ง host –t ns sornlinux.net  และ host –t mx sornlinux.net ตัวพารามิเตอร์ -t (type) หมายถึงชนิดของการสอบถาม ถ้าเป็น ns ก็หมายถึง Nameservers ส่วน mx ก็หมายถึง Mail Exchangers ดังรูปที่ 17  ส่วนการใช้คำสั่ง nslookup เมื่อเรียก nslookup มาใช้แล้วให้ป้อนคำว่า set type=ns เพื่อสอบถาม Nameserver  และ set type=mx เพื่อสอบถาม Mail Exchangers ดังรูปที่ 18

รูปที่ 18

 

         เมื่อตรวจสอบเห็นว่าได้ค่าถูกต้องตามที่ต้องการแล้วก็ให้ทำการเซ็ตในขั้นตอนต่อไปคือการเพิ่มชื่อโฮสต์และ Alias ซึ่ง หลังจากที่ออกมาจากหน้าต่างของการเซ็ต Nameservers และ Mail Exchaingers ให้คลิ๊กปุ่ม Add ภายในช่อง Records ก็จะได้หน้าจอดังรูปที่ 19

รูปที่ 19

         จากรูปที่ 19 เราสามารถเพิ่มชื่อได้ 3 ประเภทคือ

·        Host หมายถึงการกำหนด IP Address ให้กับชื่อโฮสต์ต่าง ๆ  โดยชื่อของ Namesever และ Mail Exchangers ที่เราเคยเพิ่มไปแล้วนั้น  เราต้องมาเพิ่มในหัวข้อ Host ด้วยเพราะก่อนหน้านี้ยังไม่ได้กำหนดค่า IP Addreess ให้กับทั้ง Nameserver  และ Mail Exchangers ข้อมูลของ Host จะเป็นเร็คคอร์ด A  (type = A)

·        Alias เป็นสมญานามหรือเป็นชื่ออีกชื่อหนึ่งของชื่อโฮสต์  นั่นก็หมายว่าเราสามารถกำหนดชื่อโฮสต์หนึ่ง ๆ ให้มีหลายชื่อได้  ซึ่งข้อมูลของ Alias จะเป็นเร็คคอร์ด CNAME (type=CNAME)

·        Nameserver เป็นการกำหนด Nameserver เช่นเดียวกับที่ได้กล่าวมาแล้ว  ซึ่งจะมีข้อมูลเป็นเร็คคอร์ด NS (type=NS)

 

        การเพิ่มชื่อ Host ก็ให้ป้อนชื่อโฮสต์ลงในช่อง Host name และใส่ IP Address ในช่อง Address ส่วนช่อง Add to reverse Table ก็เป็นการทำช่วยทำ Reverse Master Zone โดยอัตโนมัติ  เพราะฉะนั้นให้เลือกคลิ๊กที่เช็คบ็อกดังกล่าวและเลือกไฟล์ Reverse Master Zone ให้ตรงกับที่ต้องการคือ 16.129.202.in-addr.arpa  ซึ่งจากตารางที่ 1 เราต้องทำการเพิ่มชื่อ Host ทั้งหมดเป็น 5 โฮสต์คือ ns1,ns2,www,mail1 และ mail2 โดยรูปที่ 20 เป็นตัวอย่างของการเพิ่มโฮสต์ชื่อ ns1 ส่วนการเพิ่มชื่อ Alias ก็เป็นดังรูปที่ 21 ซึ่งเป็นการกำหนดสมญานาม mail.sornlinux.net ให้กับ mail1.sornlinux.net

รูปที่ 20

รูปที่ 21

ตรวจสอบความถูกต้อง
        
ต่อไปเราก็ต้องมาทำการตรวจสอบความถูกต้องของการเซ็ต Master Name Server กัน คำสั่ง host ถ้าเราใช้พารามิเตอร์ host –l แล้วตามด้วยชื่อโดเมนก็จะเป็นการดูโฮสต์ทั้งหมดของโดเมนนั้น ๆ ในที่นี้ให้ป้อนคำว่า host –l sornlinux.net ก็จะได้ค่าของโฮสต์ทั้งหมดของโดเมน sornlinux.net ดังรูปที่  22

รูปที่ 22

         ในบางครั้งเราสามารถเรียกใช้งานเว็บไซต์ผ่านบราวเซอร์โดยที่ไม่ต้องป้อนคำว่า www ก็ได้เช่น www.sanook.com เราสามารถป้อนแค่ sanook.com ได้  ที่เป็นเช่นนี้เพราะมีการใส่ค่า IP Address (optional) เอาไว้ให้ตรงกับค่า IP Address ของโฮสต์ที่ชื่อ www เอาไว้ ดังนั้นในช่อง IP Address (optional) ของรูปที่ 16 เราควรจะใส IP Address ของโฮสต์ที่ชื่อ www ซึ่งในที่นี้ก็คือ 202.129.16.20 ลงไปด้วย และเมื่อทำการตรวจสอบชื่อโฮสต์ที่ชื่อว่า sornlinux.net ก็จะได้ดังรูปที่ 23

รูปที่ 23

         สุดท้ายก็ต้องทำการตรวจสอบ Reverse Master Name โดยรูปที่ 24 เป็นตัวอย่างการตรวจสอบโดยใช้คำสั่ง nslookup ซึ่งวิธีการตรวจสอบก็ให้ป้อนข้อมูลที่เป็น IP Address ลงไป จากนั้นโปรแกรมก็จะบอกมาว่า IP ที่เราป้อนเข้าไปดังกล่าวมีชื่อโฮสต์เป็นอะไร

รูปที่ 24

สำรวจระบบไฟล์บนเครื่อง Master Name Server

         ระบบไฟล์บนเครื่อง Master Name Server ที่ควรพิจารณาของโปรแกรม named มีอยู่สองประเภทด้วยกันคือ

1.       Configuration File เป็นไฟล์กำหนดงานเริ่มต้นประจำ Name Server ภายในไฟล์จะบรรจุชื่อเซอร์ฟเวอร์และกำหนดที่เก็บไฟล์ข้อมูลอื่น ซึ่งตำแหน่งของไฟล์จะเป็น /etc/named.conf ดังรูปที่ 25 ซึ่งเป็นตัวอย่างอย่างบนเครื่อง Master Name Server ของ sornlinux.net  ซึ่งในไฟล์จะมีโซนต่าง ๆ โดยโซนที่มีโดยปริยายคือ 16.129.202.in-addr.arpa กับ localhost ส่วนโซน sornlinux.net เป็น Forward Master Zone กับโซน 16.129.202.in-addr.arpa เป็น Reverse Master Zone ทั้งสองโซนเป็นโซนที่เราได้สร้างขึ้นมาใหม่ตามที่ได้กล่าวมา ซึ่งจะเห็นว่าชนิดของโซนเป็น master ทั้งหมดและได้กำหนดชื่อไฟล์สำหรับเก็บข้อมูลไว้ด้วย

2.       ไฟล์ฐานข้อมูลโฮสต์ จะอยู่ที่ตำแหน่ง /var/named ซึ่งมีอยู่หลายไฟล์ด้วยกันดังรูปที่ 26 โดยไฟล์ที่มีอยู่ก่อนแล้วโดยปริยายมี 4 ไฟล์คือ

·        localhost.zone เป็นฐานข้อมูลโฮสต์ของ localhost หรือ loopback address คือ 127.0.0.1 ดังรูปที่ 27

·        0.0.127.in-addr.arpa.zone เป็นแอดเดรสผกผันของ localhost ดังรูปที่ 28

·        name.ca เป็น cache file ที่ใช้เก็บโดเมนหรือโฮสต์ที่มักใช้ประจำเพื่อให้ named นำไปใช้โดยไม่ต้องผ่านกระบวนการเรโซลูชัน  ข้อมูลในแคชจึงมักเป็นข้อมูลซึ่งไม่เปลี่ยนแปลงบ่อยนัก  ไฟล์แคชมักจะใช้กำหนดรูทเนมเซอร์ฟเวอร์ หากผู้ดูแลระบบต้องการเพิ่มข้อมูลอื่นก็สามารถทำได้โดยใช้รูปแบบเดียวกัน ดังรูปที่ 29

·        named.local ดังรูปที่ 30

ส่วนไฟล์ที่เราสร้างขึ้นมาใหม่ 2 ไฟล์คือ

·        sornlinux.net.zone เป็นไฟล์ฐานข้อมูลโฮสต์ของโดเมน sornlinux.net ดังรูปที่ 31

·        16.129.202.in-addr-arpa.zone เป็นไฟล์ฐานข้อมูลแอดเดรสผกผันของ 202.129.16 ดังรูปที่ 32

## named.conf - configuration for bind

#

# Generated automatically by redhat-config-bind, alchemist et al.

# Any changes not supported by redhat-config-bind should be put

# in /etc/named.custom

#

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

include "/etc/named.custom";

include "/etc/rndc.key";

zone  "0.0.127.in-addr.arpa" {

type master;

file  "0.0.127.in-addr.arpa.zone";

};

zone  "16.129.202.in-addr.arpa" {

type master;

file  "16.129.202.in-addr.arpa.zone";

};

zone  "localhost" {

type master;

file  "localhost.zone";

};

zone  "sornlinux.net" {

type master;

file  "sornlinux.net.zone";

};

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 25 ไฟล์ /etc/named.conf

 

รูปที่ 26 ไฟล์ในตำแหน่ง /var/named

$TTL 86400

@             IN            SOA        @  root.localhost (

                                                1 ; serial

                                                28800 ; refresh

                                                7200 ; retry

                                                604800 ; expire  

                                                86400 ; ttl

                                                )

 

                IN            NS          localhost.

 

@             IN            A              127.0.0.1

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 27 ไฟล์ localhost.zone

 

$TTL 86400

@             IN            SOA        localhost.              root.localhost (

                                                1 ; serial

                                                28800 ; refresh

                                                7200 ; retry

                                                604800 ; expire  

                                                86400 ; ttk

                                                )

 

@             IN            NS          localhost.

1              IN            PTR        localhost.

 
 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 28 ไฟล์ 0.0.127.in-addr.arpa.zone

 

;       This file holds the information on root name servers needed to

;       initialize cache of Internet domain name servers

;       (e.g. reference this file in the "cache  .  <file>"

;       configuration file of BIND domain name servers).

;

;       This file is made available by InterNIC

;       under anonymous FTP as

;           file                /domain/named.cache

;           on server           FTP.INTERNIC.NET

;

;       last update:    Nov 5, 2002

;       related version of root zone:   2002110501

;

;

; formerly NS.INTERNIC.NET

;

.                        3600000  IN  NS    A.ROOT-SERVERS.NET.

A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4

;

; formerly NS1.ISI.EDU

;

.                        3600000      NS    B.ROOT-SERVERS.NET.

B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107

;

; formerly C.PSI.NET

;

.                        3600000      NS    C.ROOT-SERVERS.NET.

C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12

;

; formerly TERP.UMD.EDU

;

.                        3600000      NS    D.ROOT-SERVERS.NET.

D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90

;

; formerly NS.NASA.GOV

;

.                        3600000      NS    E.ROOT-SERVERS.NET.

E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10

;

; formerly NS.ISC.ORG

;

.                        3600000      NS    F.ROOT-SERVERS.NET.

F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241

;

; formerly NS.NIC.DDN.MIL

;

.                        3600000      NS    G.ROOT-SERVERS.NET.

G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4

;

; formerly AOS.ARL.ARMY.MIL

;

.                        3600000      NS    H.ROOT-SERVERS.NET.

H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53

;

; formerly NIC.NORDU.NET

;

.                        3600000      NS    I.ROOT-SERVERS.NET.

I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17

;

; operated by VeriSign, Inc.

;

.                        3600000      NS    J.ROOT-SERVERS.NET.

J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30

;

; housed in LINX, operated by RIPE NCC

;

.                        3600000      NS    K.ROOT-SERVERS.NET.

K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129

;

; operated by IANA

;

.                        3600000      NS    L.ROOT-SERVERS.NET.

L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12

;

; housed in Japan, operated by WIDE

;

.                        3600000      NS    M.ROOT-SERVERS.NET.

M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33

; End of File

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 29 ไฟล์ name.ca

$TTL       86400

@       IN      SOA     localhost. root.localhost.  (

                                      1997022700 ; Serial

                                      28800      ; Refresh

                                      14400      ; Retry

                                      3600000    ; Expire

                                      86400 )    ; Minimum

              IN      NS      localhost.

 

1       IN      PTR     localhost.

 
 

 

 

 

 

 

 

 

 

 

 


รูปที่ 30 ไฟล์ name.local

 

$TTL 86400

@             IN            SOA        ns1.sornlinux.net.  root.localhost (

                                                8 ; serial

                                                28800 ; refresh

                                                7200 ; retry

                                                604800 ; expire  

                                                86400 ; ttl

                                                )

 

                IN            NS          ns1.sornlinux.net.

                IN            NS          ns2.sornlinux.net.

 

@             IN            MX          10           mail2

@             IN            MX          5              mail1

 

ns1         IN            A              202.129.16.18

ns2         IN            A              202.129.16.19

www       IN            A              202.129.16.20

mail1      IN            A              202.129.16.21

mail2      IN            A              202.129.16.22

@             IN            A              202.129.16.20

 

mail        IN            CNAME  mail1

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 31 sornlinux.net.zone

 

 

 

 

 

 

 

รูปที่ 31 ไฟล์ sornlinux.net.zone

 

$TTL 86400

@             IN            SOA        ns1.sornlinux.net.                root.localhost (

14 ; serial

28800 ; refresh

7200 ; retry

604800 ; expire

86400 ; ttk

)

 

@             IN            NS          ns1.sornlinux.net.

@             IN            NS          ns2.sornlinux.net.

 

18           IN            PTR        ns1.

19           IN            PTR        ns2.

20           IN            PTR        www.

21           IN            PTR        mail1.

22           IN            PTR        mail2.

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 32 ไฟล์16.129.202.in-addr-arpa.zone

 

การเซ็ต Slave Zone

         เมื่อ Master Name Server ไม่สามารถให้บริการได้  เครื่องที่เป็น Slave Name Server ก็ต้องทำงานทดแทน ดังที่ได้กล่าวมาแล้วว่า การทำงานของ Slave Name Server จะมีการสำเนาข้อมูลมาจาก Master Name Server ด้วยการถ่ายโอนผ่านเครือข่าย ฉะนั้นการเซ็ต Slave Zone ก็จะมีขั้นตอนที่ไม่มาก  แค่เรากำหนดค่าเริ่มต้นที่จำเป็นให้กับโปรแกรม Domain Name Service แล้ว โปรแกรมก็จะไปสำเนาข้อมูลต่าง ๆ มาจาก Master Name Server เองทำให้ไม่ต้องเสียเวลาเพิ่มโฮสต์ต่าง ๆ

         การเซ็ตก็ให้ไปที่เครื่อง Slave Name Server ตามที่ได้กำหนดในตารางที่ 1 ซึ่งก็คือคือเครื่อง ns2.sornlinux.net การเซ็ตก็เช่นเดียวกับที่กล่าวมาคือให้คลิ๊กที่เมนู System Settings--->Server Settings--->Domain Name Service ก็จะได้หน้าต่างดังรูปที่ 33 จากนั้นให้คลิ๊กปุ่ม New แล้วให้เลือก Slave zone และป้อนชื่อ Domain name ซึ่งในที่นี้ก็คือ sornlinux.net ดังรูปที่ 34

รูปที่ 33

รูปที่ 34

         จากรูปที่ 34 เมื่อคลิ๊กปุ่ม OK ก็จะได้หน้าต่างดังรูปที่ 35 ให้ทำการป้อน IP Address ของเครื่องที่เป็น Master ซึ่งจากตารางที่ 1 ก็คือ 202.129.16.18 แล้วให้คลิ๊กปุ่ม Add และจะเห็นค่า IP Address ที่เราป้อนเข้าไปอยู่ในช่องของ Masters List จากนั้นก็ให้คลิ๊กปุ่ม OK ก็จะกลับไปสู่หน้าต่างเดิม (Domain Name Service) ดังรูปที่ 36 แต่จะมีรายการที่เป็น Slave Zone เป็นรูปสามห่วงอยู่ข้างหน้า คือ sornlinux.net เพิ่มเข้ามา จากนั้นให้เลือกเมนู File-->Save เพื่อบันทึกข้อมูลซึ่งในช่วงนี้เองที่โปรแกรมจะติดต่อไปยังเครื่องที่เป็น Master แล้วทำการสำเนาข้อมูลมาไว้ที่เครื่องที่เป็น Slave

 

รูปที่ 35

รูปที่ 36

         เราสามารถพิสูจน์ได้ว่ามีการสำเนาข้อมูลมาจากเครื่อง Master แล้วหรือยังด้วยการไปดูข้อมูลในไฟล์ /etc/named.conf ว่ามีข้อความที่เป็นของโซน sornlinux.net เพิ่มเข้ามาแล้วหรือยัง ซึ่งในที่นี้ถ้าเราป้อนข้อมูลไม่ผิดพลาดและระบบเครือข่ายไม่มีปัญหา  ก็จะมีข้อความที่เป็นของโซน sornlinux.net แทรกเข้ามาดังรูปที่ 37  โดยข้อมูลจะเป็นชื่อโซนและบอกชนิดของโซนว่าเป็น Slave และเครื่องที่เป็น Master มี IP Address เป็น 202.129.16.18 ซึ่งก็ตรงตามที่เราได้เซ็ตมา  และยังบอกด้วยว่าชื่อไฟล์ที่ใช้เก็บข้อมูลชื่ออะไร ซึ่งในที่นี้คือ sornlinux.net.zone ซึ่งไฟล์นี้จะอยู่ที่ /var/named/sornlinux.net/zone ซึ่งเมื่อเปิดไฟล์ดูจะเป็นดังรูปที่ 38

zone "sornlinux.net" {

                type slave;

                file "sornlinux.net.zone";

                masters {

                                 202.129.16.18;

                                };

};

 

 
 

 

 

 

 

 

 

 


        

รูปที่ 37

 

$ORIGIN .

$TTL 86400          ; 1 day

sornlinux.net                         IN SOA   ns1.sornlinux.net. root.localhost.sornlinux.net. (

                                                                8          ; serial

                                                                28800      ; refresh (8 hours)

                                                                7200       ; retry (2 hours)

                                                                604800     ; expire (1 week)

                                                                86400      ; minimum (1 day)

                                                                )

                                                NS          ns1.sornlinux.net.

                                                NS          ns2.sornlinux.net.

                                                A              202.129.16.20

                                                MX          5 mail1.sornlinux.net.

                                                MX          10 mail2.sornlinux.net.

$ORIGIN sornlinux.net.

mail                                        CNAME  mail1

mail1                                      A              202.129.16.21

mail2                                      A              202.129.16.22

ns1                                         A              202.129.16.18

ns2                                         A              202.129.16.19

www                                       A              202.129.16.20

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


รูปที่ 38

 

         ซึ่งจะเห็นว่าข้อมูลในรูปที่ 38 จะเหมือนกับข้อมูลในเครื่อง Master เกือบทุกประการ  ที่ต่างกันก็จะมีคำว่า $ORIGIN เพิ่มเข้ามาก็เพราะเครื่องนี้เป็น Slave นั่นเอง และถ้าใช้คำสั่ง host เพื่อตรวจสอบการทำงานของ name server (อย่าลืมเซ็ต dns ที่ network ให้ใช้ dns ในเครื่องของตัวเอง) ก็จะได้ดังรูปที่ 39 ซึ่งจะเห็นว่าได้ผลลัพท์เหมือนกันกับบนเครื่องที่เป็น Master

 

รูปที่ 39