Hướng dẫn cấu hình MLAG trên Mikrotik để thiết lập HA
Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu và thực hành cấu hình một tính năng cực kỳ cao cấp trên các thiết bị MikroTik – đó chính là MLAG (Multi-chassis Link Aggregation Group).
Nếu các bạn đã quen thuộc với giải pháp gộp băng thông LACP thông thường chỉ cắm được vào một thiết bị duy nhất, thì với MLAG, các bạn có thể kết nối link từ Server hoặc Switch tầng dưới lên đồng thời cả hai thiết bị MikroTik độc lập. Tính năng này mang lại hai giá trị cốt lõi cho hệ thống mạng doanh nghiệp:
- Thứ nhất là khả năng dự phòng tối đa ở cấp độ thiết bị (Hardware Redundancy) – một con sập hệ thống vẫn chạy bình thường.
- Thứ hai là tối ưu hóa băng thông active-active, giúp loại bỏ hoàn toàn tình trạng lãng phí link dự phòng như các cơ chế Spanning Tree truyền thống.
Tổng quan về Mikrotik MLAG
Về mặt tổng quan kỹ thuật, MLAG (Multi-chassis Link Aggregation Group) là giải pháp ảo hóa Layer 2, cho phép chúng ta cấu hình Link Aggregation giữa các cổng thuộc nhiều thiết bị vật lý khác nhau.

Hình 1: Mô hình Mikrotik MLAG
Tính năng này có bản chất tương tự như công nghệ vPC (Virtual Port-Channel) trên các dòng switch Cisco Nexus, mang lại mô hình dự phòng Active-Active và tận dụng tối đa 100% băng thông của các đường link mà không bị Spanning Tree block cổng. Tuy nhiên, cần làm rõ rằng MLAG không hoàn toàn giống với công nghệ Stack. Khi chạy Stack, hai con switch sẽ gộp chung cả mặt phẳng điều khiển (Control Plane) lẫn quản lý (Management Plane) – tức là chúng dùng chung một file cấu hình, chung một bảng định tuyến và quản lý qua một địa chỉ IP duy nhất. Ngược lại, hai switch chạy MLAG vẫn hoạt động độc lập, có cấu hình riêng biệt, chạy hệ điều hành riêng và quản lý bằng hai IP khác nhau; các Switch chỉ bắt tay để đồng bộ hóa trạng thái Layer 2 mà thôi.

