Hướng dẫn cấu hình load balancing mikrotik

- Bước 1: Đánh dấu gói tin đến từ 2 cổng Wan. Trong bài hướng dẫn này chúng tôi có 2 đường truyền nên sẽ lần lượt đánh dấu là “mark-01” và “mark02”. Trường hơp bạn có n đường truyền thì nên đánh dấu là “mark-n”.

  • Đánh dấu gói tin đến từ đường 01

Hướng dẫn cấu hình load balancing mikrotik
Hướng dẫn cấu hình load balancing mikrotik

  • Đánh dấu gói tin đến từ đường 02

Hướng dẫn cấu hình load balancing mikrotik
Hướng dẫn cấu hình load balancing mikrotik

- Bước 2: đánh dấu gói tin đến từ cổng Lan. Trong bài hướng dẩn này chúng tôi dùng 2 đường truyền nên trong phần cấu hình PCC sẽ lần lượt là 2/0, 2/ 1. Trong trường hợp các bạn có 3 đường truyền thì 3/2,3/1,3/0.

Trong bài hướng dẫn này chúng tôi sẽ hướng dẫn cấu hình cổng Wan router Mikrotik (Load-Balancing) giữa 2 đường truyền. Trong đó một đường sẽ kết nối PPPoE với ISP, một đường sẽ kết nối đến 1 Router khác(router này cũng kết nối với ISP bằng PPPoE).

Đầu tiên bạn cần cấu hình 2 cổng Wan cho thiết bị. Bạn thực hiện các bước sau:

  • Bước 1: tách cổng Lan thành cổng WAN
  • Bước 2: cấu hình PPPoE cho cổng Wan1
  • Bước 3: cấu hình IP cho cổng Wan2

II. Cấu hình bản định tuyến:

  • Mặc định Router sẽ lưu toàn bộ thông tin định tuyến vào bản định tuyến, bản này được gọi là bản định tuyến chính(Main). Mặc khi không quy định gì đăc biệt, máy tính trong Lan sẽ dùng bản Main này để truyền nhận thông tin giửa các router.
  • Xác định Default Gateway(DG) của Router:
  • DG của đường truyền PPPoE: vào IP → Address → nhìn vào Interface PPPoE và giá trị trong cột Network chính là DG của đường truyền.

Hướng dẫn cấu hình load balancing mikrotik

DG của đường truyền được cấp từ 1 Router khác: thông thường là địa chỉ IP của Router kết nối trực tiếp với Internet.

Chuyển đổi dự phòng là cách sử dụng nhiều đường đi (Gateway) với một lần khi lần đầu tiên thất bại. Nó bắt đầu với việc thêm các lối đi (Gateway). Đặt giá trị khoảng cách lớn hơn cho các đường đi dự phòng và luôn chọn kiểm tra trạng thái đường đi chính.

1.2. Phương pháp cân bằng tải phổ dụng PCC 1.2.1. Sơ lược về phương pháp PCC PCC, viết tắt của cụm từ “Per Connection Classifier”, là một trình so khớp, sẽ cho phép bạn phân chia lưu lượng trong mạng LAN thành các luồng bằng nhau với khả năng giữ các gói với danh sách các bộ tùy chọn cụ thể trong một luồng cụ thể (bạn có thể chỉ định bộ tùy chọn này là src-address, src- port, dst-address,dst-port). PCC-Phân loại theo kết nối o Đơn giản, hiệu quả, có thể mở rộng, không có tác dụng phụ khó chịu. o Phương pháp cân bằng tải theo từng địa chỉ. Nguyên tắc làm việc: o PCC chia dữ liệu đến thành các luồng và sau đó sử dụng quy tắc định tuyến để sắp xếp lưu lượng đồng đều (hoặc không đồng đều) trên nhiều kết nối WAN. Điều này được thực hiện bởi: 1. Sử dụng thuật toán băm để sắp xếp lưu lượng dựa trên địa chỉ nguồn,cổng nguồn, địa chỉ đích, đích cổng hoặc kết hợp các thuộc tính của chúng với nhau. 2. Sử dụng Mangle đánh dấu gói và chỉ định tuyến và một số đường đi định tuyến nằm trong bảng Route để đảm bảo lưu lượng theo một tuyến đã chỉ định trên mỗi đường WAN.

