วันอาทิตย์ที่ 11 กรกฎาคม พ.ศ. 2553

เมื่อ "ปลาหมึก" ปลุกไม่ตื่น

"ปลาหมึก" ในที่นี้ไม่ใช่เจ้า Paul ตามกระแสบอลโลกที่ทำเซียนหน้าแตกกันหรอกครับ แต่มันคือ Squid ซึ่งเป็นซอฟต์แวร์สำหรับการใช้งานเป็น Proxy สำหรับการเชื่อมต่ออินเตอร์เน็ตต่างหากครับ Squid จัดได้ว่าเป็นซอฟต์แวร์ Open Source ที่ใช้งานกันอย่างแพร่หลายได้รับความนิยมมากเนื่องจากทำงานได้ทั้งบน Windows และ Linux โดยเฉพาะในองค์กรต่างๆ ที่มีผู้ใช้งานอินเตอร์เน็ตจำนวนมากในระดับหลักร้อยจนถึงหลักพัน

สำหรับในบทความนี้เราจะมาพูดถึงว่าทำไม Squid ถึง Start ไม่ขึ้น ซึ่งเป็นสิ่งที่หลอนมากสำหรับ Admin มือใหม่ที่เริ่มดูแล Squid บางคนถึงกลับไม่กล้าที่จะ Re-start ตัว server กันเลยทีเดียว ก่อนที่เราจะมาดูว่าทำไม Squid ถึง Start ไม่ขึ้นเราต้องทำความเข้าใจกับการทำงานของอินเตร์เน็ตกันก่อนครับ

เมื่อเราเริ่มต้นใช้งานอินเตอร์เน็ตบน Browser เราจะทำการพิมพ์ URL ที่ต้องการจะดูเข้าไป แต่ตัว Browser มันไม่ได้ใช้งาน URL นี้ตรงๆ หรอกครับ ในกรณีที่เราไม่ได้ใช้งาน Proxy ตัว Browser จะทำการนำ URL ที่เราพิมพ์ไปหา IP Address สำหรับส่งข้อมูลไปยังปลายทาง ซึ่งกระบวนการในการค้นหา IP Address จาก URL ที่มนุษย์เข้าใจนี่ใช้บริการที่เรียกว่า Domain Name System (DNS) ซึ่งที่เครื่องคอมพิวเตอร์ของเราจะต้องเปิดใช้งานบริการ DNS client นี้ครับ ดังนั้นในองค์กรก็ต้องมี DNS Server ที่ทำงานได้ คือหา IP ให้กับ Browser ครับ ซึ่งความแตกต่างระหว่างการใช้และไม่ใช้ Proxy ก็คือในกรณีที่ใช้ Proxy ตัว Browser จะทำการส่ง URL ให้กับ Proxy และตัว Proxy ก็จะทำหน้าที่ในการเรียกใช้บริการ DNS เอง ส่วนกรณีที่เราไม่ได้ใช้ Proxy ตัว Browser จะทำหน้าที่ในการเรียกใช้บริการ DNS เอง

ซึงสาเหตุที่พบส่วนใหญ่ที่ทำให้ Squid ของเรา start ไม่ขึ้นในกรณีที่เราเขียน Command ใน config file ของ Squid ถูกต้องแล้วก็คือปัญหาของ DNS นี่แหละครับ โดยใน Config file ของ Squid จะมีคำสั่งที่ให้ทำการตรวจสอบว่าสามารถใช้บริการ DNS ได้ถูกต้องหรือไม่ ถ้าการตรวจสอบไม่ผ่านตัว Squid ก็จะไม่ทำงานต่อครับ

ทีนี้จุดบอดที่จะเกิดขึ้นคือ Domain ที่เราใช้ตรวจสอบอาจจะไม่เสถียรครับ คืออาจจะตายไปพอดีกับตอนที่เรา Start ตัว Service ของ Squid ทางที่ดีให้ระบุ Domain ที่เราคิดว่ามันไม่ล่มแน่ครับ เช่น http://www.google.com/ หรือ http://www.microsoft.com/ ครับ หรือไม่ก็อาจจะเกิดขึ้นเนื่องจาก Link อินเตอร์เน็ตของเราไม่เสถียรก็ได้ครับ อันนี้ต้องตรวจสอบดีๆ

การตรวจสอบ Link ก็ใช้งาน ping นี่แหละครับ ส่วนการตรวจสอบ DNS ก็ใช้ nslookup ครับ ใช้ได้ทั้งบน Windows และ Linux ครับ ถ้า ping แล้วไม่มีการตอบกลับแสดงว่า Link มีปัญหาหก็ต้องเริ่มจากการ ping ตัว Gateway ของเราแล้วค่อยๆ ไล่ขึ้นไปครับ ในส่วนของ DNS ในตัว Squid เราจะสามารถระบุตัว Name Server ได้ก็ต้องตรวจสอบว่ามันยังให้บริการอยู่หรือไม่โดยใช้ nslookup ซึ่งสามารถใช้ Command คือ Server แล้วตามด้วย IP ของ DNS Server ที่ต้องการใช้บริการครับ ตัว Default ก็คือตัวที่เรากำหนดไว้ครับ หลังจากนั้นก็พิมพ์ URL ที่ต้องการตรวจสอบเข้าไปเช่น http://www.google.com/ ซึ่งใช้เครื่องมือแค่นี้ก็เพียงพอที่จะปลุก Squid ให้ลุกขึ้นมารับใช้เราได้แล้วล่ะครับ

จริงๆ แล้วในกรณีที่ service ต่างๆ มีปัญหามันจะบันทึกไว้ใน Log File ครับลองเปิดดูแล้วเราก็จะเห็นสาเหตุของมันครับ โดยใน Linux ตัว log จะอยู่ที่ /var ครับ ลองดูครับแล้วจะรู้ว่า Squid ดูแลไม่ยากหรอกครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น