[SOLVED] Kaspersky VPN on OpenWrt with PBR — Per-Client Routing Alongside NordVPN

Hello everyone,

I had some difficulty getting Kaspersky VPN to work correctly with OpenWrt, especially when using it together with Policy-Based Routing (PBR).

I finally got it working and wanted to share the solution.

Environment

OpenWrt:      25.12.5
Target:       x86/64
OpenVPN:      2.7.6
PBR:          1.2.2-r20

LAN:          192.168.1.0/24
Router:       192.168.1.1

I have two VPNs running simultaneously:

NordVPN       → tun0
Kaspersky VPN → tun1

Goal

The objective was to route different LAN clients through different VPNs:

192.168.1.190 → NordVPN
192.168.1.121 → Kaspersky VPN
Other clients  → normal WAN

Kaspersky OpenVPN configuration

The important part of the Kaspersky .ovpn configuration is:

dev tun1

route-nopull
pull-filter ignore "redirect-gateway"
pull-filter ignore "dhcp-option"

This prevents Kaspersky VPN from replacing the router's global default route.

The VPN successfully creates:

tun1

and receives its VPN address dynamically.

PBR configuration

I created a PBR interface for the Kaspersky tunnel:

KasperskyPBR → tun1

The PBR policy is:

Source:    192.168.1.121
Interface: KasperskyPBR

The NordVPN client uses:

192.168.1.190 → VPNTunel → tun0

Important discovery

Initially, I tried to create a normal persistent OpenWrt network interface for tun1.

After reloading the network service, netifd interfered with the OpenVPN tunnel and the IPv4 address assigned to tun1 was removed.

The working approach was to let OpenVPN control tun1, while using a separate PBR interface KasperskyPBR to reference the tunnel.

Final result

Both VPNs are active simultaneously:

192.168.1.190 → PBR → tun0 → NordVPN
192.168.1.121 → PBR → tun1 → Kaspersky VPN
Other clients  → WAN

I tested both clients simultaneously with real Internet traffic.

Each client received a different public IP, confirming that the traffic was actually going through the correct VPN.

For privacy, the actual public IP addresses are not included in this post.

Final topology

                    ┌── 192.168.1.190 → NordVPN → tun0
LAN → OpenWrt → PBR ┤
                    └── 192.168.1.121 → Kaspersky → tun1

Other LAN clients → normal WAN

Conclusion

This configuration allows Kaspersky VPN and NordVPN to run simultaneously on the same OpenWrt router, with VPN selection performed on a per-client basis using PBR.

Additional LAN clients can be assigned to Kaspersky VPN simply by adding them to PBR policies.

Hopefully this is useful to anyone trying to run Kaspersky VPN on OpenWrt.

[SOLVED]