hellt / vrnetlab

Make VM-based Network OSes run in Containerlab
https://containerlab.dev
MIT License
129 stars 88 forks source link

Changed RouterOS nic driver from e1000 to virtio to fix RouterOS MTU bug #207

Closed NoifP closed 5 months ago

NoifP commented 5 months ago

On RouterOS 6.x.x with e1000 network driver vlan sub-interfaces with MTU > 1500 do not function properly (they have an MTU of 234 !). On RouterOs 7.x.x they function fine.

I tested with both virtio and vmxnet3 drivers.

hellt commented 5 months ago

👍

NoifP commented 5 months ago

@hellt I have since found out that this has the side effect of breaking LACP. It appears that Mikrotik CHR does not transmit LACP when using virtio driver (but works fine with e1000 driver). I observed this when packet capturing on the CHR itself with same firmware, same config and only changing the NIC driver.

It may be a conscious decision by Mikrotik to prevent CHR breaking underlying virtual infrastructure with stray LACP packets (or it may just be a bug). Either way for my use case my labs do not work without jumbo MTUs and bonds can be easily reconfigured to be active/passive without needing negotiation.

For anyone else who comes across this LACP issue with Mikrotik RouterOS CHR on QEMU maybe you can reconfigure all bonds on the CHR by appending the following to your config: /interface bond set [find] mode=active-backup

hellt commented 5 months ago

Thanks I wonder if you tried recent versions of chr?

NoifP commented 5 months ago

Yup, I tried on v6.x.x and v7.x.x with the same result.

hellt commented 5 months ago

alright, at least we follow the official documentation regarding the choice of a driver. We can make a note in the docs covering the LACP thing