{"id":25749,"date":"2022-03-16T13:54:55","date_gmt":"2022-03-16T13:54:55","guid":{"rendered":"https:\/\/cloud-cod.com\/?p=25749"},"modified":"2022-03-17T08:31:48","modified_gmt":"2022-03-17T08:31:48","slug":"overlapping-ips-in-public-clouds","status":"publish","type":"post","link":"https:\/\/cloud-cod.com\/index.php\/2022\/03\/16\/overlapping-ips-in-public-clouds\/","title":{"rendered":"Overlapping IPs in Public Clouds"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Today&#8217;s topic: the overlapping IPs<\/h2>\n\n\n\n<p>The topic is huge. You might hit this problem everywhere. What are the major reasons why organizations have this problem? I would say:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Lack of proper IPAM to begin with<\/li><li>Merges and acquisitions<\/li><li>Rarely, but still, the company might be so large that, even with proper IPAM in place, there will be not enough usable private IP CIDRs at some point.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Solution: NAT in the Public Cloud<\/h2>\n\n\n\n<p>The solution is the same as in On-Prem\/DC\/Branch environment. Use NAT. But how to set up NAT in Public Cloud (regardless which one, AWS, Azure, GCP, OCI, Alibaba)? Or how to do it across the Public Clouds? The answer is obvious: leverage Aviatrix feature-set.<\/p>\n\n\n\n<p>As you might know, the Aviatrix Network and Security Multi-Cloud Architecture brings many different benefits. One of them is possibility of doing NAT of course.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aviatrix NAT in Action<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">LAB Scenario<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario-1024x482.png\" alt=\"Lab Scenario: Overlapping CIDRs used across different Regions\" class=\"wp-image-25750\" width=\"840\" height=\"395\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario-1024x482.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario-300x141.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario-768x362.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario-1536x723.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario-2048x964.png 2048w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption>Lab Scenario: Overlapping CIDRs used across different Regions<\/figcaption><\/figure>\n\n\n\n<p>The customer has a presence in Azure (let&#8217;s say Region#1). Additionally, it uses Region#2 as a DR-Region (in case of an outage in Region#1). The customer has acquired a company, let&#8217;s call it &#8220;EnvB&#8221; that owns some VNETs in Region#3.<\/p>\n\n\n\n<p>The scenario might be also that Region#1 and Region#2 would be in one Public Cloud (e.g. AWS) and the newly acquired company Region#3 in GCP. It would not change anything when it comes to our discussion because Aviatrix works the same way in each Public Cloud. Remember: A<strong>viatrix is Cloud-Agnostic<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Details<\/h3>\n\n\n\n<p>Let&#8217;s focus on the&nbsp;CIDRs and VNETs deployed in the environment:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Region#1 (&#8220;Primary&#8221;:<ul><li>Shared Services Spoke VNET (10.40\/16)<\/li><li>Private Spoke VNET (10.50\/16)<\/li><\/ul><\/li><li>Region#2 (&#8220;DR&#8221;):<ul><li>Shared Services DR VNET (10.40\/16)<\/li><li>Private DR Spoke VNET (10.50\/16)<\/li><\/ul><\/li><li>Region#3 (&#8220;EnvB&#8221;)<ul><li>Spoke-1 VNET (10.40\/16)<\/li><li>Spoke-2 VNET (10.151\/16)<\/li><li>Spoke-3 VNET (10.152\/16)<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>There is a Shared Services VNET in Region#1. The goal is to have the connectivity from &#8220;EnvB&#8221; (there are three Spoke VNETs there) to Shared Services VNET. But wait\u2026 one of the EnvB Spoke-VNETs (Spoke-1) and Shared Services VNET use the same CIDR of 10.40\/16. We need a NAT.<\/p>\n\n\n\n<p>The following VMs have been deployed for verification purposes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Shared-VM in Shared Spoke VNET<\/li><li>Shared-DR-VM in Shared DR Spoke VNET<\/li><li>Test-VM in Spoke-1 VNET<\/li><\/ul>\n\n\n\n<p>Guess what, all of them are assigned the same Private IP of 10.40.16.4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT-1024x478.png\" alt=\"The required connectivity between Spoke-1 VNET and Shared-Services VNET - leverage NAT\" class=\"wp-image-25751\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT-1024x478.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT-300x140.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT-768x358.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT-1536x717.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_woNAT.png 1974w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>The required connectivity between Spoke-1 VNET and Shared-Services VNET &#8211; leverage NAT<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Part 1 &#8211; Solving Overlapping IPs Issue<\/h2>\n\n\n\n<p>Let&#8217;s focus on the connectivity from Spoke-1 VNET to Shared Services VNET. Two things must be done here:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>SNAT on Spoke-1 VNET side &#8211; to hide the real source IP address of Test-Spoke1-VM<ul><li>Spoke-1 VNET will use 10.240\/16 prefix for NAT.<\/li><li>Test-Spoke-1 VM will be hidden behind 10.240.16.4.<\/li><\/ul><\/li><li>DNAT on Shared Services VNET<ul><li>Shared Services Spoke VNET will use 10.41\/16 prefix for NAT.<\/li><li>Shared-VM will be known to Spoke-1 VNET as 10.41.16.4.<\/li><\/ul><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration on Spoke-1 Gateways<\/h3>\n\n\n\n<p>Aviatrix Spoke Gateways are the components where NAT will be configured.<\/p>\n\n\n\n<p>We will leverage the <strong>&#8220;Custom NAT&#8221; Aviatrix feature<\/strong>. The configuration is done under the GATEWAY menu. Please select the proper Gateway and choose the &#8220;Edit&#8221; option.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"161\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT-1024x161.png\" alt=\"SNAT configuration on Spoke-1 Gateways\" class=\"wp-image-25752\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT-1024x161.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT-300x47.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT-768x121.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT-1536x241.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Spoke1_SNAT-2048x321.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>SNAT configuration on Spoke-1 Gateways<\/figcaption><\/figure>\n\n\n\n<p>Where:<\/p>\n\n\n\n<p>1 &#8211; Is a real source IP address of our Test-Spoke1-VM<\/p>\n\n\n\n<p>2 &#8211; Is a NATed destination IP address of Shared-VM. It is not a real IP address of the Shared-VM<\/p>\n\n\n\n<p>3 &#8211; Is the connection between Spoke1-Gateways and Transit-EnvB-Gateways<\/p>\n\n\n\n<p>4 &#8211; Is a SNAT IP that will be used as a source of the packet outside of the Spoke1-VNET<\/p>\n\n\n\n<p>Please notice the same translation must be configured on HA Spoke-1 Gateway.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration on Shared-Services Spoke Gateways<\/h3>\n\n\n\n<p>Now, let&#8217;s configure Destination NAT on Shared Services Spoke Gateways:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT-1024x177.png\" alt=\"DNAT configuration on Shared-Services Spole Gateways\" class=\"wp-image-25753\" width=\"840\" height=\"145\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT-1024x177.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT-300x52.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT-768x133.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT-1536x266.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_DNAT-2048x355.png 2048w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption>DNAT configuration on Shared-Services Spole Gateways<\/figcaption><\/figure>\n\n\n\n<p>Where:<\/p>\n\n\n\n<p>1 &#8211; Is the source IP address of the packet after SNAT<\/p>\n\n\n\n<p>2 &#8211; Is the destination IP address of Shared-VM. It is NOT a real IP address but it is a NAT-IP.<\/p>\n\n\n\n<p>3 &#8211; Is the connection between Shared-Spoke-Gateways and Transit-Gateways<\/p>\n\n\n\n<p>4 &#8211; Is a real IP address of Shared-VM<\/p>\n\n\n\n<p>Spoke-1 Gateways (Region#3) advertise the NAT CIDR 10.240\/16.<\/p>\n\n\n\n<p>At the moment the NAT CIDR 10.41\/16 is only advertised by Shared-Services Spoke Gateways in &#8220;primary&#8221; Region#1.<\/p>\n\n\n\n<p>Such advertisement is not done by &#8220;Shared-Services-DR&#8221;.<\/p>\n\n\n\n<p>All looks good. But there is one gotcha here. Aviatrix Spoke Gateways and Transit Gateways form an ActiveMesh. It is a full mesh of connections between them. This is the reason why we might face an issue with asymmetric routing. The way is required to ensure the symmetry of the initial flow and the response flow. The solution: Source NAT on Shared-Services Gateways. The SNAT is going to look like below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"157\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT-1024x157.png\" alt=\"Additional SNAT required on primary Shared-Services Spoke Gateway for traffic symmetry\" class=\"wp-image-25755\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT-1024x157.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT-300x46.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT-768x118.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT-1536x236.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT-2048x314.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Additional SNAT required on primary Shared-Services Spoke Gateway for traffic symmetry<\/figcaption><\/figure>\n\n\n\n<p>Where:<\/p>\n\n\n\n<p>1 &#8211; The real prefix inside Shared Services VNET where the destination Shared-VM resides<\/p>\n\n\n\n<p>2 &#8211; eth0 interface, the interface attached to subnet in Spoke VNET. Let&#8217;s call it an &#8220;internal&#8221; interface.<\/p>\n\n\n\n<p>3 &#8211; None<\/p>\n\n\n\n<p>4 &#8211; The IP address of that (Primary) Shared-Services Gateway eth0 interface<\/p>\n\n\n\n<p>The SNAT rule is also required on HA-Shared-Services Gateway. The only difference is the &#8220;SNAT IPS&#8221; address. In this case, it is going to be the IP address of the HA-Shared-Services Gateway eth0 interface:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"162\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1-1024x162.png\" alt=\"Additional SNAT required on HA Shared-Services Spoke Gateway for traffic symmetry\" class=\"wp-image-25756\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1-1024x162.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1-300x47.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1-768x121.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1-1536x243.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Shared_SNAT_HA-1-2048x324.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Additional SNAT required on HA Shared-Services Spoke Gateway for traffic symmetry<\/figcaption><\/figure>\n\n\n\n<p>What do those 2 SNAT entries (one on Primary Shared-Services Spoke Gateway and the other on HA Shared-Services Spoke Gateway) perform? They ensure that the return traffic will be routed to the Spoke Gateway where the initial traffic landed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testing the connectivity from Spoke1-VM to Shared Services-VM<\/h3>\n\n\n\n<p>Let&#8217;s test whether the connectivity works. We must use NATed 10.41.16.4 IP address as a destination of course. All looks good. The connectivity is there.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test1-PING_towards_Shared.png\"><img loading=\"lazy\" decoding=\"async\" width=\"699\" height=\"236\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test1-PING_towards_Shared.png\" alt=\"PING Test for the connectivity between Spoke1-VM and Shared-VM\" class=\"wp-image-25757\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test1-PING_towards_Shared.png 699w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test1-PING_towards_Shared-300x101.png 300w\" sizes=\"auto, (max-width: 699px) 100vw, 699px\" \/><\/a><figcaption>PING Test for the connectivity between Spoke1-VM and Shared-VM<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Part 2 &#8211; Disaster Recovery Setup<\/h2>\n\n\n\n<p>As mentioned at the beginning, the customer leverages Region#2 as a Disaster Recovery. What is even more important, it is a &#8220;Hot DR&#8221;. Why &#8220;Hot&#8221;? It means the customer has all the VNETs and Aviatrix Gateways already deployed in DR-Region#2. What is more, the Transit Gateways of DR Region#2 peer with Transit Gateways in &#8220;primary&#8221; Region#1<\/p>\n\n\n\n<p>Depending on the application, in theory, we could also have the mirror VMs deployed in Region #2, which will be ready to take the load in case Region#1 fails. I have deployed Shared-DR-VM in Shared Services DR Spoke VNET. The IP address of the VNET (10.40\/16) and the DR-VM (10.40.16.4) are the same as in Primary Region #1.<\/p>\n\n\n\n<p>Additionally, I have created the same DNAT and SNAT rules on &#8220;Shared Services DR&#8221; Spoke Gateways as the ones present on (Region#1) &#8220;Shared Services&#8221; Spoke Gateways. There is also one more thing to be considered. We want to have a Disaster Recovery environment in Region#2. In normal conditions, Region#2 must not get any traffic. Though as soon as Region#1 fails, Region#2 must take all the traffic. How to ensure the traffic goes to Region#1 and not Region#2? The answer is simple. Aviatrix Gateways leverage BGP, so we can configure AS Path Prepend in the desired way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"473\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1-1024x473.png\" alt=\"Disaster Recovery scenario with Overlapping IP CIDRs\" class=\"wp-image-25761\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1-1024x473.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1-300x139.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1-768x355.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1-1536x709.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_NAT_details-1-2048x946.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Disaster Recovery scenario with Overlapping IP CIDRs<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">AS Path Prepend on Aviatrix Gateways<\/h3>\n\n\n\n<p>Let&#8217;s see how AS Path Prepend could be done on Transit DR Gateways (go to ULTI-CLOUD TRANSIT -&gt; Advanced Config -&gt; choose Transit Gateway). We will put two additional ASN = 65000 when advertising prefixes to BGP peers. Please notice that AS Path Prepend can be done per Connection basis as well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/ASPathPrepend.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"177\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/ASPathPrepend-300x177.png\" alt=\"Configuring AS Path Prepend on Transit Gateway\" class=\"wp-image-25758\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/ASPathPrepend-300x177.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/ASPathPrepend.png 723w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption>Configuring AS Path Prepend on Transit Gateway<\/figcaption><\/figure>\n\n\n\n<p>Now we can start advertising the NAT CIDR 10.41\/16 from &#8220;Shared-Services-DR&#8221; Spoke Gateways.<\/p>\n\n\n\n<p>Please remember that Aviatrix provides the possibility not only to check the routing table on the Gateway but also all the routing information (&#8220;Route Info DB Details&#8221;) received by the Gateway. We will verify now how the routing information looks like for prefix 10.41\/16 (the one used by NAT on Shared-Services Spoke Gateways and Shared-Services-DR Spoke Gateways).<\/p>\n\n\n\n<p>If we look at the &#8220;Route Info DB Details&#8221; on Transit-EnvB Gateways, we can see that there are two paths: one via Transit Gateways in &#8220;primary&#8221; Region#1 and the other towards Transit-DR Gateways in Region#2. Region#1-one is chosen as the best route because there is AS Path Prepend done by Transit-DR Gateways as shown below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"199\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal-1024x199.png\" alt=\"&quot;Route Info DB Details&quot; on Transit-EnvB Gateway\" class=\"wp-image-25759\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal-1024x199.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal-300x58.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal-768x149.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal-1536x299.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_TransitGW_normal-2048x398.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>&#8220;Route Info DB Details&#8221; on Transit-EnvB Gateway<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Region#1 &#8220;outage&#8221;<\/h3>\n\n\n\n<p>Let\u2019s see what happens if \u201cShared-Services\u201d VNET in the primary Region#1 is no longer available.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"475\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage-1024x475.png\" alt=\"Region#1 outage\" class=\"wp-image-25762\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage-1024x475.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage-300x139.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage-768x356.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage-1536x712.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Scenario_outage.png 1981w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Region#1 outage<\/figcaption><\/figure>\n\n\n\n<p>The best path towards 10.41.0.0\/16 has been dynamically updated. Keep in mind, the backup route (with AS Path Prepend) was already present in &#8220;Route Info DB&#8221; before an outage.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"170\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover-1024x170.png\" alt=\"&quot;Route Info DB Details&quot; on Transit-EnvB Gateway after Region#1 outage\" class=\"wp-image-25763\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover-1024x170.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover-300x50.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover-768x128.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover-1536x256.png 1536w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/RouteDB_Transit_failover-2048x341.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>&#8220;Route Info DB Details&#8221; on Transit-EnvB Gateway after Region#1 outage<\/figcaption><\/figure>\n\n\n\n<p>The constant PING was executed from Test-Spoke1-VM towards 10.41.16.4 to check how many PINGs are lost during the switchover from Region#1 to Region#2. One PING was lost.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test2-PING_failover.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test2-PING_failover-1024x321.png\" alt=\"\" class=\"wp-image-25764\" srcset=\"https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test2-PING_failover-1024x321.png 1024w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test2-PING_failover-300x94.png 300w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test2-PING_failover-768x241.png 768w, https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/Test2-PING_failover.png 1424w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ping Test between Spoke-1VM and Shared-DR-VM<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Aviatrix can be used for many purposes. In this blog article, I have presented the scenario of a customer having environments in different regions (might be different Clouds as well). The problem was, those regions utilized the same IP CIDR range. The following has been used:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>SNAT\/DNAT on Aviatrix Spoke Gateways to provide connectivity between VNETs with Overlapping IP CIDRs<\/li><li>BGP AS Path Prepend on Aviatrix Transit Gateways to influence the routing decisions and to set up the &#8220;Hot&#8221; Disaster Recovery environment (ready for primary Region failure)<\/li><\/ul>\n\n\n\n<p>I hope it was informative for you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today&#8217;s topic: the overlapping IPs The topic is huge. You might hit this problem everywhere. What are the major reasons why organizations have this problem? I would say: Lack of &#8230;<\/p>\n","protected":false},"author":2,"featured_media":25767,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[8,6,7],"tags":[],"class_list":["post-25749","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-disaster-recovery","category-multi-cloud","category-nat"],"uagb_featured_image_src":{"full":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage.png",647,437,false],"thumbnail":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage-150x150.png",150,150,true],"medium":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage-300x203.png",300,203,true],"medium_large":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage.png",647,437,false],"large":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage.png",647,437,false],"1536x1536":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage.png",647,437,false],"2048x2048":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage.png",647,437,false],"onepress-blog-small":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage-300x150.png",300,150,true],"onepress-small":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage-480x300.png",480,300,true],"onepress-medium":["https:\/\/cloud-cod.com\/wp-content\/uploads\/2022\/03\/FeaturedImage-640x400.png",640,400,true]},"uagb_author_info":{"display_name":"Jakub","author_link":"https:\/\/cloud-cod.com\/index.php\/author\/jakub\/"},"uagb_comment_info":584,"uagb_excerpt":"Today&#8217;s topic: the overlapping IPs The topic is huge. You might hit this problem everywhere. What are the major reasons why organizations have this problem? I would say: Lack of ...","_links":{"self":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts\/25749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/comments?post=25749"}],"version-history":[{"count":5,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts\/25749\/revisions"}],"predecessor-version":[{"id":25800,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/posts\/25749\/revisions\/25800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/media\/25767"}],"wp:attachment":[{"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/media?parent=25749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/categories?post=25749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloud-cod.com\/index.php\/wp-json\/wp\/v2\/tags?post=25749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}