dns

DNS NSS improvement กับ ปัญหาของผู้ใช้ ADSL ประเทศไทย

การที่เป็นผู้ใช้ Debian GNU/Linux - unstable (sid) ซึ่งมักจะมีอะไรใหม่ ๆ เข้ามาให้ทดสอบเป็นประจำ ซึ่งในคราวนี้ ก็เกิดขึ้นกับ glibc (libc6) ซึ่งมีการปรับรุ่นมาใช้ 2.9 ซึ่งมีอะไรต่าง ๆ ปรับปรุงให้ดีขึ้น ซึ่ง glibc เองเป็น library ที่มีหลาย ๆ ชุดโปรแกรมเรียกใช้งาน ทำให้การเปลี่ยนแปลงในบางเรื่อง ส่งผลกระทบกับผู้ใช้เป็นวงกว้างเช่นกัน ครั้งนี้ เจอกับตัวเอง และเพื่อน ๆ ที่ใช้งาน Debian/Ubuntu ที่มีการใช้ glibc รุ่นดังกล่าว คือ อาการที่เกิดกับ DNS Lookup ที่ปกติ เราจะทดสอบด้วยคำสั่ง nslookup หรือ host ซึ่งกรณีนี้ เราจะได้รับการตอบรับเหมือนปกติดี แต่ปัญหาอยู่ตอนที่จะเข้าใช้งาน Web หรือ FTP หรือ Services อื่น ๆ ที่เรียกใช้โดยชื่อ domain ซึ่งอาการคือ จะเข้าได้บ้าง ไม่ได้บ้าง

ทำ DNS proxy ด้วย pdnsd

ในการเชื่อมต่อ LAN เข้ากับอินเทอร์เน็ต นอกจากจะมี เกตเวย์ แล้ว ก็อาจจะตั้ง DNS server ไว้ใช้ในเครือข่ายด้วย เพื่อลดปริมาณการ query ออกข้างนอก ซึ่งทางเลือกก็มีหลายทาง เช่น ใช้ bind หรือ dnsmasq โดย bind นั้นเป็น DNS server แบบเต็มตัว ส่วน dnsmasq เป็น caching DNS อย่างเดียว แต่บทความนี้จะเสนออีกทางเลือกหนึ่ง คือ pdnsd

pdnsd เป็น caching DNS เหมือน dnsmasq แต่ที่ต่างคือ มันจะเก็บแคชลงดิสก์ด้วย ในลักษณะเดียวกับที่ squid ทำกับ HTTP ทำให้ในระบบที่ไม่ได้เปิดเซิร์ฟเวอร์แบบต่อเนื่อง 24 ชั่วโมง ยังสามารถใช้แคชข้ามวันได้ รวมทั้งสามารถใช้ DNS จากแคชไปพลางได้ในวันที่ DNS ของ ISP มีปัญหาได้ด้วย (ซึ่งเจอบ่อยสำหรับ ISP บ้านเรา ผมเคยแก้ปัญหาด้วยการ hard code IP ต่าง ๆ ที่เข้าบ่อยเก็บไว้ใน /etc/hosts แต่ไม่ต้องแล้ว ถ้าใช้ pdnsd)

ติดตั้งกันเลย

ลองติดตั้ง DNS แบบเปลี่ยนค่าได้

จะทดลองทำ DNS แบบยอมให้เปลี่ยนค่าไอพีได้ ขออนุญาตเริ่มใหม่ เพื่อให้บทความจบในตัว

เริ่มต้นด้วยการติดตั้ง bind9 ใหม่

# aptitude remove --purge bind9 dnsutils
# rm -rf /etc/bind
# aptitude install bind9 dnsutils

ติดตั้ง 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

Syndicate content
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้