Hello guys, I have 3 interner fibers with 300mgbps connected to 2011il router for PCC Load balancing. The problem is that the total bandwidth I get is 100mbps. Can anyone tell me what the problem is?
PCC is not load combining, its load balancing.
So each new session is rotated through all WANs somewhate equally.
No where will you get one sessions that uses the throughput of two or more WANs at the same time.
Toying with it myself lately … this is how I understood it works.
PCC is not true load balancing from what I learned. It’s connection balancing (hence the name: PCC = Per Connection Classifier)
It will distribute connections but that can be a connection of 10Mbps, one of 20 Mbps and one of 100Mbps. 3 connections distributed.
Load balancing ? Not really.
However, due to the nature of most traffic and connections it will more or less use all connections equally given “normal” traffic (in relation to how the connection specifiers have been set, it is possible to put more emphasis on 1 connection over the others).
If you do a single speedtest (which is NOT an example of normal traffic), it can be perfectly possible using PCC this goes over 1 connection only and that will be your limit.
OP:
3 connections of 300Mbps each or 300Mpbs total as in 3x 100 Mbps ?
without knowing the details of your setup (diagram) and your config (export) nobody will be able to tell where the problem is without leaving the theoretical area.
thank you so much for your explanation,
3 connections of 300Mbps each or 300Mpbs total as in 3x 100 Mbps ?
3 connections of 300Mbps each and the total is about 800Mbps.
here is the configuration :
/interface bridge
add name=bridge_LAN
/interface ethernet
set [ find default-name=ether1 ] name=ether1_WAN1
set [ find default-name=ether2 ] name=ether2_WAN2
set [ find default-name=ether3 ] name=ether3_WAN3
set [ find default-name=ether4 ]
set [ find default-name=ether5 ]
set [ find default-name=ether6 ]
set [ find default-name=ether7 ]
set [ find default-name=ether8 ]
/interface list
add name=WAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MIKROTIK
/ip pool
add name=dhcp_pool0 ranges=192.168.10.101-192.168.10.254
/ip dhcp-server
add address-pool=dhcp_pool0 interface=bridge_LAN name=dhcp1
/port
set 0 name=serial0
/routing table
add disabled=no fib name=ISP1
add disabled=no fib name=ISP2
add disabled=no fib name=ISP3
/interface bridge port
add bridge=bridge_LAN interface=ether4
add bridge=bridge_LAN interface=ether5
/interface list member
add interface=ether1_WAN1 list=WAN
add interface=ether2_WAN2 list=WAN
add interface=ether3_WAN3 list=WAN
/ip address
add address=192.168.2.2/30 interface=ether2_WAN2 network=192.168.2.0
add address=192.168.10.1/24 interface=ether5 network=192.168.10.0
add address=192.168.1.2/30 interface=ether1_WAN1 network=192.168.1.0
add address=192.168.3.2/30 interface=ether3_WAN3 network=192.168.3.0
/ip dhcp-server network
add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1
/ip dns
set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=ether1_WAN1 new-connection-mark=\
ISP1_conn passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=ether2_WAN2 new-connection-mark=\
ISP2_conn passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new in-interface=ether3_WAN3 new-connection-mark=\
ISP3_conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP1_conn \
new-routing-mark=ISP1 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP2_conn \
new-routing-mark=ISP2 passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3_conn \
new-routing-mark=ISP3 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface=bridge_LAN \
new-connection-mark=ISP1_conn passthrough=yes per-connection-classifier=\
src-address-and-port:3/0
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface=bridge_LAN \
new-connection-mark=ISP2_conn passthrough=yes per-connection-classifier=\
src-address-and-port:3/1
add action=mark-connection chain=prerouting connection-mark=no-mark \
connection-state=new dst-address-type=!local in-interface=bridge_LAN \
new-connection-mark=ISP3_conn passthrough=yes per-connection-classifier=\
src-address-and-port:3/2
add action=mark-routing chain=prerouting connection-mark=ISP1_conn \
in-interface=bridge_LAN new-routing-mark=ISP1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP2_conn \
in-interface=bridge_LAN new-routing-mark=ISP2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3_conn \
in-interface=bridge_LAN new-routing-mark=ISP3 passthrough=yes
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
/ip route
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
8.8.8.8 pref-src="" routing-table=ISP1 scope=30 suppress-hw-offload=no \
target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
1.1.1.1 pref-src="" routing-table=ISP2 scope=30 suppress-hw-offload=no \
target-scope=11
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
192.168.1.1 routing-table=main suppress-hw-offload=no
add check-gateway=ping disabled=no distance=2 dst-address=0.0.0.0/0 gateway=\
192.168.2.1 routing-table=main suppress-hw-offload=no
add comment=monitor disabled=no distance=1 dst-address=8.8.8.8/32 gateway=\
192.168.1.1 pref-src="" routing-table=main scope=10 suppress-hw-offload=\
no target-scope=10
add comment=monitor disabled=no distance=1 dst-address=1.1.1.1/32 gateway=\
192.168.2.1 pref-src="" routing-table=main scope=10 suppress-hw-offload=\
no target-scope=10
add comment=monitor disabled=no distance=1 dst-address=8.8.4.4/32 gateway=\
192.168.3.1 pref-src="" routing-table=main scope=10 suppress-hw-offload=\
no target-scope=10
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
8.8.4.4 pref-src="" routing-table=ISP3 scope=30 suppress-hw-offload=no \
target-scope=11
add check-gateway=ping disabled=no distance=3 dst-address=0.0.0.0/0 gateway=\
192.168.3.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=\
no target-scope=10
The poor router, I think. Time to invest in something more beefy, like a RB5009 or CCR2004.
To be sure, watch the CPU load of the router while you are testing.
(1) So far so good,
(2) Ooops missing stuff!! – > where is the LAN interface list and list members…
Need typically
/interface list
add name=LAN
/interface list members
add interface=bridge_LAN list=LAN
(3) REAL PROBLEM…
This is wrong!!
add address=192.168.10.1/24 interface**=ether5** network=192.168.10.0
Should be…
add address=192.168.10.1/24 interface**=bridge_LAN** network=192.168.10.0
(4) You need to be very clear on what your expectations for routes is…
Assuming you wish all three WANS to be used and via PCC roughly equally.
Why do you have recursive routing AKA are all the three providers different? ISP1, ISP2, ISP3.
If they are from the same company then if the company is down, all three lines are down and no point getting overly fancy.
If they are all different ISPs then you need to decide.
if 1 is down, use 2 and 3
if 2 is down use 1 and 3
if 3 is down use 1 and 2
(3) > REAL PROBLEM> …
This is wrong!!
add address=192.168.10.1/24 interface> =ether5 > network=192.168.10.0Should be…
add address=192.168.10.1/24 interface> =bridge_LAN > network=192.168.10.0
sorry my bad
Why do you have recursive routing AKA are all the three providers different? ISP1, ISP2, ISP3.
If they are from the same company then if the company is down, all three lines are down and no point getting overly fancy.If they are all different ISPs then you need to decide.
if 1 is down, use 2 and 3
if 2 is down use 1 and 3
if 3 is down use 1 and 2
yes all the ISP1,ISP2 AND ISP3 are from different companies and I’m using recursive routes because when one of them went down the route still active inside the routing table and causing an routing problem.
In that case, this is what your routes should look like…
Be advised I used 8.8.8.8, 1.1.1.1 and 9.9.9.9 for WAN3 as 8.8.4.4 is the same as 8.8.8.8 ( or more to the point if there is an issue with 8.8.8.8 there is a chance that 8.8.4.4 would be affected and thus not a useful independent choice!
/ip route
FARTHEST HOP (main table recursive)
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=
8.8.8.8 routing-table=MAIN scope=10 target-scope=14
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=
1.1.1.1 routing-table=MAIN scope=10 target-scope=14
add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=
9.9.9.9 routing-table=MAIN scope=10 target-scope=14
{ This properly reflects that all are available on the main table as viable routes }
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NOW WE ADD CASES FOR FAILURE - each routing Table has 3 possibilities ( the PCC preference and then the failovers )
(IF WAN1 FAILS then use ISP2 for WAN1 Traffic and if ISP2 Fails shift traffic to ISP3 )
distance=1 dst-address=0.0.0.0/0 gateway=8.8.8.8 scope=10 target-scope=14 routing-table=ISP1-route
distance=2 dst-address=0.0.0.0/0 gateway=1.1.1.1 scope=10 target-scope=14 routing-table=ISP1-route
distance=3 dst-address=0.0.0.0/0 gateway=9.9.9.9 scope=10 target-scope=14 routing-table=ISP1-route
IF WAN2 fails then use ISP1 for WAN2 Traffic and if ISP1 fails then shift traffic to ISP3
distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1 scope=10 target-scope=14 routing-table=ISP2-route
distance=2 dst-address=0.0.0.0/0 gateway=8.8.8.8 scope=10 target-scope=14 routing-table=ISP2-route
distance=3 dst-address=0.0.0.0/0 gateway=9.9.9.9 scope=10 target-scope=14 routing-table=ISP2-route
IF WAN3 fails then use ISP1 for WAN3 traffic and if ISP1 fails then shift traffic to ISP2
distance=1 dst-address=0.0.0.0/0 gateway=9.9.9.9 scope=10 target-scope=14 routing-table=ISP3-route
distance=2 dst-address=0.0.0.0/0 gateway=8.8.8.8 scope=10 target-scope=14 routing-table=ISP3-route
distance=3 dst-address=0.0.0.0/0 gateway=1.1.1.1 scope=10 target-scope=14 routing-table=ISP3-route
Then we deal with the closest HOP to finish the recursive started on the first routes above (main table)!
/ip route
add dst-address=8.8.8.8/32 gateway=ISP1-gateway-IP scope=10 target-scope=13
add dst-address=1.1.1.1/32 gateway=ISP2-gateway-IP scope=10 target-scope=13
add dst-address=9.9.9.9/32 gateway=ISP3-gateway-IP scope=10 target-scope=13
I didnt see any firewall rules, if you do have them make sure fasttrack is disabled in the forward chain.
Thank you so much for the information