Ngày nay, càng nhiều các nhà sản xuất thiết bị mạng cung cấp nhiều phương pháp khác nhau để khách hàng có sự chọn lựa khi sử dụng nhiều liên kết Internet đồng thời. Một trong số đó có thể kể đến là sử dụng phép định tuyến nhiều phân đoạn mạng, phép NAT nhiều liên kết Internet, phép cân bằng tải với thuật toán độc quyền.v.v... Chà! Lần này, chúng tôi sẽ cùng thảo luận về danh sách các chủ đề cân bằng tải trên các bộ định tuyến Mikrotik. Cân bằng tải được sử dụng để phân phối tải lưu lượng kết nối trên hai hoặc nhiều đường kết nối một cách cân bằng để lưu lượng chạy tối ưu, để tối đa hóa băng thông thông lượng thu được từ nhà cung cấp. Ngoài ra, cân bằng tải có thể được sử dụng để giảm thời gian đáp ứng và tránh quá tải trên một đường kết nối. Có một số phương pháp cân bằng tải nâng cao mà chúng tôi có thể sử dụng, bao gồm ECMP (Kiểu Cost) , PCC (Kiểu Weighted Balance, Kiểu Enforced, Kiểu Least Used, Kiểu Persistence), Traffic Monitor (Kiểu Overflow), NTH (Randoom)... PCC (Per-Connection Classifier) là thuật toán độc quyền xây dựng trên nền tảng hệ điều hành RouterOS bởi Mikrotik, sử dụng bằng cách lấy trường đã chọn từ tiêu đề IP , sau đó với sự trợ giúp của thuật toán băm chuyển trường đó thành 32-bit. Giá trị này sau đó được chia cho một trọng số nhất định và phần còn lại sau đó được so sánh với kết quả nào đó , nếu nó giống nhau thì gói tin sẽ được đánh dấu. Các quy tắc có thể được tạo bằng cách chọn thông tin từ địa chỉ src , dst-address , src-port hoặc dst-port từ tiêu đề IP. Trọng số. Đây là chỉ số có thể quyết định định lượng cân bằng lưu lượng giữa các liên kết Internet bằng cách phân phối theo tỉ lệ lưu lượng đối với liên kết./ Một ví dụ có thể hình dung là chúng tôi muốn 40% lưu lượng sử dụng liên kết Internet số 1, trong đó phần còn lại sẽ hoạt động trên liên kết Internet còn lại. Bằng cách thực hiện phép tính tỉ lệ 40%/60%, sẽ là tương ứng tỉ lệ 4/6, chúng tôi gán trọng số 10 cho tất cả lưu lượng trong mạng. Kết quả khi thực hiện qua thuật toán PCC, phép đánh dấu kết quả của hàm sẽ là 10/0; 10/1; 10/2; 10/3 -> Chuyển tiếp qua liên kết Internet số 1; trong khi 10/4; 10/5; 10/6; 10/7; 10/8; 10/9 -> Chuyển tiếp qua liên kết Internet số 2. Khá đơn giản đúng không nào! Đây chỉ mới là một trong số các trường hợp tính toán tỉ lệ trong thuật toán PCC. Ngoài phép tính tỉ lệ, PCC còn kết hợp với hàng loạt các thuộc tính có sẵn trong tường lửa để tạo ra hàng loạt phương pháp cân bằng tải mới. Tất cả sẽ có trong các bài thảo luận sau này của MVN.
Dưới đây là một cấu trúc cơ bản.

1./ Cấu hình kết nối Internet cho bộ định tuyến.
Bộ định tuyến kết nối 2 đường Internet kiểu PPPoE có địa chỉ IP công cộng động, trong đó mạng cục bộ có địa chỉ 172.16.0.1/24. Đối với kết nối Internet PPPoE, cấu hình sẽ tương tự như các bài viết trước đó. Người dùng có thể xem tại liên kết này.

2./ Định tuyến theo chính sách.
Bước đầu tiên, lưu lượng truy cập giữa mạng cục bộ không phải xử lý bởi PCC, bằng cách sử dụng hành động chấp nhận.

Câu lệnh có thể thực hiện. /ip firewall mangle add action=accept chain=prerouting dst-address=172.16.0.0/24 src-address=172.16.0.0/24
Bước tiếp theo, để quản lý các kết nối được bắt đầu từ bên ngoài vào bộ định tuyến, kết nối trả lời từ bộ định tuyến phải đi ra qua cùng một giao diện (từ cùng một IP công cộng) khi có yêu cầu kết nối. Thực hiện đánh dấu (mark) để đánh dấu tất cả các kết nối đến, để ghi nhớ giao diện được sử dụng.

