Load Balancing Mikrotik แบบ PCC ตอนที่ 2

Singharat Kanjanasopon
5 min readJul 8, 2019

--

Load Balancing แบบ PCC

วิธีการของ PCC คือมันจะไปดักจับ Connection ที่วิ่งผ่าน Mikrotik เราสามารถเข้าไปดูที่ Firewall -> Connections มันจะบอกว่า Src.address:port ไป Dst.address:port ออกทางไหน

สมมุติว่ามี ISP 2 เส้น คนที่ 1 เข้ามาออกเส้น 1 คนที่ 2 เข้ามาออกเส้นที่ 2 คนที่ 3 เข้ามาออกเส้นที่ 1 การทำงานประมาณนี้ มันจะนับ 1 2 1 2 ไปเรื่อยๆ (อันนี้สมมุติว่ามี ISP เพียง 2 เจ้านะ ถ้ามี 3 เจ้ามันก็จะนับ 1 2 3 ไปเรื่อยๆ)

หน้าตา Connection จะประมาณนี้ จะบอกว่า Src.address : Port ไป dst.address : port ยังไง วิธีการแบบ PCC จะเข้ามาดักจับในนี้แล้วทำการ Mark Routing กำหนดทางออกไป

ทีนี้เราสามารถกำหนดได้ว่าเราต้องการให้แยกการนับ 1 2 1 2 ยังไงโดยกำหนดที่
Per Connection Classifier จะมีให้เราเลือก หลายรูปแบบตามรูป ผมจะอธิบายการทำงานสัก 4 รูปแบบ นะครับ (ให้เราสังเกตุที่ Connection Mark นะครับว่ามันจะ Mark ออก Wan ไหน)

  1. Src. Address โดยดูที่ ไอพีต้นทางเป็นหลัก
    จากรูปข้างล่างจะเห็นได้ว่า
    192.168.100.254 ออกเส้นที่ wan1_conn ตลอด
    192.168.100.200 ออกเส้นที่ wan2_conn ตลอด

2. Dst Address โดยดูที่ ไอพีปลายทางเป็นหลัก
จากรูปจะเห็นได้ว่า ไม่ว่า IP:192.168.100.254 และ 192.168.100.200 ไปปลายทาง IP:157.240.10.35 ก็จะออกขา wan2_conn ตลอด

3. Both Address จะดูต้นทางไปปลายทางไหนแล้วจะจำเอาไว้ แล้วก็จะวิ่งเส้นเดิมตลอด (วิธีนี้คนน่าจะใช้งานกันมากที่สุด)
192.168.100.254 ไป 157.240.10.35 ออกเส้นที่ wan1_conn ตลอด
192.168.100.200 ไป 157.240.10.35 ออกเส้นที่ wan2_conn ตลอด
192.168.100.200 ไป 157.240.10.35 ออกเส้นที่ wan2_conn ตลอด

4. Both address and Port : จะดูทั้ง Address และ Port มีโอกาสเป็นไปได้ว่า 1 IP ปลายทางจะออกได้ทั้ว 2 Wan แล้วจะมีปัญหาเรื่องเกี่ยวกับเว็บธนาคารเพราะว่า Connection แรก อาจจะออก ISP 1 Connection สอง อาจจะออก ISP 2 ทำให้เว็บธนาคารตรวจจับว่าไม่ปลอดภัย (Speedtest เน็ตจะรวมกัน)
จากรูป 1 IP ต้นทาง ไป 1 IP ปลายทางดันวิ่งทั้ง wan1_conn และ wan2_conn

ต่อไปผมจะลองสาธิตการ Config ให้ดูเลยนะครับ ผมจะทำแบบ Src address . ซึ่งจะมองเห็นได้ชัดเจน
อ้างอิงจาก : https://wiki.mikrotik.com/wiki/Manual:PCC (แต่เขาจะทำเป็น Both address)

โจทย์
เรามี ISP เข้ามา 2 เจ้า รับเป็น PPPOE 1 และ PPPOE 2
เราจะทำ PCC แบบ Src.address ให้วิ่งออกขา ISP ทั้งสองขาเพราะจะมองออกได้ง่ายหน่อย แต่ถ้าใช้จริงให้ใช้เป็น Both address จะดีกว่า

