How do you integrate a branch network whose address space overlaps spokes

Steve Down 101 Reputation points
2022-05-11T20:44:15.903+00:00

I have a VWAN/Secure Hub topology in Azure with the hub and all of its internal spokes living in the 172.16.0.0/16 -> 172.24.0.0/16 spaces. Internally, this all works just fine.

Now I need to be able to integrate external data centers by Site-to-Site VPN, and I don't control the IP addressing of those data centers - they're other companies.

All of the Microsoft examples show internal spokes that don't conflict with branches - the branches can target internal spokes because those addresses don't conflict with that of the data center. I don't have that situation.

All of the documentation about integrating branch networks suggests using SNAT in the VPN gateway in the hub - translate the data center IP into something branch-specific, and off you go. That isolates branches from one another. But what about internal spokes? I need a data center to be able to target an internal spoke resource, like a VM.

My understanding would be that I could use DNAT in the firewall policy to translate traffic into the appropriate spoke.

Here's the problem - I can't create a DNAT rule without using the public IP of the firewall - I don't want to do that, because I want the traffic to be completely internal to the hub. I also don't want to have to 1) allocate a public IP to every resource, and/or 2) play games with custom port numbers to keep the IP count down.

Ultimately, I want a completely private network way of allowing a customer to target one of my internal resources, where our addresses may overlap. A diagram of what I'd like to accomplish is attached.

Can I do this without other infrastructure? Can I do it at all?

201222-external-access-with-conflicting-ip-spaces.png

Azure Virtual WAN
Azure Virtual WAN
An Azure virtual networking service that provides optimized and automated branch-to-branch connectivity.
197 questions
Azure Firewall
Azure Firewall
An Azure network security service that is used to protect Azure Virtual Network resources.
600 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Steve Down 101 Reputation points
    2022-05-11T21:51:52.783+00:00

    I may be answering my own question - both IngressSnat rules and EgressSnat rules do SNAT, but they also do DNAT in the opposite direction, according to the documentation. I'm testing that now. Was so focused on the ingress side of my equation that I didn't consider I'd need another rule.

    So, if it's all correct:

    IngressSNAT = SNAT for ingress, DNAT for egress, and
    EgressSNAT = SNAT for egress, DNAT for ingress