I have a PPPoE connection over a bridged ADSL Modem, I have a contract speed of 12 Mbps, but I only get 6 Mbps with Mikrotik, if I run the PPPoE connection over the Windows Client or the Router/Modem given by my ISP I get the full 12 Mbps connection speed.
I´ve tried to solve this issue by modifing the MTU and MRU parameters but it didn’t work at all.
I have a Tp-Link 8616 modem and a Technicolor tg582n in bridge mode, and with both of them i can connect with my pc PPPoE client at full speed (12 Mbps)
I have a Mikrotik RB951G-2hnd that always connects in half speed (6 Mbps) with the following config:
Right now it has the most basic config, even the firewall is disabled, but I’ve tried upgrading the Firmware, changing the default MTU/MRU, different Firewall configurations and even Queue Trees but nothing seems to work, it always gets a 6 Mbps connection.
I can’t see anything obviously wrong in your config.
Two things came to my mind:
PPPoE can handle a MTU up to 1492, but your provider can use a lower value. You could try to successively decerease the MTU on the PPPoE interface.
I don’t see anything in your config giving reason to mind CPU load, but please check the router’s CPU load when pushing traffic over it. What do you observe?
Can you post some details about how you measure this? From the MikroTik itself, or from a client behind?
If it’s a client behind the MikroTik, is it wired or wireless? If it’s wireless, can you try connecting directly to the MikroTik via wire, just to rule out a possible bad wlan?
Regarding MTU:
A often used way to determine actual MTU of a path is pinging the remote side with a ping of a given sized and the DF (=dont fragment) bit set. Keep in mind, that you have to add 36 bytes to the used ping size to get the MTU (20 bytes for the IP header and 8 bytes for ICMP). Starting from a ping length of 1500 you decrease the value of the -l parameter step by step (for example by 50 every step).
As long as the packets must be fragmented, you wont get a successful response. As soon as your chosen -l parameter value (+28 bytes) is less than the actual MTU, you’ll get a successful response.
On windows you can yous ping. The parameter -f is “don’t fragment” and -l the size of the ping’s payload.
From my machine it looks like this:
Step 1)
ping -f -l 1500 8.8.8.8
→ no successful reponse in my case: decrease value of -l 50
Step 2)
ping -f -l 1450 8.8.8.8
→ successful response, increase value of -l by 25
Step 3)
ping -f -l 1475 8.8.8.8
→ no successful reponse: decrease value of -l by 12
Step 4)
ping -f -l 1463 8.8.8.8
→ successful response: increase value of -l by 1
Step 5)
ping -f -l 1463 8.8.8.8
→ successful response: increase value of -l by 1
Step 6)
ping -f -l 1464 8.8.8.8
→ successful response: increase value of -l by 1
Step 7)
ping -f -l 1465 8.8.8.8
→ no successful response.
Last working value was 1464. Adding 28 bytes from IP header and ICMP leads to 1492, which is the MTU of my PPPoE session.
You should configure your PPPoE clients MTU according to the value you determined by using the shown “ping technique”.
Thanks for your replies, I’ve been testing with the MTU, it appears that my ISP supports a MTU of 1492 but I still set it to 1480 (Mikrotik’s default value just in case).
Regarding the CPU load I’ve been testing as well and it never reach 15% of CPU load in normal conditions.
I still get the 6 Mbps when I should get 12 Mbps, what’s funny is that when I setup a PPPoE connection over Windows or I use the Router/Modem (which has many other issues) provided by my ISP I get the 12 Mbps speed.
I thought it was some kind of bug because I’ve seen some similar topics in other Forums (without solution as well) and I have the same problem at home and in my office (with the same ISP, maybe is some kind of incompatibility) so I’ll keep researching.
So thanks again for your replies, if you have any other suggestions they are very welcome, if I find any solution to this issue I’ll let you know.
I guess you’re always talking about a wired connection from your computer to the router for testing the throughput, right?
Another thing I could imagine: You provider artificially limits the bandwidth when another device is connected. Determine the MAC address of the WAN interface of the router/modem provided by your ISP. Configure this MAC on the MikroTik’s interface connected to the WAN. Does this change anything?
In the first place, I’m sorry I had been unable to post a reply before, I was on a business trip and I wasn’t able to perform any test.
In second place I’m very happy to tell you, that your last tip has solved my problem, so just as you’ve posted, I got the MAC address of the WAN interface of the router/modem provided by my ISP and used that MAC address in the MikroTik’s interface, then restarted the bridged modem and the MikroTik and voila! 12 Mbps (I know, very low speed connection compared to your connections in Europe and the USA but here in Mexico is hard to find a reliable ISP).
So thanks a lot to everyone who took some time to assist!
Hopefully this may help someone else having this issue.
Sorry for bumping up an old thread, but I’am facing the same problem. If I dial my modem from PC it got full speed, but If I dial from mikrotik, it only get half speed.
How did you get your modem Mac address, and how did you add it to Mikrotik interface?
Thank you
You can get the modem WAN MAC by connecting it at any port and going to IP->ARP, them set the WAN interface by: http://forum.mikrotik.com/t/how-to-change-mac-address/15778/1
“/interface ethernet set ether1 mac-address=xxx” provided ethernet WAN is port ether1.