Trong các bản build Windows 10 mới nhất, bạn có thể tự động thêm route tĩnh khi thiết lập kết nối VPN. Khi kết nối VPN bị ngắt, route sẽ tự động bị xóa khỏi bảng định tuyến Windows. Để thêm route IPv4 hoặc IPv6 cho kết nối VPN, cmdlet PowerShell Add-VpnConnectionRoute được sử dụng.
Tất nhiên, bạn có thể thêm thủ công route cho kết nối VPN qua command prompt, nhưng chúng sẽ bị xóa sau khi ngắt kết nối VPN. Vì vậy, lần sau khi kết nối VPN, bạn sẽ phải thêm route thủ công lại.
Giả sử, bạn chỉ muốn lưu lượng của hai subnet (192.168.11.0/24 và 10.1.0.0/16) được định tuyến qua kết nối VPN của bạn, và lưu lượng khác đi qua nhà cung cấp dịch vụ (ISP).
Mở bảng điều khiển PowerShell và hiển thị danh sách các kết nối VPN đã cấu hình trong Windows:
Get-VpnConnection

Trước hết, bỏ chọn tùy chọn Sử dụng default gateway trên mạng từ xa. Bạn có thể làm điều này trong thuộc tính kết nối VPN trong Control Panel hoặc bằng lệnh dưới đây:
Set-VpnConnection –Name workVPN -SplitTunneling $True
Tìm hiểu thêm về SplitTunneling trong bài viết Mất kết nối Internet sau khi kết nối VPN.

Hãy thêm hai route tĩnh cho kết nối VPN của chúng ta:
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.11.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 10.1.0.0/16 –PassThru
Trong tùy chọn DestinationPrefix, chỉ định subnet hoặc địa chỉ IP host bạn muốn định tuyến lưu lượng qua VPN. Để thêm một host đơn lẻ bằng địa chỉ IP, hãy sử dụng định dạng sau: 10.1.1.26/32.

DestinationPrefix : 192.168.11.0/24 InterfaceIndex : InterfaceAlias : workVPN AddressFamily : IPv4 NextHop : 0.0.0.0 Publish : 0 RouteMetric : 1
Nếu kết nối VPN của bạn đang hoạt động, bạn sẽ cần kết nối lại để các route mới được thêm vào bảng định tuyến.

Các route mới được gắn liền với kết nối VPN và chỉ được thêm khi kết nối được thiết lập. Khi bạn ngắt kết nối khỏi máy chủ VPN, các route sẽ tự động bị xóa.
Ngắt kết nối khỏi VPN và kiểm tra bảng định tuyến. Route đến mạng từ xa của bạn đã bị xóa tự động, và Get-NetRoute trả về route không tìm thấy:
Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.11.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute

Để xóa hoàn toàn route tĩnh cho kết nối VPN, sử dụng lệnh:
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru
Nếu bạn muốn thay đổi thứ tự phân giải tên DNS với kết nối VPN đang hoạt động, hãy đọc bài viết này.
Trong các phiên bản Windows trước (Windows 7/ Windows Server 2008R2), để thêm động route sau khi thiết lập kết nối VPN, bạn phải sử dụng CMAK và các script với lệnh add route.
Ví dụ, bạn có thể tạo file batch vpn_route.netsh để thêm một số route tĩnh.
interface ipv4 add route prefix=192.168.11.24 interface="workVPN" store=active add route prefix=10.1.0.0/16 interface="workVPN" store=active exit
Bạn có thể chạy file này bằng Task Scheduler kích hoạt sau khi kết nối VPN được thiết lập (sự kiện RasMan 20225 trong Event Viewer).
schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:\PS\vpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data='My VPN']]"