จากกรณีที่คุณ fong ทำ Load Balance ด้วย Endian Firewall ไม่สำเร็จตามกระทู้นี้ http://linux.sothorn.org/node/452#comment-351 ผมช่วยตอบตรงนี้นะครับ
ตามภาพด้านบนที่ผมใช้งานอยู่นะครับ
เมื่อเพิ่ม uplink เรียบร้อยแล้ว ก็มาเพิ่ม routing ในไฟล์ /var/efw/inithooks/start.local
#!/bin/sh
route del default
ip route add default equalize scope global nexthop via 192.168.1.1 dev eth1 weight1 nexthop via 192.168.3.1 dev eth3 weight 1
exit 0
คำสั่งนี้จะทำงานเมื่อเรารีบูทเครื่องใหม่ แต่ไม่จำเป็นครับเราสามารถสั่งรันได้เลยโดยใช้คำสั่ง
# /var/efw/inithooks/start.local
หรือ
# cd /var/efw/inithooks/
# ./start.local
ปัญหาที่คุณ fong รันคำสั่งนี้แล้ว Load Balance ไม่ทำงาน ผมคาดเดาว่า คำสั่ง ip route add จนถึง weight 1 ไม่ได้อยู่ในบรรทัดเดียวกัน ถ้าจะตัดบรรทัดก็ต้องจบด้วยเครื่องหมาย \ แต่อย่างไรก็แล้วแต่ แก้ให้คำสั่งนี้ อยู่บรรทัดเดียวกันให้หมดจะดีกว่าครับ
ปัญหาจาก Load Balance ไม่ทำงานอีกกรณีหนึ่ง ผมได้เขียนไว้ที่
http://linux.sothorn.org/node/398
ตามตัวอย่างคิดว่าน่าจะพอช่วยได้นะครับ
ถ้ายังติดปัญหาก็สอบถามมาได้นะครับ ด้วยความยินดี
ลิงค์ที่เกี่ยวข้อง
- Routing for multiple uplinks/providers
- http://www.mail-archive.com/efw-user@lists.sourceforge.net/msg01174.html
- sothorn's blog
- อ่าน 23352 ครั้ง