Tùy chọn trong PCC và việc áp dụng trong mô hình thực tế. Các gói IP có một tiêu đề chứa một số trường, hai trong số các trường đó là địa chỉ IP của nguồn của gói và địa chỉ IP của đích của gói. Các gói TCP và UDP cũng có các tiêu đề chứa cổng nguồn và cổng đích. Dưới đây là các tùy chọn trường khác nhau, các trường sẽ được đưa vào thuật toán (và, với mục đích phân tán chúng trên các đường liên kết khác nhau, quyết định gói sẽ được đưa vào). Hãy nhớ rằng hàm băm sẽ luôn tạo ra cùng một đầu vào khi nó được cung cấp cùng một đầu ra: Src-address: Địa chỉ nguồn của máy khách sẽ luôn giống nhau, vì vậy tất cả lưu lượng truy cập từ một máy khách sẽ luôn khớp với cùng một đối sánh PCC và sẽ luôn được đặt trên cùng một đường Internet. Dstaddress: Địa chỉ đích của một máy chủ sẽ luôn giống nhau, vì vậy tất cả lưu lượng truy cập đến máy chủ đó (giả sử, Mikrotik Wiki) sẽ luôn đặt trên cùng một đường Internet. Both Addresses: Cặp IP nguồn và đích giữa cùng một máy khách tới máy chủ sẽ luôn giống nhau, vì vậy tất cả lưu lượng giữa một máy khách và một máy chủ cụ thể (giả sử, máy tính xách tay của bạn và Mikrotik Wiki) sẽ luôn khớp với cùng một đối sánh PCC , và sẽ luôn được đặt trên cùng một đường Internet. Src-port: Các cổng nguồn của máy khách thường được chọn ngẫu nhiên khi kết nối được tạo, do đó, qua nhiều kết nối, các cổng nguồn khác nhau sẽ được đưa vào hàm băm và các đối sánh PCC khác nhau sẽ khớp và lưu lượng sẽ đi qua các đường Internet khác nhau. Tuy nhiên, một số giao thức, ở máy khách luôn chọn cùng một cổng nguồn và các máy chủ phía sau bộ định tuyến của bạn hầu như sẽ luôn sử dụng cùng một cổng dịch vụ cố định để gửi lưu lượng truy cập trở lại máy khách. Một máy chủ web phía sau bộ định tuyến của bạn sẽ gửi hầu hết lưu lượng truy cập từ các cổng HTTP(80) và HTTPS(443) của nó và lưu lượng đó sẽ luôn khớp với cùng một trình so khớp PCC và sẽ được đặt trên cùng một đường Internet. Dst-port: Cổng đích của máy khách thường là cổng dịch vụ được xác định rõ, cố định. Tất cả lưu lượng HTTP (80) giữa máy khách và máy chủ của bạn trên Internet sẽ luôn khớp với cùng một trình so khớp PCC và sẽ được đặt trên cùng một đường Internet. Tuy nhiên, khách hàng thực hiện lưu lượng HTTPS (443) có thể khớp với một trình so khớp PCC khác và sẽ đi qua một đường Internet khác.

Both-ports: Do cổng khách (thường) được chọn ngẫu nhiên và cổng đích trên máy chủ luôn cố định, nên sự kết hợp của hai cổng là (thường) ngẫu nhiên và sẽ truyền tải trên các đường Internet khác nhau. Src-address-and-port: Cùng giống với cơ chế của src-port. Dst-address-and-port: Cùng giống cơ chế với dst-port. Both-addresses-and-ports:Đây là cách ngẫu nhiên nhất để phân tán lưu lượng truy cập trên các đường Internet vì nó có số lượng biến nhiều nhất.

1.2.2. Cài đặt cân bằng tải PCC Có 2 cách để cài đặt cân bằng tải theo phương pháp PCC. Cách 1. Sử dụng các lệnh.

Hướng dẫn cấu hình load balancing mikrotik

Mô hình 2 đường Internet sử dụng PPPoE

/ip firewall mangle add action=accept chain=prerouting dst-address=192.168.1.0/24 in-interface=BridgeLAN add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out1 new-connection-mark=VaoWAN1 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out2 new-connection-mark=VaoWAN2 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD01passthrough=yesper- connection-classifier=both-addresses-and-ports:2/0 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD02passthrough=yesper- connection-classifier=both-addresses-and-ports:2/1 addaction=mark-routingchain=preroutingconnection-mark=DD01in-interface=BridgeLAN new-routing-mark=DiraWAN1passthrough=yes addaction=mark-routingchain=preroutingconnection-mark=DD02in-interface=BridgeLAN new-routing-mark=DiraWAN2passthrough=yes add action=mark-routing chain=output connection-mark=VaoWAN1 new-routing- mark=DiraWAN1passthrough=yes add action=mark-routing chain=output connection-mark=VaoWAN2 new-routing- mark=DiraWAN2passthrough=yes /ip route addcheck-gateway=pingdistance=1gateway=pppoe-out1routing-mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing-mark=DiraWAN2

Mô hình 3 đường Internet sử dụng PPPoE

/ip firewall mangle add action=accept chain=prerouting dst-address=192.168.1.0/24 in-interface=BridgeLAN add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out1 new-connection-mark=VaoWAN1 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out2 new-connection-mark=VaoWAN2passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out3 new-connection-mark=VaoWAN3passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD01passthrough=yesper- connection-classifier=both-addresses-and-ports:3/0 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD02passthrough=yesper- connection-classifier=both-addresses-and-ports:3/1 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD03passthrough=yesper- connection-classifier=both-addresses-and-ports:3/2 addaction=mark-routingchain=preroutingconnection-mark=DD01in-interface=BridgeLAN new-routing-mark=DiraWAN1passthrough=yes addaction=mark-routingchain=preroutingconnection-mark=DD02in-interface=BridgeLAN new-routing-mark=DiraWAN2passthrough=yes addaction=mark-routingchain=preroutingconnection-mark=DD03in-interface=BridgeLAN new-routing-mark=DiraWAN3passthrough=yes add action=mark-routing chain=output connection-mark=VaoWAN1 new-routing- mark=DiraWAN1passthrough=yes add action=mark-routing chain=output connection-mark=VaoWAN2 new-routing- mark=DiraWAN2passthrough=yes add action=mark-routing chain=output connection-mark=VaoWAN3 new-routing- mark=DiraWAN3passthrough=yes /ip route addcheck-gateway=pingdistance=1gateway=pppoe-out1routing-mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing-mark=DiraWAN2 addcheck-gateway=pingdistance=1gateway=pppoe-out3routing-mark=DiraWAN3

Với 2 mô hình bên trên, bạn cần hiểu các nhóm lệnh và thông số trong lệnh bạn cần lưu ý.

Cụm 1:

add action=mark-connection chain=prerouting connection-mark=no-mark in- interface=pppoe-out1 new-connection-mark=VaoWAN1 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in- interface=pppoe-out2 new-connection-mark=VaoWAN2 passthrough=yes

→ Các kết nối hướng từ bên ngoài Internet đi vào các đường WAN trên Router được đánh dấu lại với giá trị “VaoWAN1” và “VaoWAN2”

Cụm 2:

add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD01passthrough=yesper- connection-classifier=both-addresses-and-ports:2/0 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD02passthrough=yesper- connection-classifier=both-addresses-and-ports:2/1

→ Các kết nối xuất phát từ trong mạng LAN ra ngoài ( bao gồm cả ra ngoài Internet và xuất phát ra trong mạng nội bộ) được đưa vào hàm xử lí. Khi có kết quả xử lí, các kết nối này lại được đánh dấu lại với giá trị “DD01” và “DD02”

Cụm 3:

add action=mark-routing chain=prerouting connection-mark=DD01 in- interface=BridgeLAN new-routing-mark=DiraWAN1 passthrough=yes add action=mark-routing chain=prerouting connection-mark=DD02 in- interface=BridgeLANnew-routing-mark=DiraWAN2 passthrough=yes

→ Việc đánh dấu bước trên với 2 giá trị “DD01” và “DD02” được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Cụm 4:

add action=mark-routing chain=output connection-mark=VaoWAN1 new-routing- mark=DiraWAN1passthrough=yes add action=mark-routing chain=output connection-mark=VaoWAN2 new-routing- mark=DiraWAN2passthrough=yes

→ Việc đánh dấu các kết nối ở cụm số 1 được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Cụm 5:

/ip route addcheck-gateway=pingdistance=1gateway=pppoe-out1routing-mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing-mark=DiraWAN2

