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 ซึ่งอาการคือ จะเข้าได้บ้าง ไม่ได้บ้าง

ทดสอบแล้วกับ ADSL ของ Mxxxxx และเพื่อน ๆ ที่ใช้ Txxx ก็แจ้งมาอาการเดียวกัน คือ ใช้งานไม่ค่อยจะปกติ

ตรวจสอบไปก็เจอ Blog http://udrepper.livejournal.com/20948.html ที่พูดถึงเรื่อง DNS NSS improvement มีบอกถึงอาการที่เกิดขึ้นบ่อย ๆ กับผู้ใช้ ต่างประเทศเขาเป็น Cable Modem บ้านเราก็เป็น ADSL ที่การ improve ในครั้งนี้ คือการทำ parallel lookup ซึ่งผลก็คือ ADSL Provider บ้านเรา ที่มักจะมีปัญหากับ DNS Server ที่ไม่ค่อยจะมีความน่าเชื่อถือ ที่บางกรณี ก็ตายแบบไม่กลับมานานพอสมควร แต่ไม่มีใครแจ้ง เพราะยังมี Backup DNS ที่ยังทำงานอยู่ แต่ผลคือ การทำ parallel lookup ไม่สามารถทำให้สำเร็จได้ จึงเกิดปัญหาขึ้น

วิธีแก้ปัญหา ตาม Blog ก็มีการแนะนำไว้ 3 วิธี คือ

  1. ติดตั้ง caching name server ซึ่งในที่นี้ที่ทดสอบแล้วคือ bind, หรือมีหลาย ๆ คนก็เคยใช้ตัวอื่น ๆ ไม่ว่าจะเป็น unbound, pdnsd วิธีนี้ จะต้องมีการกำหนด /etc/resolv.conf ให้มีเฉพาะ nameserver 127.0.0.1 เท่านั้น
  2. ติดตั้ง nscd ซึ่งเป็น Name Service Cache Daemon วิธีนี้ ผมไม่เคยทดสอบ แต่น่าจะพอช่วยได้
  3. กำหนดค่า single-request เข้าไปที่ /etc/resolv.conf วิธีนี้ จะบอกให้ glibc ทำการ lookup แบบ single request ซึ่งจากการทดสอบ ก็พอช่วยได้ แต่ไม่ค่อยสมบูรณ์เท่าไรนัก

โดยส่วนตัว ผมใช้วิธีที่ 1 คือ ทำ caching name server โดยใช้ bind9 (ตัวใหญ่หน่อย แต่ชัวร์ครับ) ส่วนคนที่ต้องการใช้งานแบบเบา ๆ ก็คงจะลองเลือกใช้ unbound ก็ได้ครับ

ตอนนี้ ก็ได้แต่หวังว่า จะมีทางออกที่สวยกว่านี้ มาจากทีม glibc developers ครับ เป็นกำลังใจให้ครับ :)

ปล. ล่าสุด libc6 2.9-11 ใน Debian (sid) ส่งผลให้ Epiphany Browser และ Iceweasel ไม่ทำงาน T_T ใครกำลังจะ Upgrade อาจจะต้องรอไว้ก่อนนะครับ มีคน File Bug ไปที่ Debian Bugs Tracking System แล้ว (Bug #527541) ก็คงต้องรอสักพักครับ

Comments

Update: bug เรื่อง Epiphany/Iceweasel แก้แล้วใน 2.9-12 ครับ รุ่น 2.9-11 เป็นรุ่นแรกที่ย้ายไปใช้ EGLIBC แทน mainstream glibc เลยมีอะไรขลุกขลักบ้าง

อิอิ ... กำลังจะเข้ามา Update พี่เทพแจ้งก่อนแล้ว :)
___
Neutron: Linux Addict!

สายไปแล้วคับ ผมอัพเดทไปแล้ว เสร็จ เน็ทเวิค หลุด แล้วคับ เศร้า

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