Feature Request: Ignore any split-second lte link down state

From the time I purchased the Chateau LTE12, I have not been able to use it as a router. Every time the LTE connection goes down for a split second (which can happen several times an hour), it breaks all active TCP connections, i.e. downloads, video calls, etc all freeze or drop out.

Up until now, the only workaround I found is to pass-through the LTE connection to an Ethernet port and use another router to do the routing. The second router never sees the split second LTE interruptions and thus never breaks active TCP connections. There is just a slight pause in voice/video calls.

I recently bought the Chateau 5G in a hope that the split second LTE interruptions was a modem issue with the LTE12 model. However, they still occur:
LTE brief interruptions.png
So as a feature request, I would like a setting to give a grace period before marking an LTE connection as down. I.e. it would be better to drop packets during the split-second interruption than close the route, breaking active TCP connections.

That’s a result of using action=masquerade in NAT. Using action=srcnat instead is a solution. This will require manually specifying your public IP address, however.

Thank you very much for clarifying that, something I wish I knew about back when I bought the LTE12 model. I did not know it was the masquerade action that was causing this. Even when I created a support ticket with MikroTik, they insisted that there was no way to prevent the router clearing its connections when the LTE link flapped, which is why I finally bought another router to do the NAT routing.

I can confirm that src-nat maintains the connection, where a large download continued after the LTE link made a split second down/up.

Having never written a script before (had no need to with the LTE12 working as a dumb modem), I managed to cobble together a script from bits and pieces that updates the src-nat to-address each time the LTE IP address changes:

:global currentIP;

:local newIP [/ip address get [find interface="lte1"] address];

:if ($newIP != $currentIP) do={
    :put "ip address $currentIP changed to $newIP";
    :set currentIP $newIP;
    /ip firewall nat set [find action=src-nat] to-address=$currentIP
    /ip firewall connection remove [find]
}

I have it set on a 30 second schedule. This way the NAT connections are only cleared when the public IP address changes, but not when the LTE link acts like a butterfly. :smiley: