I am working on a complex config on another router, for simplicity I have setup a new router with the utmost basic config for a L2TP server.
I can connect to the VPN using my Mac and iPhone and can get traffic through to most websites (MacBook works fine). However when I try and load google and some other sites from the iPhone – they do not load. I’m pretty sure this is MTU issue and I have tried changing the values aswell as added some mangle rules but still cannot get Google.com to load only on the iPhone. (Tested with Safari/Chrome) (Other things act strange aswell like the Apple AppStore won’t load (‘no connection error’)
Scenario:
iPhone over Cellular 5G > Mikrotik L2TP = Google Does not work / AppStore does not load / other sites like Netflix work.
MacBook > Tethered to iPhone (over 5G) > L2TP Established via MacBook to Mikrotik Router = Google Works, no issues
Working from the Internal LAN, Google works for iPhone and there’s no issues, so it’s something related when L2TP is added into the mix. Tried dropping MTU to 1280 on the L2TP but this did not help and did not break anything so reverted back to default.
I am assuming that the MacBook is better handling the MTU vs the iPhone, any suggestions?
Despite this being an issue for months across 2 different sites, performing the troubleshooting in my original post and replicating the issue on a router with a basic config, this issue suddenly resolved itself.
I encountered similar issue as OP. After connecting L2TP VPN to my mikrotik device using my iPhone, all the Google websites are not accessible while some other websites/internal websites can be accessed.
I have done some packet capture using the packet sniffer. It seems that those inaccessible websites are all supporting QUIC protocol (UDP443). I can see that the iPhone can successfully communicate with Google server [UDP port 443] bidirectionally. However, I also notice that the iPhone will also send a TCP 443 request to Google server and the iPhone suddenly reset the connection (illustrated as below).
iPhone → SYN → Google Server [TCP 443]
iPhone ← SYN, ACK ← Google Server [TCP 443]
iPhone → RST → Google Server [TCP 443]
I don’t know very much about QUIC protocol, but the behavior is very weird.
When I add the following firewall rule for blocking all QUIC protocol, then the issue is resolved.
Had exactly the same issue with QUIC/RST for l2tp/ipsec iPhone clients. The issue is not mikrotik-only, had it with other vendors as well. Finally managed to dump traffic, find RST/QUIC issues and found this thread by
iphone cellular vpn “quic” reset
Huge thanks for the hint. I wonder why QUIC to HTTPS fallback does not work with VPN, but it’s probably a question to Apple. Also there are ICMPs with dst unreachable (port unreachable) in the same UDP stream with faulty QUIC setup where dst is google/etc server and port is 443.