/interface ethernet set [ find default-name=ether1_for_customer_delegation ] mtu=1520
i am a newbie still learning around can you comment on my issues since you seem a expert in here.The forum supports attaching images without forcing users to see your advertising banners.
Thanks for this detailed replyDo you have a VLAN interface underneath the pppoe-out interface? Maybe you can temporarily turn on logging for PPPoE by adding a new rule for that topic under System -> Logging:
pppoe-log.png
You should see in the log that, when initiating the PPPoE connection, your router broadcasts PADI messages, with ppp-max-payload=xxxx (1492 if you didn't set Max MTU and Max MRU, otherwise their value will be here).
The other side will send back a PADO message. Does it message also include a ppp-max-payload parameter (it would if the PPPoE server supports RFC 4638)? If yes, is the number smaller than 1492?
After that your router will send out PADR message, and get back PADS message. Then there will be several LCP messages being sent back and forth. Do they specify the mru value (such as 1492)? With the LCP messages, the two sides will also agree on the MRU value (MRU of the other side is MTU for your side). Is the agreed MRU value still 1492 or has it been lowered after the LCP exchanges?
Then authentication will be performed. Once this is done, your router will do something that I think is relevant to your issue: It will try to send a LCP echo message with a very large payload, the payload will be chosen so that the packet reaches the MTU/MRU agreed above (in this example below 1484 + 8 = 1492):
pppoe-mru-6.png
If the PPPoE server sends back a EchoRep reply with the same payload length, then the MTU/MRU value is valid and will be displayed in Actual MTU in WinBox. If, however, the underlying ethernet layer could not send a packet that big, no EchoRep will arrive. After a timeout RouterOS will reduce the MTU/MRU of the connection to 1480.
Because my ISP supports RFC 4638, I can replicated this issue by making a PPPoE connection with Max MTU and Max MRU set to something that will later cause the EchoReq message to be larger than my L2MTU. My L2MTU is 1510 and I'll try to create a PPPoE connection with Max MTU = Max MRU = 1506:
pppoe-mru-9.png
Red arrow is my router setting ppp-max-payload in PADI and blue arrow is my ISP saying that that's ok because it supports RFC 4638. Next is the agreement on MRU and PAP as authentication method:
pppoe-mru-10.png
Authentication succeeded, and here you can see my router sending out the EchoReq message to test whether a packet with size 1506 could really be sent (1498 + 8 = 1506).
pppoe-mru-11.png
This packet will require the ethernet layer to be able to send 1514 bytes payload (1506 + 8 = 1514), but my L2MTU is only 1510:
pppoe-mru-12.png
So it could not be sent, and no reply will be received. After a few more tries RouterOS will drop the Actual MTU to 1480!
pppoe-mru-13.png
I suspect this is what happened with your configuration, it also explains the 5-second delay before the MTU drop (it's the wait for the EchoReq tries). And I have seen others observing the same problem, and one thing they have in common with you is that they were also running RouterOS on x86.
I suspect that your network adapter has a low upper limit for the max possible MTU (what MikroTik normally shows with L2MTU). Maybe the adapter supports ethernet frame just large enough for the usual ethernet header and trailer for a 1500-byte IP packet. That's why I asked above if you have VLAN set up. Normally with VLAN the ethernet frame must be able to grow by 4 more bytes, if you still want to be able to send an IP packet of 1500 bytes. MikroTik hardwares all have L2MTU > 1500 + 4 so you can always enable VLAN and have no problem with MTU 1500. But that's not necessarily true of the network adapter in your x86 build. Does the adapter have a setting toggle for VLAN support?
i will report back this evening thanks for your inputs hope mikrotik guys are reading this and making some changes to their PPPOE stack.Yes, from the screenshots of the log, it looks like it happened like I described above. In the new log screenshots both ends of the tunnel now has agreed on MRU = 1492, after successful authentication your router send a test packet with 1484 bytes payload. Together with the LCP header and the Magic number (total 8 bytes) it forms a 1492 bytes PPP payload packet (equals MTU and MRU). But either this packet cannot be sent to the other side, or the reply message (LCP EchoRep, which will be of the same size) does not arrive from the other side, hence the "missed echo reply" log message. RouterOS then drops Actual MTU to 1480 as the result.
Can you try to gradually reduce Max MTU and Max MRU 2 bytes at a time (1490,1488, 1486, etc...) to see at which size the LCP EchoReq packet can be successfully sent, and LCP EchoRep successfully received?
Brilliant analysis!!!!!!!!!! as you told mtu/mru 1488 is accepted finally and now i have 1488 as actual mtu ,Wish we could make it 1492 any chance i already see perceived improved latency in my system now...ThanksYes, from the screenshots of the log, it looks like it happened like I described above. In the new log screenshots both ends of the tunnel now has agreed on MRU = 1492, after successful authentication your router send a test packet with 1484 bytes payload. Together with the LCP header and the Magic number (total 8 bytes) it forms a 1492 bytes PPP payload packet (equals MTU and MRU). But either this packet cannot be sent to the other side, or the reply message (LCP EchoRep, which will be of the same size) does not arrive from the other side, hence the "missed echo reply" log message. RouterOS then drops Actual MTU to 1480 as the result.
Can you try to gradually reduce Max MTU and Max MRU 2 bytes at a time (1490,1488, 1486, etc...) to see at which size the LCP EchoReq packet can be successfully sent, and LCP EchoRep successfully received?
There are no options through winbox to change L2mtu of pppoe parent interface perhaps through cli can you tell me the command to do so??It sort of looks like there are 4 bytes required.
Perhaps the pppoe comes on a vlan (quite common)
Or perhaps they are adding a priority vlan header.
Can you manually set the l2mtu of the interface to something higher than 0
eg. 1504
Perhaps via webfig/winbox/cli if you can't do it from the mobile.
Yes presently i am running on proxmoxx hypervisor on x86 boxes with intel nic and i have in past run direct on this box also result is same no differenceYou can only change L2MTU on MikroTik made devices. You have a x86 system with network adapters not in control of MikroTik so that is not possible. Do you run RouterOS directly on the mini PC or do you have a hypervisor in between?
interesting will report back soon with findings!!!!If you use Proxmox, can you try in Proxmox to increase the MTU value of:
* The network device (ensXXXX) corresponding to the port connecting to the ISP
* The corresponding Linux bridge over that port
to, let's say 1540 (assuming the network adapter support jumbo frames)? Or are you using NIC passthrough (if this is the case try switching to virtio)?
i tried again this morning with 1540 mtu on wan interfaces across the board also in mk pppoe tried to play with mtu but only 1488 works any other value it defaults to 1480 .........interesting will report back soon with findings!!!!If you use Proxmox, can you try in Proxmox to increase the MTU value of:
* The network device (ensXXXX) corresponding to the port connecting to the ISP
* The corresponding Linux bridge over that port
to, let's say 1540 (assuming the network adapter support jumbo frames)? Or are you using NIC passthrough (if this is the case try switching to virtio)?
hello people
i have ros 17.7 x86 on a bare metal mini pc ,my issue is my isp provides mtu 1492 (i have tested on VYOS/OPNSENSE it is indeed this and it works without any issues )but on mk ros it always defaults to 1480 .
I tried changing parent interface mtu to 1508/1504 also pppoe interface max mtu to 1492/1500 but actual mtu goes to 1492 after any change for 5 secs then reverts back to 1480.
why this strange behavior
Edit after help from community i have been able to bump mtu to 1488 ,but still not 1492
Not just VYOS I checked with openwrt/opnsense/ipfireHence why I asked (x86 example), why it works on VYOS and not on RoS. Just curious.
a. either the MT follows the standard and is correct
b. or the VYOS follows the standard and is correct
c. or the VYOS does some bastardized implementation that allows it to work.
WHich is plausible??
I had to reply to a user in another topic and I found yet another post resurrected to draw attention to his problem with 1492 / 1480 MTU.
But the user still doesn't understand the difference between L2 and L3 MTU,
and RouterOS doesn't support all the functions on non-RouterBOARD hardware or that doesn't have fully compatible drivers inside RouterOS...
Everyone else seems annoyed but it seems to me you have a point. No one has presented any logic on the x86 issue, stating why vyos works and RoS does not.Not just VYOS I checked with openwrt/opnsense/ipfireHence why I asked (x86 example), why it works on VYOS and not on RoS. Just curious.
a. either the MT follows the standard and is correct
b. or the VYOS follows the standard and is correct
c. or the VYOS does some bastardized implementation that allows it to work.
WHich is plausible??
It's something to do with ROS !!!!!!!! Or maybe I am plain stupid...
Unzip the .npk and you have the list of what kext are inside the RouterOS...and RouterOS doesn't support all the functions on non-RouterBOARD hardware or that doesn't have fully compatible drivers inside RouterOS...
And what have I written so far?It would seem there is something lacking in RoS.
Last VyOS release is ~600MB,Can these drivers be added?
NIC drivers on RouterOS 7.18.1 for CHR / x86_64 5.6.3 kernel (2020)ù
2006: Intel(R) PRO/100 Network Driver e100
2020: Intel(R) PRO/1000 Network Driver e1000 7.3.21
2015: Intel(R) PRO/1000 Network Driver e1000e 3.2.6
2016: Intel(R) Gigabit Virtual Function Network Driver 2.4.0
NIC drivers on VyOS 6.6.79 kernel (2025)
2006: Intel(R) PRO/100 Network Driver e100 6.6.79
2006: Intel(R) PRO/1000 Network Driver e1000 6.6.79
2015: Intel(R) PRO/1000 Network Driver e1000e 6.6.79
2025: Intel(R) 10GbE PCI Express Linux Network Driver ixgbe 6.0.6
2025: Intel(R) 10GbE PCI Express Virtual Function Driver 5.0.2
2019: Intel(R) Ethernet Connection XL710 Network Driver i40e 6.6.79
2018: Intel(R) Ethernet Adaptive Virtual Function Network Driver iavf 6.6.79
2018: Intel(R) Ethernet Connection E800 Series Linux Driver ice 6.6.79
And here I only compared Intel hardware/virtual, not counting all the others.
Obviously RouterOS still to 5.6.3 kernel (2020) can not use directly new drivers...
I have little IT knowledge of such things, as I admitted earlier, but many have used x86 and not reported such difficulties, so I can only assume that it works fine for some users.My humble mind is asking me why publish a image x86 if it doesn't support x86 anyways will see their answer
There are already some complaints on the forum about the same thing on x86 systems because you can't change the MTU from 1500 to more.I can only assume that it works fine for some users.
Reply from Mikrotik support: "Seems like some HW limitation, try using hypervisor and install CHR, this will allow to deal with hw incompatibilities if such arise. We do not create drivers for hw, they are based on Linux kernel."
viewtopic.php?t=214801#p1130469which ones are included in each ROS version remains a big mystery
which Linux kernel NIC drivers Mikrotik chooses to opt in when compiling RouterOS is unknown.
ThanksReply from Mikrotik support: "Seems like some HW limitation, try using hypervisor and install CHR, this will allow to deal with hw incompatibilities if such arise. We do not create drivers for hw, they are based on Linux kernel."
@himurae; that reply from Mikrotik support is not entirely correct.
Both ROS x86_64 and ROS CHR does require drivers for various platform NICs, including CHR hardware drivers for NICs to support SR-IOV. Although, which ones are included in each ROS version remains a big mystery due to the lack of adequate documentation (which, ironically, is a mystery too!). In other words, which Linux kernel NIC drivers Mikrotik chooses to opt in when compiling RouterOS is unknown.
Check out my previous reply on how to change MTU in different virtual environments.
Please read post earlier I am reattaching quotes from experienced member@CGGXANNXSince all the internet, or at least 90% (ahem...) transmits with MTU at 1500,
you will never have problems with MTU at 1480/1492 in PPPoE because in this regard I think that nobody connects via PPPoE to a host hosted on a cloud...
The PPPoE MTU is more related to those who play at home with RouterOS,
or some company that to save money buys toys instead of a serious RouterBOARD (and if the ISP knows how to do its job and provides an MTU of 1500...).
I never say so, what i say is already readable.Please read post earlier [...]The PPPoE MTU is more related to those who play at home with RouterOS,
or some company that to save money buys toys instead of a serious RouterBOARD (and if the ISP knows how to do its job and provides an MTU of 1500...).
So stop saying my isp is not doing good job IT SUPPORTS MTU OF 1500 and uses RFC4638....
why does VyOS only go to 1492 instead of 1500???
/interface vlan
add comment=ISP interface=ether1 mtu=1508 name=VF_VLAN_10 vlan-id=10
/interface ethernet
set [ find default-name=ether1 ] comment="ISP_ONT" mtu=1508
so I have manually set MTU of ether1 to 1508. As ISP uses VLAN10 a VLAN interface was added for ether1 also with an MTU of 1508
@CGGXANNX Yes you are right i have never specified mtu on any of my interface but i do use "set interfaces pppoe pppoe0 ip adjust-mss ‘clamp-mss-to-pmtu’ i will this evening set mtu on pppoe/parent interface (eth0 in my case ) to 1500 and eth1 lan interface to 1508 will report my findings !!!!!!!!!!!!!!!!!!!!!!! Thanks again for your valuable insight even the Vyos guys never mention it.!!!!why does VyOS only go to 1492 instead of 1500???
For VyOS to set ppp-max-payload=1500 in the PADI message the OP will need to do the following:
* Set mru and mtu on the pppoe interface to 1500 (E.g. set interfaces pppoe pppoe0 mru 1500 / set interfaces pppoe pppoe0 mtu 1500), or delete both (don't let them at 1492).
* Increase the MTU of the internet interface to at least 1508 (this is not needed in RouterOS but it's a must in VyOS, I just tested and if you don't do this there is no ppp-max-payload parameter in PADI/PADR).
OP probably did not explicitly do that. In that case 1492 is the max negotiated MRU value for both sides (MRU of one side is MTU of the other side).
As already written in other posts, the MTU must be 1500 everywhere, when is not needed to be changed.But the user still doesn't understand the difference between L2 and L3 MTU,
As already written, either you buy a RouterBOARD or you use bare metal hardware compatible with RouterOS x32_64,I need all the support from each and everyone of you
Same here (hap ax3 user)...I could never get mtu 1492 pppoe client...always goes back to mtu 1480, no matter how i manually set mtu mru etc..Reply from mikrotik
—-—-—-—
Please REPLY ABOVE THIS LINE ^ (for faster response, use our support portal).
Hello
We do not see any software errors in the supout rif file. There must be some device in the middle that causes this issue.
Thanks
Everyone who replied is giving valuable input we are so close to resolving this issue people ,i am willing to put my 100% in this to get it to work and just on the verge of purchasing CHR..
I need all the support from each and everyone of you,like i said this forum has much knowledgeable than others which i am part of!!!
So lets resolve this
Thats what i was telling many people have this issue but they have just accepted and moving on ,but we must all keep trying till we suceed now strange thing is you are using a supported device still you have issues...Same here (hap ax3 user)...I could never get mtu 1492 pppoe client...always goes back to mtu 1480, no matter how i manually set mtu mru etc..Reply from mikrotik
—-—-—-—
Please REPLY ABOVE THIS LINE ^ (for faster response, use our support portal).
Hello
We do not see any software errors in the supout rif file. There must be some device in the middle that causes this issue.
Thanks
Everyone who replied is giving valuable input we are so close to resolving this issue people ,i am willing to put my 100% in this to get it to work and just on the verge of purchasing CHR..
I need all the support from each and everyone of you,like i said this forum has much knowledgeable than others which i am part of!!!
So lets resolve this
But when I use my openwrt router (pppoe client), I can get mtu 1492 automatically.
Same here (hap ax3 user)...I could never get mtu 1492 pppoe client...always goes back to mtu 1480, no matter how i manually set mtu mru etc..
But when I use my openwrt router (pppoe client), I can get mtu 1492 automatically.
@CGGXANNX UR THE MAN!!!!!!! vyos pppoe is now 1500why does VyOS only go to 1492 instead of 1500???
For VyOS to set ppp-max-payload=1500 in the PADI message the OP will need to do the following:
* Set mru and mtu on the pppoe interface to 1500 (E.g. set interfaces pppoe pppoe0 mru 1500 / set interfaces pppoe pppoe0 mtu 1500), or delete both (don't let them at 1492).
* Increase the MTU of the internet interface to at least 1508 (this is not needed in RouterOS but it's a must in VyOS, I just tested and if you don't do this there is no ppp-max-payload parameter in PADI/PADR).
OP probably did not explicitly do that. In that case 1492 is the max negotiated MRU value for both sides (MRU of one side is MTU of the other side).
@LarsaThis is how you change the MTU in a virtual environment running CHR (or any other virtual guest).
Windows Hyper-V
- With SR-IOV: MTU can be changed directly by CHR.
- Without SR-IOV (using the Hyper-V virtual switch): MTU must be set on the host first and then on the virtual switch for changes to take effect in CHR.
Linux KVM and similar
- With SR-IOV/PCI Passthrough: MTU can be changed directly by CHR.
- With Bridge or NAT: MTU must be set on the host first for changes to take effect in CHR.
For SR-IOV to work properly, a specific NIC driver must be installed on both the host and the virtual guest. The host needs a driver that supports SR-IOV for the physical NIC, while the guest must have a compatible driver for the Virtual Function (VF) of the NIC. If the driver is missing on either side, the guest won’t be able to use the SR-IOV interface correctly.
yes your inputs have been very valuable my friend ,you are a senior member in this forum if possible send this information to the team..Not to insist, but I've been writing this since the beginning...
Yes!!!!!!! Finally someone has found out the real issue @Flannels wonderful work man so as per you deployment of RFC4638 test is the reason for this issue in particularThis may be useful to you:
viewtopic.php?t=215423
This is not the same since pppoe server is from Mikrotik not outside, look in this post for actual reasonJust for the records: Mikrotik <-> Mikrotik gives 1492 with no additional settings except identity
A suggestion to the Topic Author and other interested on it:Just for the records: Mikrotik <-> Mikrotik gives 1492 with no additional settings except identity
Hey... This "the one" of the few things I really like in MikroTik.I could provide that if could you guide me how to do a packet capture in chr in a easy way ?
Same here (hap ax3 user)...I could never get mtu 1492 pppoe client...always goes back to mtu 1480, no matter how i manually set mtu mru etc..Reply from mikrotik
—-—-—-—
Please REPLY ABOVE THIS LINE ^ (for faster response, use our support portal).
Hello
We do not see any software errors in the supout rif file. There must be some device in the middle that causes this issue.
Thanks
Everyone who replied is giving valuable input we are so close to resolving this issue people ,i am willing to put my 100% in this to get it to work and just on the verge of purchasing CHR..
I need all the support from each and everyone of you,like i said this forum has much knowledgeable than others which i am part of!!!
So lets resolve this
But when I use my openwrt router (pppoe client), I can get mtu 1492 automatically.
Flashed to my hap ac2...Stil the same...1-2 second only on 1492 and back to 1480.
Same here (hap ax3 user)...I could never get mtu 1492 pppoe client...always goes back to mtu 1480, no matter how i manually set mtu mru etc..
But when I use my openwrt router (pppoe client), I can get mtu 1492 automatically.
ok there has been response from support@ mikrotik they have made some changes for pppoe Finally!!!!!!!
But i have a x86 box and there is no chr/iso image in this can someone test it and give feedback!!
https://box.mikrotik.com/d/bc148d4405e94feaa2cc/
i know i tested it myself and told them they are implementing something new for pppoe users now lets wait and seeFlashed to my hap ac2...Stil the same...1-2 second only on 1492 and back to 1480.
ok there has been response from support@ mikrotik they have made some changes for pppoe Finally!!!!!!!
But i have a x86 box and there is no chr/iso image in this can someone test it and give feedback!!
https://box.mikrotik.com/d/bc148d4405e94feaa2cc/
So, does the PCIe Passthrough (82599ES ) show SFP information ? or is it just shown as regular ethernet port ?Just my two cents.
I'm inclined to think it's your ISP.
I'm currently running a CHR on Proxmox 8.3.4 with a dual Intel 10Gbps NIC via PCIe Passthrough (82599ES 10-Gigabit SFI/SFP+ Network Connection (rev: 1))
ISP is Vodafone Ireland FTTH and uses PPPoE served on VLAN10. The default PPPoE interface MTU was 1492 as expected. However Vodafone support baby jumbos so I have manually set MTU of ether1 to 1508. As ISP uses VLAN10 a VLAN interface was added for ether1 also with an MTU of 1508
Code: Select all/interface vlan add comment=ISP interface=ether1 mtu=1508 name=VF_VLAN_10 vlan-id=10 /interface ethernet set [ find default-name=ether1 ] comment="ISP_ONT" mtu=1508
PPPoE interface is under the VLAN interface and has automatically assigned MTU of 1500 and everything works as expected.
pppoe1.png
pppoe2.png
Hi, does anyone know if MikroTik has released a definitive fix for this issue?Update !!! mikrotik is working on a implementation to disable RFC4638 test they emailed me the same..
Ok, many thanks, just sent!not yet in the meantime please send emails to Oskar at support@mikrotik.com and mention this specifically so he understands "Could RouterOS launch an option that allows you to disable the RFC4638 test. since my pppoe mtu defaults to 1480"