Some internet providers don’t like nor want to support custom routers in our homes.
Some of us will get lucky and manage to get the PPPOE connection up and running, some may not, some will keep getting disconnected after a while, etc.
In my experience it seems the problem is related to the MTU size.
What you want to know is that on a normal LAN connection the maximum value is 1500 bytes and on a PPPOE connection the theoretical maximum value is 1492.
So you have to discover the maximum supported MTU on your location (it could vary) and if you have a router that allows you to change the MTU (check the setup page of your router) lower it a little bit.
In my case the working MTU is 1480, it could be different for you.
1. Connect directly from your computer using your PPPOE connection.
2. Discover the MTU manually using the ping command. We have to subtract 28 bytes representing the header.
Start with maximum MTU 1492 (1492-28=1464):
ping -f -l 1464 google.com
If the answer is “Packet needs to be fragmented but DF set.” decrease the number and repeat the command.
If you get answer similar to “Reply from x.y.z.w: bytes=1452 time=18ms TTL=56” this is the maximum packet size.
3. Add back 28 to the packet size found and this should be your working MTU that you have to fill in your router setup page (ie: 1452+28=1480)
4. If you have a DD-WRT compatible product you could change the firmware and hopefully you can modify the MTU size (http://d-wrt.com/site/support/router-database)