Hình 2: So sánh mô hình Mikrotik MLAG và Cisco vPC
Tính năng MLAG chính thức được MikroTik hỗ trợ từ hệ điều hành RouterOS v7, RouterOS v6 không hỗ trợ. Một lưu ý cực kỳ quan trọng về sự khác biệt kiến trúc giữa các bản v7:
- Ở các phiên bản từ v7.21 trở xuống, cấu hình MLAG nằm trong một menu chuyên biệt là /interface/bridge/mlag và bị hãng khóa cứng, và menu chỉ hiển thị trên các dòng Switch trang bị chip chuyển mạch Marvell Prestera.
- Nhưng bắt đầu từ phiên bản RouterOS v7.22 trở đi, MikroTik đã tái cấu trúc lại, xóa bỏ menu cũ này và tích hợp trực tiếp tham số MLAG vào /interface/bridge, đồng thời mở khóa cho phép chạy MLAG bằng phần mềm trên toàn bộ các dòng thiết bị khác bao gồm cả ảo hóa CHR. Do vậy, nếu muốn sử dụng MLAG, thì các bạn sẽ cần phải upgrade lên các phiên bản 7.22 trở lên.
| RouterOS 7.22 trở lên | RouterOS 7.21 trở xuống |
| Menu cấu hình: /interface/bridge | Menu cấu hình: /interface/bridge/mlag |
| mlag-heartbeat | heartbeat |
| mlag-peer-port | peer-port |
| mlag-priority | priority |
| mlag-state | state |
| mlag-active-role | active-role |
| bridge-id | id |
Bên cạnh yếu tố phiên bản, có một lưu ý đặc biệt quan trọng về mặt phần cứng mà các bạn bắt buộc phải nắm rõ trước khi triển khai MLAG vào thực tế. Đó là cơ chế Đồng bộ hóa dữ liệu Host (Host Synchronization).
Để cả hai thiết bị MLAG luôn hiểu đúng vị trí các địa chỉ MAC trong mạng, hệ thống sẽ chạy một tiến trình phần mềm ngầm để liên tục đồng bộ bảng MAC qua lại giữa hai switch. Quá trình này tiêu tốn khá nhiều tài nguyên CPU và bộ nhớ RAM.
Chính vì vậy, MikroTik đưa ra một khuyến cáo chính thức: Đối với các dòng Switch chỉ trang bị CPU đơn nhân MIPSBE (ví dụ điển hình như các mã quốc dân: CRS326-24S+2Q+RM, CRS354-48P-4S+2Q+RM hay kể cả dòng CRS518), các bạn chỉ nên triển khai MLAG trong các hạ tầng mạng có quy mô dưới 1.000 Hosts, nghĩa là dưới 1.000 địa chỉ MAC.
Nếu các bạn cố tình ép các dòng switch CPU yếu này chạy MLAG trong một mạng có quy mô lớn hơn 1.000 thiết bị, tiến trình đồng bộ MAC sẽ lập tức làm quá tải CPU lên mức 100%, gây ra hiện tượng nghẽn cổ chai, rớt gói tin và làm mất độ ổn định của toàn bộ hệ thống. Đối với các mạng quy mô lớn, giải pháp bắt buộc là chúng ta phải nâng cấp lên các dòng Switch sở hữu CPU đa nhân mạnh mẽ hơn như CRS520 hoặc các switch sử dụng dòng chip ARM thế hệ mới.
Mô hình lab
Để hướng dẫn cấu hình MLAG trên Mikrotik, thì mình sẽ sử dụng 1 mô hình đơn giản gồm 2 switch Mikrotik, mình đang giả lập bằng bản CHR trên EVE. Bên dưới có 1 switch mình giả lập bằng Switch Cisco. Trong thực tế thì bên dưới chúng ta có thể sẽ có 2 switch chạy stack, bên trên có thể là 2 firewall hoặc Router chạy HA, tuy nhiên thì nó chỉ khác nhau về cách cấu hình của các thiết bị này, còn cấu hình MLAG sẽ giống nhau trong mọi trường hợp, nên mình sẽ dùng mô hình này cho đơn giản, để các bạn nắm được các bước cấu hình.

Trong mô hình này thì mình sẽ dùng 2 cổng eth1 và eth2 làm Peer-Port. Các bạn chỉ cần 1 cổng làm Peer-Port cũng được, tuy nhiên chúng ta đang sử dụng MLAG để thiết lập mô hình HA, do vậy thì Peer-Port cũng phải có 2 link để dự phòng, 2 cổng này chúng ta sẽ cần cấu hình Bonding.
Cổng eth4 trên 2 switch nối xuống switch Access bên dưới, và cổng eth4 này sẽ được cấu hình MLAG để bonding 2 cổng trên 2 switch xuống access bên dưới.
Mình sẽ đi vào chi tiết cấu hình.
Cấu hình MLAG trên Mikrotik
Đầu tiên mình sẽ cấu hình Bonding bằng LACP để gom 2 Peer-Port lại. Các bạn vào menu Interfaces, chuyển sang tab Bonding, nhấn dấu + để tạo mới.
- Name: mình sẽ đặt là Bonding-for-MLAG-Peer.
- Chuyển sang tab Bonding.
- Slaves: chọn 2 cổng là eth1 và eth2 của Peer-Port.
- Mode: chọn 802.3ad để sử dụng LACP.
- Transmit Hash Policy: chọn layer 3 and 4 để cân tải sử dụng source IP, Destination IP và Port.
- LACP Rate: chọn xuống 1s, trong kiến trúc MLAG thì mikrotik khuyến nghị sử dụng Rate là 1 giây, đây là thời gian để switch gửi gói tin LACPDU kiểm tra trạng thái của đầu link bên kia. Rate thấp hơn thì LACP sẽ hội tụ nhanh hơn => giảm downtime khi failover, tuy nhiên sẽ tốn nhiều tài nguyên phần cứng.
- Nhấn Apply để tạo.