ขั้นตอนที่ 1 ไปที่ IP->Firewall-> Mangle และทำการ +
ทำการ Mark ขา PPPOE 1 และ PPPOE 2 เพื่อให้เข้ามาขา PPPOE ไหน ออกขา PPPOE นั่น (ทำไมเราต้องทำที่ขา Wan ด้วย ทำไมเราไม่ทำเฉพาะที่ขา Lan ก็เพราะจะได้กำหนดเส้นทางที่ชัดเจนให้มันเลยเพื่อประสิทธิภาพในการทำงานที่ดี)

ของขา PPPOE 1
ของขา PPPOE 2

ขั่นตอนที่ 2 ไปที่ IP->Firewall-> Mangle และทำการ +
จะเป็นการทำ PCC เพื่อ Mark Connection ขา LAN ให้ออกขาไหน ซึ่งโจทย์เรามี 2 ขาซึ่งมีความเร็วเท่ากัน จะทำการ Mark แค่ 2 อัน เป็น 2/0 และ 2/1 เดียวผมจะอธิบายอีกทีว่าทำไมต้องเป็น 2/0 และ 2/1

2.1 Mark Connection ที่ 2/0 ออกทาง wan1_Con

2.2 Mark Connection ที่ 2/1 ออกทาง Wan2_Conn

ขั่นตอนที่ 3 ไปที่ IP->Firewall-> Mangle และทำการ +
เมื่อทำการ Mark Connection ทั้งขา Wan และขา Lan แล้วต่อไปต้องทำการ Mark ว่าจะให้แต่ละ Connection ไป Route ออกขาไหน โดยต้องทำการ Mark Routing ต่อ

3.1 Mark Routing ของขา Lan ที่ Mark connection ว่าเป็น wan1_conn ให้ไปออก to_wan1

3.2 Mark Routing ของขา Lan ที่ Mark connection ว่าเป็น wan2_conn ให้ไปออก to_wan2

3.3 Mark Routing ของขา Output ที่ Mark connection ว่าเป็น wan1_conn ให้ไปออก to_wan1

3.4 Mark Routing ของขา Output ที่ Mark connection ว่าเป็น wan2_conn ให้ไปออก to_wan2

ถ้าเราทำการ + Firewall ถูกทั้งหมดจะได้ดังภาพนี้

ขั่นตอนที่ 4
เมื่อเราทำการ Mark Routing เรียบร้อยแล้ว เราต้องเข้าไปจัดการ Route ต่อที่
IP->Route
4.1 ทำการ Route ขา ที่ทำการ Mark มาจาก to_wan1 ออกทาง PPPOE-1

4.2 ทำการ Route ขา ที่ทำการ Mark มาจาก to_wan2 ออกทาง PPPOE-2

4.3 สมมุติว่าขา PPPOEขาใดขาหนึ่งมีปัญหาเราต้องทำการสร้าง Route สำรองไว้

เมื่อ + เรียบร้อยทั้งหมดจะได้ตามภาพ

ผมจะลองสาธิตว่า PPPOE ขา 1 มีปัญหามันจะไปวิ่งเส้นที่ 2 แทน

ทำแค่นี้ก็ถือว่าได้ตั้งค่า Config เสร็จเรียบร้อยแล้ว

ทดสอบ

เราสามารถเข้าไปเช็คว่าตอนนี้ IP แต่ละเครื่องโดน Mark ออกขา Wan(PPPOE) ไหน ที่ IP-> Connection

จะเห็นได้ว่า
192.168.100.254 โดนบังคับให้ออกทางขา Wan1_conn ตลอด
192.168.100.200 โดนบังคับให้ออกทางขา Wan2_conn ตลอด

ผมจะลอง Test Speed แต่ละเครื่องแล้วจะดูว่าวิ่งออกทาง PPPOE ไหน
PC 1 Speedtest จะเห็นได้ว่า Interface PPPOE1 ขา Rx จะวิ่งขึ้นสูงถึง 5Mbps

PC 2 Speedtest จะเห็นได้ว่า Interface PPPOE2 ขา Rx จะวิ่งขึ้นสูงถึง 5Mbps

จากกราฟจะเห็นได้ว่าจะทำงานทั้ง 2 Interface ถือว่าการทำ LoadBalanceสำเร็จ

โหลดสคริปไปดูได้ครับ https://drive.google.com/file/d/1RdZDDeKyOlzyRlthL-N1v_vbqYnO8ZSG/view?usp=sharing

--

--

Singharat Kanjanasopon
Singharat Kanjanasopon

Written by Singharat Kanjanasopon

Certificate: Cisco: CCNA // CompTIA: Security+, Pentest+ // Microtik: MTCNA, MTCTCE, MTCSE, MTCRE //

Responses (2)