Hi Glenn
To achieve firewall inspection for both inbound and outbound flows using only one public IP, you can follow this architecture:
Configure a Standard Public Load Balancer with a Single Public IP for Inbound and Outbound Traffic.
1.Create Standard Public Load Balancer (LB) and assign a single public IP to the LB frontend then configure inbound rules to route traffic to Server D.
Set disableOutboundSnat = true on the inbound rule to preserve session symmetry.
2.Deploy Gateway Load Balancer (GWLB) with your firewall as the backend. Chain traffic from the LB to the GWLB for inspection.
3.Apply a UDR on Server D’s subnet, route 0.0.0.0/0 to the private IP of the GWLB.
This ensures outbound traffic from server D goes through the firewall.
4.Configure an outbound rule using the same frontend public IP as this allows SNAT for outbound traffic while maintaining inspection via GWLB.
5.This setup ensures that the firewall inspection for both inbound and outbound traffic and the session symmetry is maintained with only one public IP is used.
Refer this Microsoft documents for more information https://learn.microsoft.com/en-us/azure/load-balancer/outbound-rules
https://learn.microsoft.com/en-us/azure/load-balancer/tutorial-gateway-outbound-connectivity
I hope this helps! If these answers your query, do click the "Upvote" of which might be beneficial to other community members reading this thread.
If the above is unclear or you are unsure about something, please add a comment below.