วิเคราะห์ประเด็น True แบบงู ๆ ปลา ๆ (ต่อ)

หลังจาก คราวที่แล้ว ได้พูดถึง DNS spoofing ไป และทิ้งท้ายเรื่อง Transparent Proxy/Cache ไว้

* ทำความเข้าใจ Transparent Proxy/Cache *
Proxy/Cache คือ ระบบทำหน้าที่ ในการเป็นตัวแทน (proxy) และเก็บข้อมูลที่ได้จากการร้องขอโดยผู้ใช้ (cache) เพื่อลดปริมาณการร้องขอข้อมูลไปยังต้นทาง (origin) ซึ่งในบางกรณี ก็ช่วยเพิ่มความเร็วในการเข้าถึงข้อมูลได้ดี ระบบเช่นนี้มีการใช้งานกันมาอย่างแพร่หลาย ทั้งในระดับโรงเรียน ระดับองค์กร หรือแม้แต่ในระดับ ISP

Transparent Proxy/Cache คือ กระบวนการที่ Proxy/Cache เข้ามาขวางทางเข้าทางออก ระหว่างผู้ใช้ และต้นทาง เสมือนไม่มีระบบนี้อยู่ระหว่างทาง (transparent) ระบบประเภทนี้ ถูกใช้กันอย่างแพร่หลาย เนื่องจากสะดวกในการบริหารจัดการ แต่ข้อเสียคือ ผู้ใช้เลือกไม่ได้ว่าจะไม่ขอใช้ระบบนี้ (ถ้าไม่ใช้ท่ายาก)

* ปัญหาที่เกิดจากระบบนี้ *
เนื่องจากระบบจะบังคับผู้ใช้ที่ต้องการใช้ service ที่ระบบสามารถเป็น proxy/cache ให้ได้ เช่น http (web) port 80 ดังนั้น ผู้ใช้ที่อยู่ในกลุ่มที่ถูกบังคับให้ใช้งาน ก็ต้องจำยอมใช้งานไป โดยปัญหาที่อาจจะเกิดกับความรู้สึกผู้ใช้งาน (Quality of Experience) ก็มีทั้งแง่บวก และแง่ลบ

+ แง่บวก
เมื่อข้อมูล ถูกเก็บไว้ในระบบ ซึ่งอยู่ใกล้ผู้ใช้อย่างมาก จึงส่งผลให้ความเร็วในการรับส่งข้อมูลจากระบบ ไปยังผู้ใช้ จะเร็วกว่าวิ่งไปยังต้นทางในแทบจะทุกกรณี ซึ่งมันเป็นจุดขายของระบบ Caching อยู่แล้ว

+ แง่ลบ
เนื่องจากข้อมูลในปัจจุบัน เปลี่ยนแปลงไปจากเมื่อหลายสิบปีก่อนอย่างมาก ข้อมูลที่เป็น dynamic content เพิ่มขึ้น ข้อมูลขนาดใหญ่อย่างเช่น video, os update, iso file ฯลฯ เข้ามามีบทบาท และผู้พัฒนา web ส่วนใหญ่ จะไม่สร้าง application มาเพื่อให้ทำงานร่วมกับ proxy/cache แบบดั้งเดิมได้ดีนัก ระบบ cache จึงพยายามไม่สนใจว่า web จะบอกว่าอะไร ตะบี้ตะบัน cache แบบไม่สน หน้าอินทร์หน้าพรหม ซึ่งระบบประเภทนี้ จะต้องมีการปรับค่า การหมดอายุลงของ object ซึ่งบางระบบก็มีการเช็คที่ดี และบางระบบก็ไม่มีการเช็คเลย

ผลที่ตามมาคือ หากระบบเคยเก็บข้อมูล ซึ่งอาจจะมีการแก้ไขแล้วทางฝั่งต้นทาง แต่ cache ยังไม่ทราบถึงการเปลี่ยนแปลงนั้น (ยังไม่หมดอายุ) ตัว cache ก็จะส่งข้อมูลเก่าให้ผู้ใช้ ซึ่งบางกรณีก็ไม่ส่งผลเสียหายอะไรมากมาย แต่บางกรณี อย่างเช่น ไฟล์ที่ต้องเอามาประกอบร่าง ผู้ใช้ได้ข้อมูล ที่ไม่สามารถมาปะติดปะต่อกันได้ ก็จะเกิดความรู้สึกหงุดหงิด ชัดเจน

และกรณีที่น่าเป็นห่วง เมื่อ cache เก็บ malware ไว้ และยังไม่หมดอายุ ก็จะส่งให้ผู้ใช้เรื่อย ๆ ถึงแม้ว่าทางต้นทางจะแก้ไขปัญหา malware แล้วก็ตาม

=== ทางเลี่ยง ===
ถ้าพบว่า ตัว Transparent Proxy/Cache คือ ต้นตอของปัญหา ทางออกระยะยาวคือ แจ้งทางผู้ดูแล cache เพื่อให้ตรวจสอบ และ clear cache หากเป็นไปได้ แต่ถ้าทำไม่ได้จริง ๆ ก็ต้องเลี่ยงไปใช้ ช่องทางอื่น ๆ ที่ไม่ถูกโยนเข้า Transparent service เช่น SSH Tunnel, VPN ฯลฯ

=== สรุป ===
Transparent Proxy/Cache มีทั้งข้อดี และข้อเสีย ถ้าปรับให้เหมาะสม ปัญหาก็จะน้อย ซึ่งบางคนก็มีคำถามว่า ทำไมต้องมี Transparent Proxy/Cache ด้วย คำตอบคือ ระบบนี้ เข้ามาช่วยแบ่งเบาภาระการลงทุนของผู้ให้บริการ ลองคิดง่าย ๆ ว่า ถ้าระบบนี้ สามารถช่วยประหยัดแบนด์วิธด์ได้ในระดับ 10 - 99% และถ้าตัดออกไป ผู้ให้บริการจะต้องลงทุนเพิ่มเท่าไร และจะให้มาคิด ราคาต่ำกว่าพัน หรือพัน สองพัน กับเราต่อไปได้ไหม นั่นหละครับ เหตุผลของการมีตัวตนอยู่ของ ระบบ Transparent Proxy/Cache
ลองนึกถึงราคา leaseline จะให้ลากมาใช้ที่บ้านก็กะไรอยู่ (มันแพงเติบเด้ครับ)