Tương tự trên switch 2 chúng ta cũng tạo 1 bonding cho Peer-Port, cấu hình sẽ giống hệt trên Switch 1.

Tiếp theo chúng ta sẽ cấu hình thêm 1 bonding nữa để kết nối xuống Switch Cisco bên dưới, đây chính là cấu hình MLAG để gom 2 port eth4 trên 2 switch thành 1 bonding. Vẫn trong menu Bonding, các bạn nhấn dấu + để tạo thêm.
- Name: mình sẽ đặt là to-SW-Cisco.
- Chuyển sang tab Bonding.
- Slaves: chọn cổng kết nối xuống Switch Cisco, trong mô hình của mình là cổng eth4.
- Mode: chọn 802.3ad cho LACP.
- Transmit Hash Policy: chọn layer 3 and 4.
- LACP Rate: chọn 1s. Tuy nhiên đây là bonding nối xuống 1 switch khác, có thể không phải Mikrotik, nên trên switch đó các bạn cũng cần phải cấu hình LACP Rate (hoặc LACP timeout) xuống 1s để sử dụng Fast Failover.
- MLAG ID: trong mô hình của mình là 10. ID này dùng để 2 switch xác định xem cổng nào sẽ được gán vào bonding nào trong MLAG. ID trên 2 switch phải giống nhau trên Link kết nối xuống cùng 1 thiết bị.
- Nhấn Apply và OK để tạo.

Tạo 1 Bonding với cấu hình tương tự trên Switch 2. Bonding này phải có cùng MLAG ID cho link kết nối xuống Switch Cisco.

Tiếp theo chúng ta sẽ cần cấu hình 1 Bridge để add các cổng Peer-Port và các cổng bonding. Các bạn vào menu Bridge, nhấn dấu + để tạo mới.
- Name: mình sẽ đặt là LAN1.
- Chuyển sang tab VLAN. Nếu sử dụng 1 LAN thì các bạn bỏ qua phần này, nếu dùng nhiều VLAN thì chúng ta sẽ cần bật VLAN Filtering lên.
- Chuyển sang tab MLAG.
- Peer Port: chọn bonding đã tạo cho Peer Port, trong mô hình của mình là cổng bonding Bonding-for-MLAG-Peer đã tạo.
- Priority: để xác định xem Switch nào sẽ là Active cho MLAG, thấp hơn sẽ là Active, mặc định là 128. Nên các bạn chỉ cần cấu hình 1 switch xuống thấp hơn là được, mình sẽ cấu hình Switch 1 là 40.
- Nhấn Apply và Ok để tạo.

Chuyển sang tab Ports. Nhấn dấu + và add các cổng bonding vào. Chúng ta sẽ cần thêm cả cổng bonding cho Peer-Port và bonding xuống switch Cisco.

Tương tự mình sẽ tạo 1 bridge trên switch 2. Các thông số cấu hình Bridge LAN1 trên switch 2 sẽ tương tự như Switch 1, chỉ khác Priority chúng ta sẽ cấu hình cao hơn Switch 1, để Switch 2 sẽ là Secondary. Mình sẽ nhập mặc định là 128.

Add 2 cổng bonding vào bridge LAN1 trên switch 2.

