[EP.38] Configuring Link Aggregation (Bonding) using LACP and Balance-rr

Krittin Srithong
techblogclub
Published in
4 min readJun 13, 2023

--

แผนภาพ Scenario

Link Aggregation Control Protocol (LACP)

Link Aggregation Control Protocol (LACP) ตามมาตรฐาน IEEE 802.3ad ซึ่งเป็นการรวมเชื่อมต่อเครือข่ายที่ใช้ในเครือข่ายคอมพิวเตอร์ โดยเฉพาะในการเชื่อมต่ออุปกรณ์เครือข่ายระดับสูง เช่น สวิตซ์ (Switch) และเซิร์ฟเวอร์ (Server) ซึ่งต้องการประสิทธิภาพสูงและความเชื่อมต่อที่มั่นคงในเครือข่าย

LACP ใช้เทคนิคที่เรียกว่า Link Aggregation หรือที่เรียกกันอีกชื่อหนึ่งว่า EtherChannel ซึ่งช่วยให้เราสามารถรวมเชื่อมต่อหลายช่องทางสื่อสารเครือข่ายเข้าด้วยกันเป็นหนึ่งเดียว ทำให้ได้ประสิทธิภาพการเชื่อมต่อสูงขึ้น และเพิ่มความเสถียรภาพในการสื่อสารระหว่างอุปกรณ์

การ Link Aggregation หรือ Bonding คือการเพิ่มขนาด Bandwidth ให้สูงขึ้นโดยใช้สายหลายๆ เส้นเข้ามาเชื่อมต่อกัน ซึ่งจะมีข้อดีทั้งการเพิ่ม Bandwidth เช่นเอาสายแลน 1Gbps มา 2 เส้นรวมกัน ก็จะได้ความเร็ว 2Gbps ถ้าเอามารวมกัน 4 เส้น ก็ได้เป็น 4Gbps หรือถ้าเอา 10Gbps 4 เส้นมารวมกัน ก็จะได้ความเร็ว 40Gbps และการเชื่อมต่อที่ต่อเนื่องเสมอในกรณีสายเส้นใดเส้นหนึ่งหลุดไป ก็ยังเชื่อมต่อได้กับเส้นที่เหลืออยู่

ฺBonding LACP Example (Cr. wiki.mikrotik.com)

LACP 802.3ad Requirements

  • อุปกรณ์เครือข่ายทั้งสองฝั่ง ต้องรองรับการตั้งค่า Bonding โหมด LACP 802.3ad (จาก Scenario ด้านบน SW1 และ SW2 รองรับการตั้งค่า Bonding โหมด LACP 802.3ad ทั้งสองตัว)
  • ต้องการ Speed และ Duplex Mode Link ที่เหมือนกันทั้งสองฝั่ง (ควรนำ Port 10/100/1000 Mbps ของ SW1 มาทำ Bonding กับ Port 10/100/1000 Mbps ของ SW2)
  • 1 EtherChannel หรือ 1 Bonding สามารถรวมได้สูงสุด 2–8 Links บนอุปกรณ์ MikroTik
  • รองรับการทำ VLAN Tags (สามารถนำ VLAN ไปวิ่งบนท่อ Bonding ได้)
  • Switch ตระกูล MikroTik CRS3xx รองรับการทำงาน Hardware Offload ซึ่งปัจจุบันมี 2 โหมดที่รองรับ คือ 802.3ad และ Balance-xor

วิธีตั้งค่า Bonding โหมด LACP 802.3ad

Scenario

บน SW1

  • เปิด Winbox และเชื่อมต่อเข้า SW1
  • ไปที่เมนู Interfaces > Bonding > กด “+”
  • Name: ตั้งชื่อ Bonding (ตั้งได้ตามใจชอบ)
  • ไปที่แท็บ Bonding
  • Slaves: เลือก ether4 และ ether5 (ตามแผนภาพ Scenario ของ SW1)
  • Mode เลือก 802.3ad (เป็นโหมด LACP)
  • Link Monitoring: เลือก mii
  • Transmit Hash Policy: เลือก layer2
  • กด OK
  • ตั้งค่า IP Address ให้กับ Interface Bonding ฝั่ง SW1
  • ไปที่เมนู IP > Addresses > กด “+”
  • Address: 192.168.12.1/24
  • Network: 192.168.12.0
  • Interface: เลือก bonding1 (ชื่อ Bonding ที่เราสร้างนั้นเอง)
  • กด OK

บน SW2 (ทำเหมือน SW1)

  • เปิด Winbox และเชื่อมต่อเข้า SW2
  • ไปที่เมนู Interfaces > Bonding > กด “+”
  • Name: ตั้งชื่อ Bonding (ตั้งได้ตามใจชอบ)
  • ไปที่แท็บ Bonding
  • Slaves: เลือก ether4 และ ether5 (ตามแผนภาพ Scenario ของ SW2)
  • Mode เลือก 802.3ad (เป็นโหมด LACP)
  • Link Monitoring: เลือก mii
  • Transmit Hash Policy: เลือก layer2
  • กด OK
  • ตั้งค่า IP Address ให้กับ Interface Bonding ฝั่ง SW2
  • ไปที่เมนู IP > Addresses > กด “+”
  • Address: 192.168.12.2/24
  • Network: 192.168.12.0
  • Interface: เลือก bonding1 (ชื่อ Bonding ที่เราสร้างนั้นเอง)
  • กด OK
  • Log ของ SW1 จะแสดง “bonding1 link up”
  • Log ของ SW2 จะแสดง “bonding1 link up”

