You've done a lot of the initial work by adding the routes and checking the NVA logs, so the next critical step is to validate the actual traffic flow path. The fact that the AVD can reach URLs the NVA logs show as blocked strongly suggests a routing bypass.
To confirm this, you can use Azure Network Watcher's Connection Monitor feature.
How to Use Connection Monitor
Select Source and Destination: Configure a test in Connection Monitor with the AVD's private IP address as the source. For the destination, use the public IP address of one of the URLs the AVD can access but the NVA is blocking. You can use a tool like nslookup
or a website like whatsmydns.net to find the public IP for the URL.
Run the Test: Connection Monitor will trace the path of the network packets between the AVD and the destination IP.
Analyze the Results: The results will show you the exact route the traffic is taking. If the traffic is indeed bypassing the SLB/GWLB/NVA chain, the trace will reveal a direct route to the internet as the next hop, rather than going through your configured appliances.
This will provide a definitive answer as to whether the traffic is following your intended path or taking an alternative one.
Another check you can do is to verify the effective routes on the network interface of the AVD host. You can do this in the Azure portal: navigate to the AVD VM's network interface and look at the "Effective routes" under the "Support + troubleshooting" section. This view shows all the routes that apply to that specific network interface, including system routes, user-defined routes (UDRs) from a route table, and BGP routes. You can then compare these effective routes to your intended routing table to see if there are any unexpected system routes or other UDRs that are taking precedence and directing traffic to the internet.
This video provides an excellent visual tutorial on how to use Azure Network Watcher to diagnose network issues.