แสดงบทความที่มีป้ายกำกับ linux แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ linux แสดงบทความทั้งหมด

9 พฤศจิกายน 2554

วิธี Load Balance เน็ต 2สายใน Endian Firewall2.4 ด้วย bash shell script

ปัญหา จากวิธีเดิมที่เคยใช้ EFW 2.4.1 ด้วยการแก้ไขไฟล์ /var/efw/inithooks/start.local ข้อเสียของวิธีนี้คือ.. ถ้าเน็ตเส้นใดเส้นนึงหลุดเน็ตบางเครื่องจะใช้ไม่ได้

วิธีการเซ็ท load balance สำหรับ uplink แบบ PPPoE (router bridge mode) แบบง่ายๆ เร็วๆ
ไฟล์ /var/efw/inithooks/start.local
#!/bin/sh
route del default
ip route add default equalize nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1  
exit 0

แล้วตั้งเวลาใน etc/crontab ให้รัน start.local ทุก 15นาที
*/15 * * * * /var/efw/inithooks/start.local

จะได้ ip route ออกเน็ตสองเส้นทาง
default equalize 
        nexthop dev ppp0 weight 1
        nexthop dev ppp1 weight 1

ใช้เวลาแปปเดียวแต่เสียความสามารถในการ Backup/Failover ไป ส่วนอีกวิธีที่แน่นอนกว่า..

ทำ load balance ด้วย Linux Bash script 
ผมเปลี่ยนมาใช้วิธีนี้นานแล้วไม่เคยมีปัญหาอีกเลย

กรณีต่อแบบ PPPoE uplink: เซ็ท adsl router แบบ bridge mode ใช้ efw เป็นตัว connect
main uplink : eth0 -> ppp0
uplink1 : eth2 -> ppp1

*Notice* ในสคริปท์ต้องระบุ interface ที่ใช้ คือ eth0, eth2, ppp0, ppp1 ให้ตรงกับชื่อในเซอฟเวอร์จริง

1. สร้างไฟล์สคริปท์ใน /usr/share/balance.sh กำหนด Chmod 755 (-rwxr-xr-x)