ผมจะแยกไฟล์ 0nat และ 0route ไปไว้ใน /etc/ppp/ip-up.d/
เนื่องจากว่า ในกรณีที่มีการ up ของ interface ppp ไฟล์ที่อยู่ใน folder นี้จะถูกรันขึ้นมา
แต่จริง ๆ แล้ว ไฟล์ checklink.sh ก็คอยทำหน้าที่เช็คอยู่แล้วทุก ๆ 5 วินาที จะแยกหรือรวมกัน ก็แล้วแต่สะดวก
ในการเขียนสคิปนั้่น สิ่งสำคัญคือ ต้องมองถึงการใช้งานจริง วิฺธีการอาจจะไม่เหมือนกันในแต่ละท่าน
ผมยกตัวอย่างแนวคิดของผมนะครับ ในกรณี 4WAN , 2 WAN GAMES , 2 WAN NET
2 WAN GAMES ผมแบ่งดังนี้นะครับ
- WAN1 ให้เกมส์ค่าย Asiasoft (IP Bonus)
- WAN2 ให้เกมส์ค่าย TDE (iCafe Plus)
- WAN1 + WAN2 เกมส์ อื่น ๆ
2 WAN NETS ให้โหลดบาลานซ์กัน
- WAN3 + WAN4 NETS
ดังนั้น ในการ MARK เราจะต้อง MARK เป็น 4 Chain เป็นอย่างน้อย
- Chain Asiasoft Games = (AS_GAMES)
- Chain iCafe Plus Games = (ICAFE_GAMES)
- Chain Other Games = (OTHER_GAMES)
- Chain NET
ขั้นตอนการ MARK ก็ให้ MARK แบ่งตาม Service ให้ตรงกับ IP และ Port
ต่อไปขั้นตอนการสร้าง ROUTE TABLE
ก่อนอื่นก็ต้องสร้าง ROUTE TABLE ของ WAN ต่าง ๆ ตามปกติ
และสร้าง TABLES สำหรับโหลดบาลานซ์ 2WAN GAMES เช่นสร้างเป็น TABLE 250
และสร้าง TABLES สำหรับโหลดบาลานซ์ 2WAN NET เช่นสร้างเป็น TABLE 251
ขั้นตอนการสร้าง RULES
ก็กำหนดให้ Chain AS_GAMES วิ่ง ROUTE TABLE WAN1
กำหนดให้ Chain ICAFE_GAMES วิ่ง ROUTE TABLE WAN2
กำหนดให้ Chain OTHER_GAMES วิ่ง ROUTE TABLE 250
กำหนดให้ Chain NETS วิ่ง ROUTE TABLE 251
ขั้นตอนสุดท้าย การสร้าง Checklink Script
จะแบ่งกรณีได้เป็น 6 กรณี
1. เส้นเกมส์ ดาวน์ 1 เส้น ให้เกมส์เส้นที่ดาวน์ไปวิ่งเส้นเน็ต แล้วให้เน็ตวิ่ง 1 เส้น
2. เส้นเน็ต ดาวน์ 1 เส้น เกมส์วิ่ง 2 เส้นเหมือนเดิม เส้นเน็ตวิ่ง 1 เส้น
3. เส้นเกมส์ ดาวน์ 1 เส้น และ เส้นเวป ดาวน์ 1 เส้น ให้เกมส์ทั้งหมดวิ่งเส้นที่เหลือ ให้เวปทั้งหมดวิ่งเส้นที่เหลือ
4. เส้นเกมส์ ดาวน์ 2 เส้น ให้เกมส์ทั้งหมดวิ่ง 1 เส้น แล้วเน็ตวิ่ง 1 เส้น
5. เ้ส้นเน็ต ดาวน์ 2 เส้น ให้เกมส์ทั้งหมดวิ่ง 1 เส้น และเน็ตวิ่ง 1 เส้น
6. เน็ต 4 เส้น เหลือ เส้นเดียว ให้เกมส์และเวปวิ่งรวมเส้นเดียวกัน
นำกรณีเหล่านี้ ไปเขียนเป็น Script สำหรับเช็ค ROUTE TABLE เพื่อเปลี่ยนแปลง
ในไฟล์ชื่อ /etc/ppp/ip-up.d/0route
ลองนำไปคิดต่อดูครับ ไว้จะมาเขียนตัวอย่าง Script ให้ครับ