Trong bi viết ny chng ta sẽ sử dụng phương php PCC để cấu hnh cn bằng tải.

KỸ THUẬT PCC (PER CONNECTION CLASSIFIER):
+ PCC sử dụng thuật ton HASH để tạo ra một gi trị 32-bit từ một vi trường của IP Header: source address, source port, destination address, destination port.. Sau đ sẽ tiến hnh chia dư với mẫu số chia l tỉ lệ cn bằng tải, tử số l gi trị thu được từ thuật ton HASH. Kết quả sẽ l gi trị để phn biệt giữa cc luồng lưu lượng.
+ Tiếp đến sẽ đnh dấu phn biệt cc luồng đ bằng mark connection v mark routing. Cuối cng sẽ định tuyến ra đường truyền tương ứng.

Chng ta sẽ chia việc cấu hnh thnh 2 giai đoạn: Phn loại luồng lưu lượng v định tuyến luồng lưu lượng tương ứng với đường truyền.

1. Phn loại luồng lưu lượng: Sẽ c 2 loại lưu lượng cần quan tm đối với cn bằng tải: lưu lượng từ bn ngoi internet đi vo router v lưu lượng nội bộ đi ra ngoi internet.

1.1 Lưu lượng từ bn ngoi router:

Code:
/ip firewall mangle
add action=mark-connection chain=input connection-mark=no-mark in-interface=ether1 new-connection-mark=wancnn1 passthrough=yes
add action=mark-connection chain=input connection-mark=no-mark in-interface=ether2 new-connection-mark=wancnn2 passthrough=yes
add action=mark-routing chain=output connection-mark=wancnn1 new-routing-mark=wan1 passthrough=no
add action=mark-routing chain=output connection-mark=wancnn2 new-routing-mark=wan2 passthrough=no
Hai dng lệnh "add" đầu tin c nhiệm vụ ghi nhớ v đnh dấu "wancnn1","wancnn2" cc lưu lượng đi vo đường truyền tương ứng.
Hai dng lệnh "add" cuối c nhiệm vụ lin kết luồng lưu lượng đ được đnh dấu ny vo bảng định tuyến của từng đường truyền tương ứng.
Việc ny sẽ đảm bảo việc truy cập cc dịch vụ từ xa vo Router một cch bnh thường khng bị ảnh hưởng bởi việc cấu hnh cn bằng tải.

1.2 Lưu lượng đi ra ngoi Internet:

Code:
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=bridge1 new-connection-mark=wan1cnn \
    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=bridge1 new-connection-mark=wan2cnn \
    passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting connection-mark=wan1cnn in-interface=bridge1 new-routing-mark=wan1 passthrough=no
add action=mark-routing chain=prerouting connection-mark=wan2cnn in-interface=bridge1 new-routing-mark=wan2 passthrough=no
Hai dng lệnh "add" đầu tin c nhiệm vụ phn loại lưu lượng thnh 2 loại bởi PCC. Ở đy chng ta đang dng PCC both-addresses-and-ports, tức l PCC sẽ phn loại lưu lượng l khc nhau khi c sự thay đổi ở một trong cc yếu tố source,destination address v ports của kết nối. Việc ny sẽ gip chng ta c thể tn dụng được băng thng của cả 2 đường truyền trong một phin kết nối (C nhiều dịch vụ sẽ khng hỗ trợ v dẫn đến kết nối khng ổn định đối với dịch vụ đ). Chế độ ổn đinh v ph hợp hầu hết cc trường hợp l Both-addresses, Router sẽ gửi dữ liệu ra đường truyền khc khi c sự thay đổi ở source hoặc destination address của kết nối.

Hai dng lệnh "add" cuối c nhiệm vụ lin kết cc luồng lưu lượng đ được phn loại vo bảng định tuyến của cc đường truyền tương ứng. Cụ thể l lưu lượng được phn loại "wan1cnn" l được lin kết vo bảng định tuyến của đường truyền 1 v lưu lượng ny sẽ được gửi ra đường truyền 1, tương tự với lưu lượng "wan2cnn".

2. Định tuyến lưu lượng

Code:
/ip route
add check-gateway=ping distance=1 gateway=192.168.3.7%ether1 routing-mark=wan1
add check-gateway=ping distance=1 gateway=192.168.3.7%ether2 routing-mark=wan2
Sau khi đ được phn loại v lin kết vo bảng định tuyến ở phần 1. Phần ny chng ta sẽ định tuyến cc lưu lượng đ được phn loại ra đường truyền tương ứng.
Ở bi hướng dẫn ny, chng ta sử dụng hai đường truyền với IP tĩnh nn phần "gateway" cần khai bo địa chỉ IP của gateway, đối với đường truyền PPPoE chng ta chỉ cần đặt tn của giao điện PPPoE tương ứng.