Thank you for reaching out.
Based on your questions above.
Overriding the route in vWAN route table, as described above => Not working Overriding the route in vWAN vnet connection => Not working
This observation is a known limitation of Azure WAN routing and is documented here - "Virtual WAN wouldn't be able to inject a route that matches the virtual network prefix (10.1.0.0/16) or any of the subnets (10.1.0.0/24, 10.1.1.0/24). In other words, Virtual WAN can't attract traffic between two subnets that are in the same virtual network."
Is there a way to force a subnet to go through the NVA before it reaches any other subnet (even one of the same vnet) in vWAN ? We would like to avoid if possible the use of UDR because it add complexity in the design and break the “one point of routing management” concept of vWAN.
As documented here. Azure automatically creates system routes and assigns the routes to each subnet in a virtual network. You can't create system routes, nor can you remove system routes, but you can override some system routes with custom routes. Azure creates default system routes for each subnet, and adds more optional default routes to specific subnets, or every subnet, when you use specific Azure capabilities.
For your scenario here I think you will have to use UDR in order to route the traffic to the NVA.
As you mentioned above
The aim is to force traffic to an NVA (not managed by vWan)
Just a suggestion, I wonder if this architecture can help you in this case. Where you can route traffic through a network virtual appliance (NVA) for communication between virtual networks and branches by using VNET peering.
Hope this helps! Please let me know if you have any additional questions. Thank you!
Please "Accept the answer" if the information helped you. This will help us and others in the community as well.