Không hẳn là do both-addresses-and-ports đâu ạ, chế độ đó hay chế độ L4 bên ECMP nói chung hoạt động ít gắp vấn đề ạ. Và bình thường cấu hình PCC đầy đủ thì cứ n đường WAN bác tạo n × 4 rule mangles nhưng theo như em thấy hình bác post thì không phải 4 rules như hình của bác ạ. Để em tóm tắt lại các rules cần thiết.
1) Đầu tiên là phần chuẩn bị. Bác nên tạo hai
interface list LAN và WAN, giống như phần Spoiler: Defconf Firewall của post này của em có ghi
thảo luận - Cộng đồng người dùng MikroTik Router (https://voz.vn/p/33673455/) và cho các interface pppoe-out vào list WAN, và các bridge/vlan vào list LAN như post đó em có ghi.
2) Sau đó bác có cần có 1
address list LAN chứa các dải địa chỉ local của bác, hoặc nếu không add chung chung các dải private và multicast vào cũng được, mục đích để lát nữa tạo ngoại lệ không áp dụng PCC với kết nối trong LAN
Mã:
/ip firewall address-list
add address=10.0.0.0/8 list=LAN
add address=172.16.0.0/12 list=LAN
add address=192.168.0.0/16 list=LAN
add address=224.0.0.0/4 list=LAN
3) Nếu dùng port forwarding với hairpin-NAT như bác thì có thêm address list WAN chứa địa chỉ IP public của router làm đích port forward như bác đã có sẵn rồi.
Tiếp theo là đến phần bảng mangle, em giả sử bác có n đường WAN và các bảng route đã tạo tên là WAN1, WAN2, WAN3, ..., WANn. Và các interface PPPoE tên là pppoe-out1, pppoe-out2, pppoe-out3, ..., pppoe-outn ạ.
4) Cho rule ở đỉnh bảng để bỏ qua PCC nếu đích đến là address list LAN và WAN (nếu bác không port forward thì không cần rule với address list WAN).
Mã:
/ip firewall mangle
add action=accept chain=prerouting dst-address-list=LAN in-interface-list=LAN
add action=accept chain=prerouting dst-address-list=WAN in-interface-list=LAN
5) Sau đó bác có n rules (n = số đường WAN) đánh dấu các kết nối bắt đầu từ ngoài internet, để biết chúng vào bằng đường nào:
Mã:
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=pppoe-out1 \
new-connection-mark=USE_WAN1 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=pppoe-out2 \
new-connection-mark=USE_WAN2 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=pppoe-out3 \
new-connection-mark=USE_WAN3 passthrough=yes
...
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=pppoe-outn \
new-connection-mark=USE_WANn passthrough=yes
6) Tiếp theo là n rules PCC ạ, bác chú ý thay cái n và (n - 1) thành số ứng với đường WAN. Tức là có 6 WAN thì n/0, n/1, n/2, n/(n-1) bác ghi là 6/0, 6/1, 6/2, 6/5 nhé.
Mã:
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface-list=LAN \
new-connection-mark=USE_WAN1 passthrough=yes \
per-connection-classifier=both-addresses-and-ports:n/0
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface-list=LAN \
new-connection-mark=USE_WAN2 passthrough=yes \
per-connection-classifier=both-addresses-and-ports:n/1
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface-list=LAN \
new-connection-mark=USE_WAN3 passthrough=yes \
per-connection-classifier=both-addresses-and-ports:n/2
...
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface-list=LAN \
new-connection-mark=USE_WANn passthrough=yes \
per-connection-classifier=both-addresses-and-ports:n/(n - 1)
7) Tiếp theo là n rules mark routing cho chain output, để cho trường hợp các kết nối từ ngoài vào router và được router trả lời, như ở trên em có nói, WAN1, WAN2, ..., WANn là tên bảng route bác đã tạo sẵn.
Mã:
/ip firewall mangle
add action=mark-routing chain=output connection-mark=USE_WAN1 \
new-routing-mark=WAN1 passthrough=no
add action=mark-routing chain=output connection-mark=USE_WAN2 \
new-routing-mark=WAN2 passthrough=no
add action=mark-routing chain=output connection-mark=USE_WAN3 \
new-routing-mark=WAN3 passthrough=no
...
add action=mark-routing chain=output connection-mark=USE_WANn \
new-routing-mark=WANn passthrough=no
8) Và cuối cùng là n rules mark routing cho các kết nối từ trong LAN ra ngoài, ở chain prerouting thay vì chain output:
Mã:
/ip firewall mangle
add action=mark-routing chain=prerouting connection-mark=USE_WAN1 \
in-interface-list=LAN new-routing-mark=WAN1 passthrough=no
add action=mark-routing chain=prerouting connection-mark=USE_WAN2 \
in-interface-list=LAN new-routing-mark=WAN2 passthrough=no
add action=mark-routing chain=prerouting connection-mark=USE_WAN3 \
in-interface-list=LAN new-routing-mark=WAN3 passthrough=no
...
add action=mark-routing chain=prerouting connection-mark=USE_WANn \
in-interface-list=LAN new-routing-mark=WANn passthrough=no
Bác thử thay nội dung bảng mangle của báng thành như em viết ở trên xem sao. Của bác n=2 nhé.