→Lập đường đi mới từ các đường đi Internet có sẵn kèm theo gán nhãn cho các đường mới này, tương ứng “DiraWAN1” và “DiraWAN2”.

Cách 2. Sử dụng giao diện.

Thận trọng ! Sử dụng phương pháp cài đặt bằng giao diện, bạn cần nắm vững mọi thuộc tính Điều này cần bạn có sự kiên trì và thận trọng. !Chỉ cần một sự sai lầm hoặc mất một thuộc tính, cân bằng tải có thể hoạt động không chính xác.

Cụm 1.

add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-out1 new-connection-mark=VaoWAN1 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-out2 new-connection-mark=VaoWAN2 passthrough=yes

→Các kết nối hướng từ bên ngoài Internet đi vào các đường WAN trên Router được đánh dấu lại với giá trị “VaoWAN1” và “VaoWAN2”

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối đi từ bên ngoài Internet vào Router thông qua WAN 1 được đánh dấu với tên “VaoWAN1”

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối đi từ bên ngoài Internet vào Router thông qua WAN 2 được đánh dấu với tên “VaoWAN2”

Cụm2:

add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=BridgeLAN new-connection- mark=DD01 passthrough=yes per-connection-classifier=both-addresses- and-ports:2/0 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=BridgeLAN new-connection- mark=DD02 passthrough=yes per-connection-classifier=both-addresses- and-ports:2/1

→Các kết nối xuất phát từ trong mạng LAN ra ngoài (bao gồm cả ra ngoài Internet và xuất phát ra trong mạng nội bộ) được đưa vào hàm xử lí. Khi có kết quả xử lí, các kết nối này lại được đánh dấu lại với giá trị “DD01” và “DD02”

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối xuất phát từ trong mạng LAN được tính toán bởi hàm PCC và kết quả, kết nối đó cũng bị đánh dấu với tên gọi “DD01” và “DD02”.

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối xuất phát từ trong mạng LAN được tính toán bởi hàm PCC và kết quả, kết nối đó cũng bị đánh dấu với tên gọi “DD01” và “DD02”.

Cụm 3:

add action=mark-routing chain=prerouting connection-mark=DD01 in- interface=BridgeLAN new-routing-mark=DiraWAN1 passthrough=yes add action=mark-routing chain=prerouting connection-mark=DD02 in- interface=BridgeLANnew-routing-mark=DiraWAN2 passthrough=yes

→Việc đánh dấu bước trên với 2 giá trị “DD01” và “DD02” được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối vừa được đánh dấu Cụm1, giờ đây chúng được luân chuyển sang đường đi, tên gọi “DiraWAN1”

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối vừa được đánh dấu Cụm2, giờ đây chúng được luân chuyển sang đường đi, tên gọi “DiraWAN2”

Cụm 4:

addaction=mark-routingchain=outputconnection-mark=VaoWAN1new- routing-mark=DiraWAN1passthrough=yes addaction=mark-routingchain=outputconnection-mark=VaoWAN2new- routing-mark=DiraWAN2passthrough=yes

→Việc đánh dấu các kết nối ở cụm số 1 được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối đánh dấu ở Cụm 1 được luân chuyển sang đúng các đường đi mà chúng đã đi vào.

Hướng dẫn cấu hình load balancing mikrotik

Các kết nối đánh dấu ở Cụm 2 được luân chuyển sang đúng các đường đi mà chúng đã đi vào.

Cụm 5:

/ip route addcheck-gateway=pingdistance=1gateway=pppoe-out1routing- mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing- mark=DiraWAN2

→ Lập đường đi mới từ các đường đi Internet có sẵn kèm theo gán nhãn cho các đường mới này, tương ứng “DiraWAN1” và “DiraWAN2”.

Hướng dẫn cấu hình load balancing mikrotik

Dựa vào đường đi chính đã có sẵn để hiện thực hóa đường đi đã khởi tạo trước đây.

1.2.3. Một số trường hợp trong PCC. Trường hợp 1. Loại bỏ một IP/Dải IP ra khỏi cân bằng tải PCC. Để loại bỏ một IP ra khỏi cân bằng tải theo PCC Hoặc bạn sử dụng lệnh: addaction=acceptchain=preroutingsrc-address=192.168.1.254in- interface=BridgeLAN Hoặc sử dụng giao diện

Hướng dẫn cấu hình load balancing mikrotik

