yep, known issue.
Potential causes:
If you use IP-address in your VPN config, or if you configured a static DNS entry, then:
Traffic towards your VPN server is sent directly via your ISP, but return traffic is sent via VPN provider thus never can be matched to the original request and is dropped.
If you use dynamicDNS in your VPN config:
Shortly after enabling VPN client, the previous still applies.
But at the next DDNS renewal, the ddns record will contain your VPN IP. -> whether it then again would start working, depends if you have a VPN provider that supports port-forwarding and whether you configured that port-forwarding for the VPN server.
Other potential issues with the 2nd situation:
I'm sure that starting / restarting the VPN client actually triggers a DDNS update. And also, if your VPN IP address would change, then I'm not sure that the DDNS immediatelly detects the IP-address change and updates the dns record.
my workaround:
I've put my router itself on the VPN bypass list. This is not possible via GUI, but requires editing /usr/bin/addon_bypassvpnip.sh
and then add this line somewhere just above the last "ip route flush cache"
Code:
[ "$(ip rule list | grep -c "iif lo lookup $NOVPN_TABLE")" = "0" ] && ip rule add iif lo table $NOVPN_TABLE
This workaround ensures that DDNS will still register my real public IP with DDNS. And it allows port-forwarded traffic to work again.