ติดตั้ง DNS แบบง่าย
เอามาจาก ThaiLinuxCafe - debian : ติดตั้ง dns อย่างง่าย
เรื่องของ DNS (Domain Name Server) เป็นเรื่องหลักของการใช้งานอินเทอร์เน็ต เนื้อหาซับซ้อนและทำความเข้าใจยาก สำหรับในที่นี้ เราเอาแค่ติดตั้งพอใช้งานได้ โดยเราจะติดตั้งเครื่องเซิร์ฟเวอร์เพื่อทำหน้าที่เป็น DNS สำหรับใช้งานเครือข่ายภายใน
โครงร่างคือ
- เน็ตเวิร์กเราเป็น 192.168.1.0/24 มีโดเมนเป็น example.com
- เครื่องที่ทำหน้าที่ name server มีชื่อว่า server1.example.com ไอพีเป็น 192.168.1.1 โดยมีชื่อเสมือนคือ ns1.example.com
- มีเครื่องในวงเครื่องอื่น ๆ ดังนี้
- ns2 = 192.168.1.2
- client1 = 192.168.1.101
- client2 = 192.168.1.102
- client3 = 192.168.1.103
แพกเกจที่ทำหน้าที่ DNS ในเดเบียนชื่อ bind9 และแพกเกจที่เป็นโปรแกรมช่วยชื่อ dnsutils
งานปรับตั้งคือการสร้างไฟล์สำหรับให้ bind9 เรียกใช้ ดังนี้
- โซนไฟล์ ไว้สำหรับค้นข้อมูลจากชื่อเป็นไอพี
- รีเวิร์สไฟล์ ไว้สำหรับค้นข้อมูลย้อนกลับ คือจากไอพีเป็นชื่อ
- คอนฟิกไฟล์ สำหรับบอก bind9 ว่าเราจะติดตั้ง DNS ในแบบไหน และประกอบด้วยไฟล์ข้อมูลอะไรบ้าง
เริ่มด้วย
ติดตั้ง DNS และโปรแกรมช่วย
# aptitude install bind9 dnsutils
ไปที่ไดเรกทอรีของการปรับตั้ง
# cd /etc/bind
เริ่มสร้างโซนไฟล์ ให้ชื่อว่า example.com.zone มีเนื้อไฟล์ดังนี้
# vi example.com.zone
$TTL 86400 @ IN SOA server1.example.com. root.server1.example.com. ( 51 ; serial (d. adams) 3H ; refresh after 3 hours 15M ; retry after 15 minutes 1W ; expire after 7 days 1D ) ; minimum TTL (Time To Live) of 1 days @ IN NS ns1.example.com. ; primary NS @ IN NS ns2.example.com. ; secondary NS ns1 IN CNAME server1 ; append or edit host ip here server1 IN A 192.168.1.1 ns2 IN A 192.168.1.2 client1 IN A 192.168.1.101 client2 IN A 192.168.1.102 client3 IN A 192.168.1.103
สร้างรีเวิร์สไฟล์ ให้ชื่อว่า example.com.reverse มีเนื้อไฟล์ดังนี้
# vi example.com.reverse
$TTL 86400 @ IN SOA server1.example.com. root.server1.example.com. ( 51 ; serial (d. adams) 3H ; refresh after 3 hours 15M ; retry after 15 minutes 1W ; expire after 7 days 1D ) ; minimum TTL (Time To Live) of 1 days @ IN NS ns1.example.com. ; primary NS @ IN NS ns2.example.com. ; secondary NS ; append or edit host name here 1 IN PTR server1.example.com. 2 IN PTR ns2.example.com. 101 IN PTR client1.example.com. 102 IN PTR client2.example.com. 103 IN PTR client3.example.com.
สร้างคอนฟิกไฟล์สำหรับโซน example.com ให้ชื่อว่า example.com.conf มีเนื้อไฟล์ดังนี้
# vi example.com.conf
zone "example.com" IN { type master; file "/etc/bind/example.com.zone"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "/etc/bind/example.com.reverse"; allow-update { none; }; };
เปลี่ยนสิทธิ์ให้ bind เป็นเจ้าของไฟล์
# chown bind:bind example.com.*
บอกให้ bind9 เอาไฟล์ของเราไปใช้งาน โดยการเพิ่มลงในไฟล์ named.conf.local ดังนี้
# vi named.conf.local
... include "/etc/bind/example.com.conf";
เสร็จแล้วก็สั่งเริ่ม bind9 ใหม่
# /etc/init.d/bind9 restart
ถ้ามีข้อผิดพลาด ให้ดูที่ /var/log/syslog
ทดสอบโดย
# nslookup server1.example.com Server: 192.168.1.1 Address: 192.168.1.1#53 Name: server1.example.com Address: 192.168.1.1
ทดสอบย้อนกลับ
# nslookup 192.168.1.1 Server: 192.168.1.1 Address: 192.168.1.1#53 1.1.168.192.in-addr.arpa name = server1.example.com.
หมายเหตุ
- เลขซีเรียลตามตัวอย่างเป็น 51 แต่ส่วนใหญ่นิยมใช้วันที่ เช่น 2006030401 เป็นต้น
- ในเนื้อไฟล์ของโซนไฟล์และริเวิร์สไฟล์ เวลาพิมพ์ระวังอยาลืมเครื่องหมายจุด ท้ายชื่อโฮสต์
- สำหรับเครื่อง DNS ที่ทำหน้าที่เกตเวย์ออกอินเทอร์เน็ต พบว่าเมื่อแก้ไขไฟล์ /etc/resolv.conf ให้ชี้ไปที่ DNS ของไอเอสพี เครื่องเราจะทำหน้าที่เป็น slave โดยอัตโนมัติ
- ถ้าจะเพิ่มโดเมน และเป็นเน็ตเวิร์กคนละวง ก็ใช้วิธีเดียวกันได้ โดยสร้างโซนไฟล์ รีเวิร์สไฟล์ และคอนฟิกไฟล์สำหรับโดเมนที่เพิ่ม
- ถ้าเพิ่มโดเมน และเป็นเน็ตเวิร์กวงเดียวกัน เช่น หนึ่งไอพี มีหลายโดเมน ให้สร้างเฉพาะโซนไฟล์ ไม่ต้องสร้างรีเวิร์สไฟล์ ซึ่งก็จะทำให้เรียกดูชื่อย้อนจากไอพีไม่ได้
- ถ้าจะเพิ่มเน็ตเวิร์กเป็นสองวง โดยเป็นโดเมนเดียวกัน ให้ดูตัวอย่างที่ Debian Administration: Two-in-one DNS server with BIND9
เนื้อหาไม่ค่อยถูกตามหลักการนะครับ เพราะมันยาก ถ้าจะให้รู้เรื่องจริง ๆ ต้องเข้าใจระบบอินเทอร์เน็ตพอสมควร ในที่นี้เอาแค่พอใช้งานได้ครับ
อ้างอิงเพิ่มเติม
![]() |
ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้ |
Comments
Re: ติดตั้ง DNS แบบง่าย
on 10 October, 2007 - 14:00 Permalink
ถ้าผมมี ip จริง ผมสามารถทำให้เครื่องที่ได้ ip จริงตัวนี้เป็น dns สำหรับ domain อื่นได้หรือไม่ครับ
Re: ติดตั้ง DNS แบบง่าย
on 11 October, 2007 - 07:40 Permalink
ได้ครับ
Re: ติดตั้ง DNS แบบง่าย
on 2 June, 2008 - 14:52 Permalink
พอดี config bind9 แล้วมีปัญหาครับ คือผมมี server หนึ่งเครื่อง แล้วผมคอนฟิก หลายๆโดเมน ลงบนเครื่องเดียว สามารถทำได้ไม่มีปัญหามาติดตรงที่ reverse ครับ ผมสามารถสร้า ไฟล์ reverse หลายไฟล์ได้หรือเปล่าครับ พอผม set ให้ใช้ไฟล์ reverse มากกว่าหนึ่งไฟล์แล้วมันขึ้น error ครับ
Re: ติดตั้ง DNS แบบง่าย
on 2 June, 2008 - 19:14 Permalink
คิดว่าทำ reverse ได้แค่โดเมนเดียวครับ คงต้องเลือกเอาว่าจะทำที่โดเมนไหน
Re: ติดตั้ง DNS แบบง่าย
on 3 June, 2008 - 08:13 Permalink
เห็นตรงกันกับคุณ wd เช่นกันครับ
___
Neutron: Linux Addict!
Re: ติดตั้ง DNS แบบง่าย
on 3 June, 2008 - 09:51 Permalink
อือ แล้วอย่างนั้น ผมจะทำเมลล์ server ที่มีหลายโดเมน เมื่อผมทดสอบส่งเมลล์แล้วเข้า เป็น spam mail ทุกที มีวิธีแก้หรือเปล่าครับ ไปหาอ่านจากที่อื่นมา เขาบอกว่ามันเกี่ยวกับ reverse DNS และ SPF record ถ้าทำ reverse DNS ไม่ได้ ก็คงแย่ หรือว่าต้องติดต่อกับเจ้าของเมลล์นั้นๆ โดยตรงครับ
Re: ติดตั้ง DNS แบบง่าย
on 3 June, 2008 - 12:15 Permalink
ผมเดาว่าถ้าเป็นโฮสต์ที่มีไอพีไม่คงที่ เขาจะเหมาว่าเป็น spam ทั้งหมด
กรณีนี้คงไม่มีทางแก้ นอกจากจะอาศัยพึ่งบริการของ gmail
แต่ถ้าเป็นโฮสต์ที่มีไอพีคงที่นี่ ผมยังไม่มีประสบการณ์เหมือนกัน ว่าเขาตัดสินการเป็น spam อย่างไร
Re: ติดตั้ง DNS แบบง่าย
on 3 June, 2008 - 13:25 Permalink
ขอบคุณมากเลยครับ มีอีกหนึ่งคำถามครับ หวังว่าคงยังไม่เบื่อนะครับ มีวิธีตรวสอบหรือเปล่าครับว่า DNS ที่เขา config สามารถใช้งานได้แล้วหรือยัง
Re: ติดตั้ง DNS แบบง่าย
on 3 June, 2008 - 16:31 Permalink
ผมใช้คำสั่ง
nslookup
มีรูปแบบเป็นเช่น
สมมุติว่าเครื่อง name server ของเราชื่อ ourdns.example.com
บางครั้งหากทำหลายวงเป็น internal/external อาจต้องลองจากเครือข่ายข้างนอกครับ
Re: ติดตั้ง DNS แบบง่าย
on 16 September, 2008 - 11:57 Permalink
แล้ว ถ้ามี Mail server ด้วยจะกำหนดยังไงบ้างครับ