Để loại bỏ một dải IP ra khỏi cân bằng tải theo PCC, bạn cần khởi tạo một danh sách mới với tên “DSIPKhongCBT” chẳng hạn, Hoặc sử dụng dòng lệnh

/ip firewall mangle ip firewall address-list add address=192.168.1.254 list=DSIPKhongCBT add action=accept chain=prerouting in-interface=BridgeLAN src-address- list=!DSIPKhongCBT

Hoặc sử dụng giao diện

Hướng dẫn cấu hình load balancing mikrotik

Hướng dẫn cấu hình load balancing mikrotik

Trường hợp 2: Định tuyến một IP/Dải IP trong cân bằng tải PCC.

Yêu cầu ! Với một dải IP từ 192.168.1.1–254 đang sử dụng kết hợp cân bằng tải PCC. Bạn mong muốn dải IP từ 192.168.1.100-200 sử dụng đường Internet số 1; 192.168.1.201-254 sử dụng đường Internet số 2.

Để thực hiện định tuyến một IP/Dải IP (Sử dụng Address List cho dải IP),bạn cần thực hiện 2 bước sau. Bước 1. Đưa IP hoặc danh sách IP vào lệnh của Mangle với các thông số Chain Prerouting, Src. Address hoặc Src Address List, Action=mark routing, new connection mark=DiraWAN1.

Chẳng hạn:

Lệnh bên dưới giúp bạn tạo danh sách 100 IP nằm trong danh sách DSIPQuaWAN1 :for x from=100 to=200 do={/ip firewall address-list add address=”192.168.1.$x” list=DSIPQuaWAN1}

Lệnh bên dưới giúp bạn tạo danh sách 100 IP nằm trong danh sách DSIPQuaWAN2 :for x from=201 to=254 do={/ip firewall address-list add address=”192.168.1.$x” list=DSIPQuaWAN2}

Tiếp theo, bạn phải điều hướng cả 2 danh sách DSIPQuaWAN1 và DSIPQuaWAN2 đi qua mỗi đường WAN tương ứng, bằng cách sử dụng Mangle.

Hướng dẫn cấu hình load balancing mikrotik

Hướng dẫn cấu hình load balancing mikrotik

Thận trọng !

Cả 2 lệnh bắt buộc phải được di chuyển lên trên cùng trong danh sách Mangle.

Bước 2: Hiện thực hóa đường đi “DiraWAN1” và “DiraWAN2” trong bảng Route Do các đường đi “DiraWAN1” và “DiraWAN2” được cài đặt trong cân bằng tải trước đó, nên bạn hoàn toàn có thể kế thừa từ đó. Hoặc bạn cũng có thể khởi tạo mới trong bảng Route

Hướng dẫn cấu hình load balancing mikrotik

Trường hợp 3: NAT thiết bị trong cân bằng tải PCC. Mọi thiết bị trong mạng LAN khi qua cân bằng tải theo PCC luôn luân chuyển qua lại các đường Internet. Điều này, dẫn tới các kết nối từ bên ngoài Internet đi qua Router để hướng đến thiết bị trong mạng sẽ ngừng đột ngột hoặc không hoạt động. Để thực hiện: o Trước tiên, bạn cần phải gán cố định IP của thiết bị trong thẻ Lease (DHCP Server).

Hướng dẫn cấu hình load balancing mikrotik

o Sau đó, bạn thực hiện hoàn toàn theo Trường hợp 1 để loại bỏ IP ra khỏi cân bằng tải PCC.

Hướng dẫn cấu hình load balancing mikrotik

o Cuối cùng, bạn xác định đường Internet nào chính trong mạng và thực hiện phép NAT trên chính đường Internet đó. o Giả sử, đường pppoe-out1 là đường Internet chính.

Hướng dẫn cấu hình load balancing mikrotik

Trường hợp 4: Loại bỏ một dịch vụ qua cân bằng tải PCC.

Ý tưởng ! Nếu như bạn mong muốn các kết nối https (443) tới ngân hàng bị lỗi khi sử dụng cân bằng tải, bạn phải loại bỏ cổng 443 ra khỏi cân bằng tải PCC.

Hướng dẫn cấu hình load balancing mikrotik

Với dấu ! và cổng 443 trong thuộc tính Dst. Port, các kết nối kết nối ra ngoài Internet với cổng địch 443 luôn không được đánh dấu.