Hãy lưu ý chuỗi prerouting trong hàng động đánh dấu các kết nối. Đối với các kết nối trỏ tới bộ định tuyến, đã bao gồm các kết nối tới bộ định tuyến và kết nối vào mạng cục bộ, chuỗi prerouting thực hiện "bắt" tất cả & đánh dấu với tên đánh dấu "WAN1In" và "WAN2In".
Tiếp theo, thêm quy tắc PCC để chia lưu lượng thành hai nhóm dựa trên địa chỉ nguồn và địa chỉ đích (cả hai địa chỉ). Vì tốc độ kết nối của hai ISP là giống nhau (30 Mbps và 30 Mbps), chúng tôi chia tải lưu lượng thành 2 (hai) phần. Một phần đầu tiên sẽ đi qua cổng ISP-1 và 1 phần còn lại sẽ đi qua cổng ISP-2. Để tránh việc đánh dấu các lưu lượng từ mạng cục bộ truy cập tới bộ định tuyến, chúng tôi sẽ sử dụng dst-address-type =!local cho các chuỗi.


Sau khi quy tắc PCC được tạo, hãy thêm hành động đánh dấu định tuyến dựa trên dấu kết nối đã được tạo. Bởi vì định tuyến chính sách chỉ áp dụng cho lưu lượng truy cập ra/vào internet. Đừng quên định tuyến [1] Lưu lượng đã đánh dấu từ mạng cục bộ và [2] lưu lượng truy cập vào bộ định tuyến từ bước trước đó.




Sau đây là tổng hợp các quy tắc về việc tạo đánh dấu cân bằng tải PCC trên mangle trong tường lửa.

Và tập lệnh /ip firewall mangle add action=accept chain=prerouting dst-address=172.16.0.0/24 src-address=172.16.0.0/24 add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-out1 new-connection-mark=WAN1In passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-out2 new-connection-mark=WAN2In passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local new-connection-mark=X passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0 src-address=172.16.0.0/24 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local new-connection-mark=Y passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1 src-address=172.16.0.0/24 add action=mark-routing chain=prerouting connection-mark=X new-routing-mark=WAN1Out passthrough=yes src-address=172.16.0.0/24 add action=mark-routing chain=prerouting connection-mark=Y new-routing-mark=WAN2Out passthrough=yes src-address=172.16.0.0/24 add action=mark-routing chain=output connection-mark=WAN1In new-routing-mark=WAN1Out passthrough=yes add action=mark-routing chain=output connection-mark=WAN2In new-routing-mark=WAN2Out passthrough=yes
Sau khi cấu hình đánh dấu kết nối và đánh dấu định tuyến hoàn tất, hãy thêm quy tắc định tuyến mặc định vào menu IP > Route, quy tắc này dựa trên định tuyến đánh dấu đã được thực hiện trước đó. Sau đây là một ví dụ về dòng lệnh được sử dụng. /ip route add check-gateway=ping distance=1 gateway=pppoe-out1 routing-mark=WAN1Out add check-gateway=ping distance=1 gateway=pppoe-out2 routing-mark=WAN2Out

Thử nghiệm.
Chúng tôi có thể thực hiện một số thử nghiệm để chứng minh cấu hình PCC đang chạy tốt. Một cách đơn giản là tải một số tệp từ Internet. Tải càng nhiều tệp, kết nối thiết lập nhiều hơn và chúng tôi có thể phát hiện lưu lượng hoạt động trên các tuyến đường khác nhau.

Từ kết quả kiểm tra ở trên, khi tải xuống tệp đầu tiên (1 kết nối) bạn nhận được tốc độ 291 KBps qua ISP-1, sau đó tải lại tệp (kết nối mới) trên một máy chủ khác, bạn nhận được tốc độ là 21.2 KBps thông qua ISP-2.
Thử nghiệm tiếp theo, chúng tôi có thể thử là mở nhiều video trên một website.

Từ kết quả thử nghiệm trên, khi truy cập video trên một website khác, có thể thấy cả 2 đường truyền ISP đều hoạt động đồng thời. Có thể thấy phát sinh lưu lượng cả kết nối (ISP 1) và (ISP 2). Tốc độ 42.6 Mbps và 11.3 Mbps đã được tiêu thụ.
Nói chung, cân bằng tải PCC cung cấp các giao tiếp khác nhau cho mỗi lưu lượng mà chúng tôi đã đánh dấu trước đó. Bằng cách này, một liên kết Internet có thể giảm thiểu quá tải, bởi lưu lượng được phân bổ sang một kết nối khác, trong khi đó kết nối còn lại vẫn phục vụ. Tất nhiên, chúng tôi có thể khai thác băng thông trong nhiều điều kiện khác nhau để phục vụ.
Hoàn tất cài đặt.