@Grote, Justin Just to explain the below route table:
Effective routes :
Address Prefix Next hop type Next hop IP address Status Source
-------------- ------------- ------------------- ------ ------
- {10.0.1.0/24} VNETLocal Active -----------------> This route is the longest prefix and would match traffic within the subnet 10.0.1.0/24 so that intra subnet traffic does not go to the firewall
- {10.0.0.0/16} VirtualAppliance 10.0.0.4 Active -------------> This route comes into picture for intra vnet traffic which needs to go the firewall
- {0.0.0.0/0} VirtualAppliance 10.0.0.4 Active -------------> This route comes into picture for all other traffic which also needs to go the firewall
The reason you have both 10.0.1.0/24 and 10.0.0.0/16 is because for the given scenario they needed to push all non-subnet traffic including same vnet traffic to the firewall but make same subnet traffic directly reach the destination. Hope this helps.