OK như vậy là xong phần cấu hình MLAG trên 2 Switch Mikrotik. Mình sẽ cấu hình LACP trên Switch Cisco bên dưới để kiểm tra kết nối.
Cấu hình LACP trên Switch Cisco
Trên Switch Cisco thì các bạn chỉ cần cấu hình LACP cho 2 cổng e0/0 và e0/1, và chỉnh LACP Timeout về 1s tương tự như Mikrotik.
| Switch# configure terminal Switch(config)# interface range e0/0-1 Switch(config-if-range)# lacp rate fast Switch(config-if-range)# channel-protocol lacp Switch(config-if-range)# channel-group 1 mode active |
Kiểm tra
Trên switch Cisco thì các bạn có thể dùng lệnh show interfaces po1 để kiểm tra. PO1 đã UP và băng thông đã lên 2Gbps, với Member là 2 cổng E0/0 và E0/1 đang kết nối lên 2 Switch Mikrotik.
Switch#show int po1 Port-channel1 is up, line protocol is up (connected) Hardware is EtherChannel, address is aabb.cc00.3010 (bia aabb.cc00.3010) MTU 1500 bytes, BW 20000 Kbit/sec, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, Auto-speed, media type is RJ45 input flow-control is off, output flow-control is unsupported Members in this channel: Et0/0 Et0/1 ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:07, output never, output hang never Last clearing of "show interface" counters never Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 1000 bits/sec, 1 packets/sec 219 packets input, 41873 bytes, 0 no buffer Received 110 broadcasts (0 multicasts) 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 input packets with dribble condition detected 3792 packets output, 497722 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 unknown protocol drops 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out Switch#
Trên Mikrotik thì do 2 Switch vẫn hoạt động riêng biệt, không phải như Stack, nên chúng ta sẽ không xem được băng thông 2 Gbps như trên Cisco.
Để kiểm tra trạng thái cổng thì các bạn vào menu Bridge, kích đúp vào Bridge, chuyển sang tab MLAG. Ở menu này chúng ta sẽ xem được trạng thái của MLAG giữa 2 switch.

Để xem thông tin cổng Bonding, chúng ta vẫn vào menu Interface, tab Bonding. Do dùng MLAG nên ở đây sẽ hiển thị 1 cổng, cả 2 Switch đều có cổng Active, và trạng thái MLAG là connected là OK.

Kết luận
Như vậy là chúng ta đã cùng nhau tìm hiểu chi tiết từ lý thuyết tổng quan cho đến các bước thực hành cấu hình hoàn chỉnh tính năng MLAG trên thiết bị MikroTik. Có thể thấy, từ phiên bản RouterOS v7.22 trở đi, MLAG đã trở thành một giải pháp cấu hình tối ưu để xây dựng hệ thống dự phòng và mở rộng băng thông Layer 2 chạy Active-Active cực kỳ mạnh mẽ. Chỉ cần thực hiện đúng các bước thiết lập đồng bộ về LACP rate, min-links và Spanning Tree như hướng dẫn, các bạn hoàn toàn có thể tự tin làm chủ và triển khai giải pháp này cho hạ tầng mạng của mình.
Nếu các bạn đang tìm kiếm các dòng Switch, Router MikroTik để triển khai cho các dự án, hãy liên hệ ngay với CNTTShop. Chúng tôi tự hào là Nhà phân phối MikroTik chính hãng hàng đầu tại Việt Nam, cam kết cung cấp thiết bị đầy đủ CO/CQ, bảo hành chuẩn hãng và hỗ trợ kỹ thuật chuyên sâu 24/7 từ đội ngũ kỹ sư giàu kinh nghiệm.
Bên cạnh các giải pháp hạ tầng truyền thống, CNTTShop hiện cũng đang là đơn vị tiên phong tư vấn và triển khai các giải pháp mạng Network AI thế hệ mới – giúp tối ưu hóa luồng dữ liệu cho các hệ thống tính toán hiệu năng cao, tự động hóa quản trị và nâng cao năng lực an ninh mạng bằng trí tuệ nhân tạo.









.png)























Bình luận bài viết!