โหลดบาลานซ์ได้จริง หรือหลอกกัน
ทดลองเซทเครื่องเกทเวย์ให้ทำงานแบบโหลดบาลานซ์ แล้วตั้ง เกตเวย์เครื่องลูกมาชี้มาที่เครื่องนี้แล้วพบว่า กราฟมีการขึ้น ๆ ลง ๆ แบบที่แสดงในตัวอย่าง แต่การทำงานดูแล้วไม่สม่ำเสมอ /
เลยไม่มั่นใจว่า ทำได้หรือไม่ได้ กันแน่ครับ.. จะมีวิธีการทดสอบได้อย่างไรครับ
2.ลองใช้ สปีดเทส ทดสอบความเร็วดูความเร็วก็เพิ่มบ้าง ในบางครั้ง ครับ
3. ถ้าเขาทำงานได้จริง ทำอย่างไรให้เขาทำงานสม่ำเสมอครับ
ขอบคุณครับ
EFW กับ squid
ถ้าไม่ใช้ EFW 2.3 เป็น gateway ระบบ load balance ที่ถูกเรียกผ่าน squid จะทำงานหรือไม่ครับ ?
ตอนนี้ให้เครื่องลูกเรียกใช้งาน อินเตอร์เนท ผ่าน proxy ของ efwแล้ว ระบบ load balance ไม่ทำงานครับ
EFW 2.3
EFW 2.3 ทำ Loadbalance แบบที่นำเสอนไปไม่ได้ครับ
weight 1 คิออะไรครับ
ผมมี Truehispeed 12/0.5 Mbps กับ True Wifi 2/0.5 Mbps (Down/Upload)
ลองทำทุกขั้นตอนทุกอย่างก็จะโชว์
nexthop via 192.168.0.1 dev eth1 weight 1 ADSl True 12/.5 Mpbs
nexthop via 192.168.1.1 dev eth2 weight 1 WiFi True 2/.5 Mpbs ( Auto login)
แต่เมื่อทดลอง Test Speed
พบว่าความเร็วยังคงได้เป็นเพียง Download 11 Mpbs Upload 0.4 Mbps (หากได้ IP Truehispeed ADSL) และบางครั้งก็จะได้ความเร็ว 1.8/0.350 Mpbs (หากได้ IP True wifi)
สิ่งที่สังเกตุ
- ขา Upload ยังได้เท่าเดิม คือไม่ใช่ความเร็ว 2 link รวมกัน
- ขา Download ก็ได้ความเร็วเท่ากับเ้ส้นใดเส้นหนึ่งที่ออกเนต
- เมื่อได้ IP ตัวที่ Speed ต่ำ ความเร็วในการ เช็ค Speed ก็ได้ตัวต่ำไป
สงสัย
- ผมควรใช้ Weight แบบไหนดีครับ ตัวเลขมาก กับตัวเลขน้อยต่างกันหรือไม่
แบบ A
nexthop via 192.168.0.1 dev eth1 weight 12 ADSl True 12/.5 Mpbs
nexthop via 192.168.1.1 dev eth2 weight 2 WiFi True 2/.5 Mpbs ( Auto login)
แบบ B
nexthop via 192.168.0.1 dev eth1 weight 6 ADSl True 12/.5 Mpbs
nexthop via 192.168.1.1 dev eth2 weight 1 WiFi True 2/.5 Mpbs ( Auto login)
แบบ I
nexthop via 192.168.0.1 dev eth1 weight 2 ADSl True 12/.5 Mpbs
nexthop via 192.168.1.1 dev eth2 weight 12 WiFi True 2/.5 Mpbs ( Auto login)
แบบ II
nexthop via 192.168.0.1 dev eth1 weight 1 ADSl True 12/.5 Mpbs
nexthop via 192.168.1.1 dev eth2 weight 6 WiFi True 2/.5 Mpbs ( Auto login)
ค่า Config
- ทำ BackUP link กันและกัน
อยากทราบ
- เพราะสาเหตุอะไรที่เช็ค Speed ได้ความเร็วเหมือน Link ใด link หนึ่งทำงาน
- เพราะสาเหตุอะไรบางครั้งได้ความเร็ว Net เส้นที่ Speed ต่ำ
ขอขอบคุณสำหรับคำแนะนำนะครับ
Noktualek@gmail.com
รายงานการใช้งาน Load Balane บน Endian 2.2 RC 3
ผมกลับมารันสคริปอีกครั้ง และลองดาวน์โหลด Log Server 1.0 ขนาด 473 MB
ใช้เวลาในการดาวน์โหลดทั้งหมด 33 นาที ครับ ถือว่าเยี่ยมยอม
ก่อนหน้านี้ ขนาดไฟล์ประมาณนี้จะใช้เวลา 50 - 1 ชั่วโมง ครับ
พอทำใจได้ครับสำหรับประสิทธิภาพของ Load Balance ที่ทำเอง(ฟรี)
ที่คุณ sothorn พูด ว่าคุณภาพอาจไม่สมบูรณ์ 100 % แต่ก็ยอมรับได้ครับ
ตอนนี้ผมเข้าไปรันสคริปให้ load balane รันทุก 15 นาที ตาม
http://linux.sothorn.org/node/398 แต่ขออนุญาตแก้ไขตรงที่
เข้าไปแก้ไขไฟล์ /etc/crontab
ด้วยคำสั่ง nana /etc/crontab แล้วเพิ่มสคริป
*/15 * * * * /var/efw/inithooks/start.local
ให้สคริป load balance รันทุก 15 นาที
ไว้ท้ายไฟล์ แล้วบันทึกไฟล์ด้วยคำสั่ง Ctrl+O กด enter 1 ครั้ง และออกด้วย Ctrl+X
เพราะในความเห็ฯที่คุณ sothorn เขียนไว้มันเป็น /ect/crontab (ตัว t และ e สลับกัน)
ครั้งแรกผมใช้วิธีการคัดลอกจากหน้าเว็บไป ปรากฏว่าไม่ทำงานครับ
พอมานั่งไล่ดู อ๋อ..มันผิดตรงนี้เอง ตอนนี้ทำงานดีครับ
(ที่เพิ่มเติมไว้ กลัวว่าจะมีคนอื่นมาใช้วิธีการแบบผม โดยไม่ได้ตรวจสอบ)
ขอบคุณ..คุณ sothorn ครับ
ขอบคุณครับ
ขอบคุณครับ ที่แจ้งคำผิด ได้แก้ไขแล้วครับ
ยินดีด้วยครับสำหรับ Load Balance แบบลูกทุ่ง :)
ต้องรีสตาร์ทสคริปอีกรอบ - และขออนุญาตนำบทความไปเผยแพร่
พอผมสั่งรันคำสั่ง ./start.lcal อีกครั้ง สคริปทำงานปกติครับ
แต่ไม่ทราบว่า สคริปมันจะรันได้นานเท่าไหร่ คงต้องรอดูไปก่อน ถ้าได้ผลยังไง จะมารายงานให้ทราบ
เรียนคุณ sothorn ครับ
เนื่องจากการทำ load balance บน endian นี่ ผมไม่ค่อยเห็นในบอร์ดอื่น ๆ มากนัก ถ้ามีก็จะเป็นแบบ ตอบสั้น ๆ ไม่ค่อยเข้าใจทั้งระบบ เหมื่อนที่คุณ sothorn เขียนไว้ มันเข้าใจได้ดีมาก เพื่อให้ความรู้เกี่ยวกับเรื่องนี้ ได้เผยแพร่ในวงกว้าง ผมจะขออนุญาตนำบทความของคุณ sothorn ไปเผยแพร่ในบอร์ดอื่นๆ ด้วย โดยจะใส่เครดิตไว้ทุกครั้ง ผมคิดว่ามันจะเป็นประโยชน์ในวงกว้างครับ
ยินดีครับ
ยินดีครับ แต่ขอทำความเข้าใจนะครับว่ามันไม่ใช่ระบบที่สมบูรณ์แบบ ยังมีปัญหาอยู่บ้าง ก็ต้องทำใจยอมรับอย่างปัญหาที่คุณ fong เจออยู่ แต่ถ้าได้อ่านตรงนี้ http://linux.sothorn.org/node/398 การแก้ปัญหา Script ไม่รัน ก็พอช่วยแก้ปัญหาได้ในระดับหนึ่งครับ
เพิ่มเติ่มนะครับ routing จะกลับมาเป็นแบบเดิมที่ไม่ใช่ Load Balance เมื่อ
1. เปลี่ยนแปลงคอนฟิกจากหน้าเวบ
2. Link เส้นใดเส้นหนึ่ง down ลง
3. เที่ยงคืน
ก็ลองดูจาก http://linux.sothorn.org/node/398 ก็พอช่วยได้ครับ
สอบถามปัญหาที่เกิดขึ้น(เพิ่มเติม)
หลังจากทำตามคำแนะนำสำเร็จ เมื่อวานนี้ และลองดาวน์โหลดดู พบว่า มันทำงานได้จริง กราฟต่าง ๆ ทำงานทั้งหมด สามารถทำงานได้ในช่วงเวลา บ่าย 14.00 - 20.00 น เท่านั้น
พอเช้าวันนี้เข้ามาเช็ดดูด้วย ip route ปรากฏว่าขึ้นอย่างนี้ครับ
root@efw-1225783320:~ # ip route
192.168.212.0/24 dev br0 proto kernel scope link src 192.168.212.1
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.2
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.2
default via 192.168.0.1 dev eth1
แสดงว่า สคริป load balance กลับไปเหมือนเดิม คือ ไม่ทำงาน ใช่หรือเปล่า
คุณ sothorn ลองช่วยวิเคราะห์ดูหน่อยว่า มันเกิดจากอะไรครับ
กำลังดีใจที่มีแบนวิดจ์เพิ่ม ไม่ทันไร...เสียดายจังเลยครับ
รบกวนคุณ sothorn อีกครั้งนะครับ
อ่านเรื่องนี้ครับ
อ่านเรื่องนี้ครับ http://linux.sothorn.org/node/398
ขอบคุณ..คุณ sothorn มากครับ
ผมทำตามที่คุณ sothorn แนะนำข้างบน โดยการก็อบปี้สคริปไปใส่ใน start.local ของผมเลย โดยเปลี่ยน gateway เป็น 192.168.0.1 และ 192.168.1.1 และ ใช้คำสั่ง ./start.local
แล้ว ใช้ ip route ดู ปรากฏว่าไม่สำเร็จ
(คำสั่งที่คุณ sothorn เขียนไว้)ดังี้
#!/bin/sh
route del default
ip route add default equalize scope global nexthop via 192.168.1.1 dev eth1 weight1 nexthop via 192.168.3.1 dev eth3 weight 1
exit 0
ลองอีกที พยายามให้คำสั่งมันอยู่บรรทัดเดียว แต่ปรากฏว่ามันยาวเกินไป มันก็ตกมาที่บรรทัดถัดไปตลอด ผมเลย
ลบคำสั่งบางคำออก เป็นดังนี้
#!/bin/sh
route del default
ip route add default equalize scope global nexthop via 192.168.0.1 dev eth1 nexthop via 192.168.1.1 dev eth3 weight 1
exit 0
(ทั้งหมดนี้ เขียนอยู่บรรทัดเดียวกันครับ)
และลอง ใช้คำสั่ง ./start.local ที่นี้ผลก็ปรากฏอย่างนี้
root@efw-1225783320:~ # ip route
192.168.212.0/24 dev br0 proto kernel scope link src 192.168.212.1
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.2
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.2
default equalize
nexthop via 192.168.0.1 dev eth1 weight 1
nexthop via 192.168.1.1 dev eth2 weight 1
แสดงว่า load balance ของผมทำงานแล้ว ใช่ไหมครับ
โอ้..พระเจ้าจอร์ท ขอบคุณ คุณ sothorn มากๆ ครับ
จะลองใช้งานดูครับ สักพักคงได้เข้ามารายงานผมว่าเป็นอย่างไร
วันนี้ผมรอคุณ sothorn ทั้งวัน กลัวว่าจะไม่มาเขียน และแล้วก็มาตามนัด ขอบคุณจริงๆ
ยินดีด้วย
ยินดีด้วยครับ
ดาวน์โหลดหนักๆ นั่งดูกราฟ Red และ Uplink ก็ได้คำตอบแล้วครับ :)
ว่า Load Balance แล้ว
หมายเหตุ เท่าที่ลองใช้ weight 1 แรกในคำสั่ง จะมีหรือไม่มีก็มีค่าเท่ากันครับ