ดังนั้น ตอนนี้ SW1 และ SW2 เชื่อมต่อ Bonding กันเรียบร้อยแล้ว (เสร็จสิ้นการตั้งค่า)

ผลลัพธ์ การทำ Bonding โหมด LACP 802.3ad

ฝั่ง SW1

  • ให้ SW1 ยิง Bandwidth Test ไปยัง SW2 (192.168.12.2)

ฝั่ง SW2

“เนื่องจากข้อจำกัด ในด้านความเร็วในการทดสอบที่วิ่งได้ไม่เกิน 1Mbps เนื่องจาก Labs นี้ผมทดสอบบน GNS3 โดยนำ MikroTik CHR มาติดตั้ง”

สรุป การทำ Bonding โหมด LACP 802.3ad หลายๆคนคงจะเข้าใจว่าเราจะได้ Speed ที่เพิ่มขึ้น แต่จริงๆแล้ว เราได้ Throughput ต่างหากที่เพิ่มขึ้น เปรียบเสมือนสะพานแขวน 2 เส้น เช่นหากสะพานที่ 1 รถวิ่งผ่านแล้วเกิดเต็ม ก็ให้ไปใช้สะพานที่ 2 ต่อ และข้อดีอีกอย่าง คือ การเชื่อมต่อที่ต่อเนื่องเสมอในกรณีสายเส้นใดเส้นหนึ่งหลุดไป ก็ยังเชื่อมต่อได้กับเส้นที่เหลืออยู่

การทำ Bonding โหมด Balance-RR

Balance-RR เป็นการรับ-ส่งข้อมูลเป็นลำดับ (Round Robin) กับแต่ละ Interface (ใช้สำหรับ Fault Tolerace และ กระจายโหลด (Load Balancing) ให้แต่ละ Interface ที่ทำ Bonding) เปรียบเสมือนการทำ Raid0 ในระบบคอมพิวเตอร์นั้นเอง โดย Balance-RR ซึ่งถือว่าเป็นโหมดการทำ Bonding ที่นิยมอีกตัวเลยก็ว่าได้ ซึ่งข้อเสียของมันคือ อุปกรณ์ Network หลายๆแบรนด์ไม่ค่อยรองรับโหมด Balance-rr และ จะใช้งาน CPU ในการประมวลผลแทน Switch Chip (Hardware Offload) บนอุปกรณ์ MikroTik

Balance-RR Requirements

  • อุปกรณ์เครือข่ายทั้งสองฝั่ง ต้องรองรับการตั้งค่า Bonding โหมด Balance-RR (จาก Scenario ด้านบน SW1 และ SW2 รองรับการตั้งค่า Bonding โหมด Balance-RR ทั้งสองตัว)
  • ต้องการ Speed และ Duplex Mode Link ที่เหมือนกันทั้งสองฝั่ง (ควรนำ Port 10/100/1000 Mbps ของ SW1 มาทำ Bonding กับ Port 10/100/1000 Mbps ของ SW2)
  • 1 Bonding สามารถรวมได้สูงสุด 2–8 Links บนอุปกรณ์ MikroTik
  • ไม่รองรับการทำ VLAN Tags (ไม่สามารถนำ VLAN ไปวิ่งบนท่อ Bonding ได้)

วิธีตั้งค่า Bonding โหมด Balance-rr (ทำ Labs ต่อจาก LACP 802.3ad)

บน SW1

  • ไปที่เมนู Interfaces > Bonding
  • Double Click “bonding1” ขึ้นมา
  • แก้ตรง Mode: เลือก balance rr
  • กด OK

บน SW2

  • ไปที่เมนู Interfaces > Bonding
  • Double Click “bonding1” ขึ้นมา
  • แก้ตรง Mode: เลือก balance rr
  • กด OK

ผลลัพธ์ การทำ Bonding โหมด Balance-rr

ฝั่ง SW1

  • ให้ SW1 ยิง Bandwidth Test ไปยัง SW2 (192.168.12.2)

ฝั่ง SW2

สรุป การทำ Bonding โหมด Balance-rr เป็นการรับ-ส่งข้อมูลเป็นลำดับ (Round Robin) กับแต่ละ Interface (ใช้สำหรับ Fault Tolerace และ กระจายโหลด (Load Balancing) ให้แต่ละ Interface ที่ทำ Bonding) และข้อดีอีกอย่าง คือ การเชื่อมต่อที่ต่อเนื่องเสมอในกรณีสายเส้นใดเส้นหนึ่งหลุดไป ก็ยังเชื่อมต่อได้กับเส้นที่เหลืออยู่ ซึ่งข้อเสียคือ หลายๆแบรนด์อุปกรณ์เน็ตเวิร์คไม่ค่อยรองรับ และ จะใช้งาน CPU ในการประมวลผล แทน Switch Chip (Hardware Offload) บนอุปกรณ์ MikroTik ดังนั้น Balance-rrจึงไม่ค่อยเหมาะกับการใช้ MikroTik รุ่นเล็ก เพราะ CPU ไม่ค่อยแรง

--

--

Krittin Srithong
techblogclub

Hi, I’m Krittin. I am studying in bachelor of Computer Enginnering. I have MikroTik Certificates as following MTCNA, MTCSE, MTCUME. (medium.com/techblogclub)