HAP AC2 + NAS + MTU (Jumbo Frames)

Hello everyone! I hope some one can help me.

I have HAP AC2. almost “out of the box” setup (or I can go from default).
I have just bought NAS (QNAP TS-231P) that supports port trunking and Jumbo Frames.
Port trunking (named Bonding by Mikrotik) works just fine. Problem is with jumbo frames.

As per documentation and router, HAP AC2 supports L2MTU up to 9214.

My port setup:
ether1 - modem.
ether2 - local network + simple non managed switch D-Link GO-SW-8G (supports Jumbo Frames up to 9720 bytes)
ether3 - local network
ether4 + ether5 = NAS - 802.3ad L2+L3 bonding
everything except ether1 (obviously) is bridged.
All ports use 1gb link.

 /interface print
Flags: D - dynamic, X - disabled, R - running, S - slave 
 #     NAME                                TYPE       ACTUAL-MTU L2MTU  MAX-L2MTU MAC-ADDRESS      
 0  R  ether1                              ether            1500  1598       9214 74:4D:28:XX:XX:XX
 1  RS ether2                              ether            1500  1598       9214 74:4D:28:XX:XX:XX
 2   S ether3                              ether            1500  1598       9214 74:4D:28:XX:XX:XX
 3  RS ether4                              ether            1500  1598       9214 74:4D:28:XX:XX:XX
 4  RS ether5                              ether            1500  1598       9214 74:4D:28:XX:XX:XX
 5  RS wlan1                               wlan             1500  1600       2290 74:4D:28:XX:XX:XX
 6  RS wlan2                               wlan             1500  1600       2290 74:4D:28:XX:XX:XX
 7  RS NAS                                 bond             1500  1598            74:4D:28:XX:XX:XX
 8  R  ;;; defconf
       bridge                              bridge           1500  1598            74:4D:28:XX:XX:XX

I have tried either increasing both MTU to 9000 and L2MTU to 9214 or L2MTU to 9000 on single port or all ethernet ports.

  • Both MTU and L2MTU = everything works fine for some time (minutes to hours) then router kind of crashes because of the traffic and soft reboots (kernel panic) - not recognised by IP or MAC. access only from Wi-Fi to revert the MTU settings.
  • Only L2MTU - ethernet crashes instantly.

I am no network engineer but usually I have no issues with MikroTik and I love it for config possibilities, but this MTU/Jumbo Frames seems to be above my current knowledge.
More i read, less I understand.
https://wiki.mikrotik.com/wiki/Manual:Maximum_Transmission_Unit_on_RouterBoards
https://wiki.mikrotik.com/wiki/Manual:Layer2_misconfiguration

Perhaps somebody will tell me I’m wrong … but it seems that hAP ac² switch chip (integrated in IPQ4018 SoC, feature-wise based on AR8327) contains a few nasty bugs which makes wired interfaces non-working if triggered. And they trigger in conditions that are result of completely valid, but less frequent, deployment.

So far I’ve experienced similar effects (blocking of all wired ports) when configuring VLANs on switch chip. Tied to VLAN setup is a bug which prevents from running PPPoE over VLAN access port …

Large MTU might fall into same category.

Unless someone gives me clear answer I have ditched Jumbo Frames.
I have even read that every single device supposed to use Jumbo Frames in mu LAN so I’d have to kind of separate regular MTU from Jumbo frames. I like the idea of Jumbo Frames but it seems too much hassle for home based network.
It works quite OK with 104MB/s read and write over SMB and NFS without Jumbo Frames.

hm… tricky. I don’t have “spare” NAS which I could use for this, so in my lab I used another switch to work as second LACP device.

Few points from testing:

  • My lab diagram: [computers]—eth1[switch]eth7+eth8===eth4+eth5[RBD52G]eth2—[computer].
    (= is bonded eth, - is single eth)
  • bonding on RBD52G (hAP ac^2) is not HW accelerated
  • you might find yourself getting actually lower speeds than without bonding given the fact that all traffic has to go through CPU
    • fortunately RBD52G features 2Gbit shared line between switch chip and CPU so at least you won’t get limited to 1Gbit duplex like with some other routerboards but it might still hit a limit of single CPU core.
    • In my case, when running iperf I got around 88% on single core, which consised of 50% Ethernet, 23% networking and 15% bridging. Other cores were practically unused. Achieved speed was 934Mbit
    • With second test when I connected two computers on each end, I actually achieved more - around 1800Mbit. Interestingly, CPU usage remained same!
  • Both computers are equipped with Intel network cards (I217 and I211) and their jumbo frames were set to 9014 (other options are 4088 / off)
  • Switch (D-Link DGS-1210-10P) was set to trunk two ports using LACP and jumbo frames were set to “enabled” (size is not adjustable - according to web interface, it is 9216. Assuming its L2)
  • RBD52G was set to trunk eth4+eth5 using 802.3ad with L2/L3 hash policy. based on ether stats, I am confident it is really bonding as both interfaces show RX/TX packets simultaneously.
  • RBD52G had its L2MTU set to 9214 and MTU set to 1500 on all related ethernet interfaces (eth2, 4 and 5) and it worked - large packets were succesfully transmited between computers: ****
ping xxx -s8900 -Mdo

(size 8900, prohibit fragmentation)

So far RBD52G did not crash but I will leave it as it is for couple of days and if I find any issue, I will report back :slight_smile:

I am unsure why would your device instantly crash..

  • does whole device crash?
  • only Ethernet Ports crash?
  • does it affect Eth1 (wan) as well?
  • are bridged eth ports hw offloaded? (obviously not the bonding interface and bonded ports)
  • what ROS version?

Personally I think that your jumbo frames will not affect the performance much (maybe not at all) but it is still interesting situation.

If you have latest version of ROS and your crash produced autosupout, it would be good to send it to support@mikrotik.com so guys from Latvia can have a look and fix it.