<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Oracle Cloud & Database Insights]]></title><description><![CDATA[Welcome to Oracle Cloud & Database Insights, a technical blog dedicated to Oracle Cloud Infrastructure (OCI), Oracle Database, cloud networking, security, and m]]></description><link>https://oracletechinsights.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6acf060ec5c1c1074a0bb596/7884b138-dfa7-4376-953d-328b977e1724.png</url><title>Oracle Cloud &amp; Database Insights</title><link>https://oracletechinsights.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 06:39:03 GMT</lastBuildDate><atom:link href="https://oracletechinsights.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Add a Third-Party Software Repository to OCI OS Management Hub and Attach It to Autonomous Linux 10]]></title><description><![CDATA[Learn how to add Remi's RPM Repository to OCI OS Management Hub, attach it to Autonomous Linux 10, and verify package availability using DNF.]]></description><link>https://oracletechinsights.hashnode.dev/add-third-party-repository-oci-os-management-hub</link><guid isPermaLink="true">https://oracletechinsights.hashnode.dev/add-third-party-repository-oci-os-management-hub</guid><category><![CDATA[OCI]]></category><category><![CDATA[autonomous linux]]></category><dc:creator><![CDATA[Janith Jayasinghe]]></dc:creator><pubDate>Tue, 20 Oct 2026 08:44:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/6c403cc1-b29d-4575-9b64-b6adb9a9d6c5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>Oracle Cloud Infrastructure (OCI) <strong>OS Management Hub</strong> helps administrators manage software sources and packages on registered Oracle Linux instances. In addition to Oracle-provided repositories, OS Management Hub can configure third-party YUM repositories and attach them to managed systems.</p>
<p>In this tutorial, we'll add <strong>Remi's RPM Repository</strong> as a third-party software source and attach it to an <strong>Autonomous Linux 10</strong> instance. Finally, we'll refresh the repository metadata and verify that the new repository is available from the Linux command line.</p>
<p>This walkthrough follows the configuration shown in the accompanying OCI Console screenshots.</p>
<h2>Prerequisites</h2>
<p>Before starting, have an Oracle Linux 10 instance registered with OCI OS Management Hub, permissions to create and attach software sources in the relevant compartment, and the correct repository URL and GPG signing key for your OS version and architecture. The example uses an x86_64 instance.</p>
<h2>Step 1: Open Software Sources in OCI OS Management Hub</h2>
<p>In the OCI Console, navigate to <strong>Observability &amp; Management → OS Management Hub → Software Sources</strong>. Select the compartment where you want to create the software source. Choose <strong>Actions → Add Third-Party Software Source</strong>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/51b8b339-5735-4ad3-86f2-65742498e86b.png" alt="figure-01" style="display:block;margin:0 auto" />

<h2>Step 2: Enter the Basic Information</h2>
<p>On the <strong>Basic Information</strong> page, provide a meaningful name and, optionally, a description. In the demonstration, the source is named <strong>RemisRepo</strong> and described as a third-party repository for Remi.</p>
<p>The source name must start with a letter and contain only letters and numbers. The chosen name will also identify the repository on managed Linux instances.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/e8983fe5-0570-4932-a244-06a64e327da6.png" alt="figure-02" style="display:block;margin:0 auto" />

<p>Click <strong>Next</strong>.</p>
<h2>Step 3: Configure the Repository URL and Operating System</h2>
<p>In <strong>Repository Configuration</strong>, enter the third-party YUM repository URL. Ensure the URL matches the Linux version and CPU architecture of the managed instance. Select <strong>Oracle Linux 10</strong> and <strong>x86_64</strong>, as shown in this demonstration.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/6e30a082-c4ad-44c6-92e3-8d662c637fff.png" alt="figure-03" style="display:block;margin:0 auto" />

<p>The exact repository URL should be obtained from the repository provider and checked before use. Do not use a URL intended for a different OS release or architecture.</p>
<h2>Step 4: Enable GPG Verification</h2>
<p>Under <strong>Security settings</strong>, enable <strong>GPG Check</strong> and supply the corresponding <strong>GPG Key URL</strong> from the repository provider. GPG signature verification helps confirm that downloaded packages have been signed by the expected source.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/052b1d3e-bcc2-4cb4-b6e5-3c2a79257993.png" alt="figure-04" style="display:block;margin:0 auto" />

<p>Verify the signing key independently using the repository provider's official documentation before trusting packages.</p>
<h2>Step 5: Review and Create the Third-Party Software Source</h2>
<p>Review the source name, description, repository settings, operating system, architecture, and GPG configuration. Then select <strong>Create Third-Party Software Source</strong>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/49df2af7-f623-4e77-a38f-ee939473f82f.png" alt="figure-05" style="display:block;margin:0 auto" />

<p>OS Management Hub creates the software source and begins synchronizing its repository metadata. Wait for synchronization to complete before proceeding.</p>
<h2>Step 6: Confirm the Software Source Was Created</h2>
<p>Return to <strong>OS Management Hub → Software Sources</strong>. Locate the new Remi software source and inspect its details and synchronization status.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/fae3b00d-a95d-4072-86f8-550badf5b9cf.png" alt="figure-06" style="display:block;margin:0 auto" />

<p>The repository should be available for attachment once its metadata has synchronized successfully.</p>
<h2>Step 7: Open the Registered Autonomous Linux Instance</h2>
<p>Navigate to <strong>OS Management Hub → Instances</strong> and select the registered Autonomous Linux 10 instance that should receive the repository.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/840e7f23-7809-428e-ac0f-5e3928a4dd50.png" alt="figure-07" style="display:block;margin:0 auto" />

<p>On the instance details page, open <strong>Software Sources</strong> to review its currently attached repositories.</p>
<h2>Step 8: Attach a Software Source</h2>
<p>Select <strong>Attach Software Sources</strong>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/7ff53a3c-c391-41fe-b75e-3a8bf709ff7f.png" alt="figure-08" style="display:block;margin:0 auto" />

<p>In the attachment interface, click <strong>Add</strong>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/095e1ea4-72e1-4efd-9abd-129886401ec2.png" alt="figure-09" style="display:block;margin:0 auto" />

<h2>Step 9: Select the Remi Repository</h2>
<p>Locate the third-party software source created earlier. Select its checkbox and click <strong>Add</strong> to attach it to the instance.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/b25bb014-1346-4041-9956-c3f8b91e944f.png" alt="figure-10" style="display:block;margin:0 auto" />

<p>After the operation completes, return to the instance's <strong>Software Sources</strong> tab and confirm that the Remi repository is listed among the attached software sources.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/20e97a2e-12b3-4cad-a257-f20f3ef476d0.png" alt="figure-11" style="display:block;margin:0 auto" />

<h2>Step 10: Verify the Repository from Autonomous Linux</h2>
<p>Connect to the managed instance using SSH or an SSH client such as PuTTY. Refresh the repository metadata with the following commands:</p>
<pre><code class="language-bash">sudo dnf clean all
sudo dnf makecache
</code></pre>
<p>Next, list the enabled repositories:</p>
<pre><code class="language-bash">sudo dnf repolist
</code></pre>
<p>The Remi repository should appear in the repository list. This confirms that the third-party source has been attached and its metadata can be accessed from the managed instance.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/0fb52182-9e7c-4bd7-842b-a40a3f4232a9.png" alt="figure-12" style="display:block;margin:0 auto" />

<p>If it does not appear, review the software source synchronization status, attachment status, repository URL, GPG configuration, and network access to the repository endpoint.</p>
<h2>Conclusion</h2>
<p>OCI OS Management Hub provides a centralized way to configure third-party software sources for registered Oracle Linux systems. In this example, we added Remi's RPM Repository, enabled GPG verification, attached the source to an Autonomous Linux 10 instance, and validated it using <code>dnf clean all</code>, <code>dnf makecache</code>, and <code>dnf repolist</code>.</p>
<p>This approach helps administrators manage supported third-party package repositories through the same OS Management Hub workflow used for Oracle-provided sources.</p>
<p><em>Note: This tutorial demonstrates repository configuration and attachment. Package installation and application compatibility testing are outside the scope of the source document. Verify third-party repository compatibility and package support before using it for production workloads.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to Scale OCI Shielded Instances Up or Down While Preserving Their IP Addresses]]></title><description><![CDATA[Learn how to scale OCI Shielded Instances up or down using boot volume backups and instance replacement while retaining the same private IP address.]]></description><link>https://oracletechinsights.hashnode.dev/how-to-scale-oci-shielded-instances-up-or-down-while-preserving-their-ip-addresses</link><guid isPermaLink="true">https://oracletechinsights.hashnode.dev/how-to-scale-oci-shielded-instances-up-or-down-while-preserving-their-ip-addresses</guid><category><![CDATA[OCI]]></category><category><![CDATA[shieldInstance]]></category><category><![CDATA[#ScaleUp]]></category><category><![CDATA[scaledown]]></category><category><![CDATA[cmpute]]></category><dc:creator><![CDATA[Janith Jayasinghe]]></dc:creator><pubDate>Tue, 20 Oct 2026 07:53:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/6c7d0221-4f9c-4f77-b8b0-7f1a2137a598.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>Oracle Cloud Infrastructure (OCI) provides flexible compute resources that allow organizations to increase or decrease CPU and memory allocations based on workload requirements.</p>
<p>For regular OCI virtual machines, administrators can typically resize an instance using the <strong>Change Shape</strong> option without rebuilding the server.</p>
<p>However, this process is different for OCI Shielded Instances.</p>
<p>Shielded Instances provide additional protection against firmware-level and boot-level threats through security features such as Secure Boot, Measured Boot, and Trusted Platform Module (TPM).</p>
<p>Although these capabilities improve security, they introduce certain operational limitations. One significant limitation is that <strong>the shape of a Shielded Instance cannot be changed after deployment</strong>.</p>
<p>Therefore, scaling a Shielded Instance requires a different approach.</p>
<p>In this article, we will explore how to scale up or scale down an OCI Shielded Instance by creating a replacement virtual machine from a boot volume backup, while retaining the original private IP address.</p>
<p>We will also discuss how to preserve a public IP address when required.</p>
<hr />
<h2>1. What Is an OCI Shielded Instance?</h2>
<p>An OCI Shielded Instance is a compute instance configured with additional firmware and boot security protections.</p>
<p>These protections help defend against unauthorized modifications to the boot process and certain types of low-level malware.</p>
<p>OCI Shielded Instances use three primary security technologies.</p>
<h3>Secure Boot</h3>
<p>Secure Boot validates the digital signatures of firmware and boot components before allowing them to execute.</p>
<p>This helps prevent unauthorized bootloaders and certain malicious operating system components from starting.</p>
<h3>Measured Boot</h3>
<p>Measured Boot records measurements of components involved in the boot process.</p>
<p>These measurements can be compared against previously established measurements to detect unexpected changes.</p>
<h3>Trusted Platform Module (TPM)</h3>
<p>TPM provides hardware-backed or virtualized security capabilities used to store and protect boot measurements and other security-related information.</p>
<p>Together, these features provide additional protection for workloads requiring stronger boot integrity.</p>
<p><strong>Important:</strong> Shielded Instances improve boot security but do not replace operating system hardening, patch management, encryption, or other security controls.</p>
<hr />
<h2>2. What Types of Workloads Benefit from Shielded Instances?</h2>
<p>Shielded Instances are particularly useful for workloads that require stronger protection against unauthorized firmware or boot-level modifications.</p>
<h3>Financial and banking applications</h3>
<p>Financial institutions often operate systems containing sensitive financial information.</p>
<p>Shielded Instances can provide an additional layer of protection for application servers, database servers, and other critical infrastructure.</p>
<h3>Enterprise databases</h3>
<p>Database servers hosting sensitive business information can benefit from secure boot protections.</p>
<p>Examples include:</p>
<ul>
<li>Oracle Database servers</li>
<li>Microsoft SQL Server servers</li>
<li>MySQL database servers</li>
<li>Enterprise application databases</li>
</ul>
<h3>Security-sensitive applications</h3>
<p>Applications processing confidential customer or organizational information may benefit from additional boot integrity controls.</p>
<h3>Identity and authentication infrastructure</h3>
<p>Identity management servers and other security infrastructure can benefit from protections against unauthorized changes to the boot environment.</p>
<h3>Compliance-driven workloads</h3>
<p>Organizations operating under strict security requirements may consider Shielded Instances as part of their broader infrastructure security architecture.</p>
<p>However, using Shielded Instances alone does not guarantee compliance with any particular regulatory framework.</p>
<hr />
<h2>3. Limitations of OCI Shielded Instances</h2>
<p>Although Shielded Instances provide additional security, they have several important limitations.</p>
<h3>3.1 Shape changes are not supported</h3>
<p>The most relevant limitation for this article is that OCI does not support changing the shape of an existing Shielded Instance.</p>
<p>With a regular OCI instance, administrators may be able to modify the OCPU and memory allocation directly.</p>
<p>For a Shielded Instance, this is not supported.</p>
<p>A replacement instance must be provisioned with the required configuration.</p>
<h3>3.2 Live migration is not supported</h3>
<p>Shielded Instances do not support OCI live migration or reboot migration.</p>
<p>This affects the available infrastructure maintenance and migration options.</p>
<h3>3.3 Custom images are not supported</h3>
<p>Shielded Instances have restrictions on custom image usage.</p>
<p>Therefore, administrators must verify the supported platform image and boot volume launch options before planning an instance replacement.</p>
<h3>3.4 Supported shapes and operating systems are limited</h3>
<p>Not every OCI compute shape or operating system image supports Shielded Instances.</p>
<p>Before resizing, confirm that the target shape is compatible with the operating system and required security features.</p>
<h3>3.5 TPM-related considerations</h3>
<p>Applications or security products that depend on TPM-stored information may require additional configuration after instance replacement.</p>
<p>For example, TPM-bound secrets or encryption keys may not automatically remain usable on the new instance.</p>
<h3>3.6 Boot measurements may change</h3>
<p>Measured Boot values can change when the underlying compute configuration changes.</p>
<p>Administrators should review boot integrity measurements after replacing the instance.</p>
<h3>3.7 Downtime is required</h3>
<p>Because the existing instance must be stopped and replaced, this procedure requires a maintenance window.</p>
<p>Application and database services must be shut down properly before taking the final backup.</p>
<hr />
<h2>4. Understanding the Scaling Approach</h2>
<p>Since OCI does not allow direct shape changes for Shielded Instances, we can use a replacement-based approach.</p>
<p>The process involves:</p>
<ol>
<li>Recording the existing instance configuration.</li>
<li>Gracefully shutting down the application or database.</li>
<li>Stopping the existing virtual machine.</li>
<li>Creating a boot volume backup.</li>
<li>Restoring the backup to a new boot volume.</li>
<li>Terminating the existing instance.</li>
<li>Provisioning a replacement instance with the required shape.</li>
<li>Assigning the original private IP address.</li>
<li>Reattaching required data volumes.</li>
<li>Starting and validating the application or database.</li>
</ol>
<pre><code>
The replacement instance uses a different compute resource configuration while retaining the operating system and application files stored in the restored boot volume.

**Note:** This is an instance replacement, not an in-place resize. The replacement receives a new instance OCID and new VNIC resources.

---

## 5. Step 1: Record the Existing Instance Configuration

Before starting the scaling activity, collect the current server configuration.

Navigate to:

**OCI Console → Compute → Instances**

Select the Shielded Instance.

Record the following details:

| Parameter | Existing Configuration |
|---|---|
| Instance Name | `&lt;Instance Name&gt;` |
| Availability Domain | `&lt;Availability Domain&gt;` |
| Fault Domain | `&lt;Fault Domain&gt;` |
| Shape | `&lt;Existing Shape&gt;` |
| OCPUs | `&lt;Existing OCPUs&gt;` |
| Memory | `&lt;Existing Memory&gt;` |
| Operating System | `&lt;Operating System&gt;` |
| VCN | `&lt;VCN Name&gt;` |
| Subnet | `&lt;Subnet Name&gt;` |
| Private IP | `&lt;Existing Private IP&gt;` |
| Public IP | `&lt;Reserved Public IP, if applicable&gt;` |
| NSGs | `&lt;NSG Names&gt;` |
| Boot Volume | `&lt;Boot Volume Name&gt;` |
| Attached Block Volumes | `&lt;Data Volume Names&gt;` |

Also record the instance's IAM configuration, SSH access method, tags, metadata, and any custom network settings.

This information will be required when provisioning the replacement instance.

### Important networking consideration

The replacement instance must be launched in the appropriate subnet to reuse the original private IP.

For a primary private IP, terminating the original instance normally releases the address.

The same address can then be requested during replacement instance provisioning, provided it is still available.

Do not assume that OCI reserves the released IP for you.

---

## 6. Step 2: Gracefully Stop the Application or Database

Before taking the boot volume backup, ensure that the application or database is shut down properly.

This is especially important for database workloads.

Connect to the database and perform a controlled shutdown using the procedure appropriate for your environment.

Stop application services using the appropriate commands or service management tools.

Verify that the service is no longer running.

### Why is this important?

Taking a backup while the database is actively writing data may result in a backup that is only crash consistent rather than application consistent.

For production databases, also take and verify an appropriate database level backup, such as RMAN for Oracle Database.

A boot volume backup does not automatically protect data stored on separate block volumes.

---

## 7. Step 3: Stop the Existing Shielded Instance

After confirming that application and database services have stopped, shut down the operating system.

Navigate to:

**OCI Console → Compute → Instances → Select Instance**

Select:

**Stop**

Wait until the instance reaches the **Stopped** state.

This ensures that the operating system is no longer writing to the boot volume.

Avoid using a forced stop unless necessary.

---

## 8. Step 4: Create a Boot Volume Backup

Navigate to:

**OCI Console → Storage → Block Storage → Boot Volumes**

Locate the boot volume attached to the existing Shielded Instance.

Open the boot volume and select:

**Backups → Create Boot Volume Backup**

Provide a descriptive name.

For example:

```text
shielded-instance-pre-scaling-backup
</code></pre>
<p>Choose a full backup if you want a clearly identifiable recovery point for the maintenance activity.</p>
<p>Wait until the backup reaches the <strong>Available</strong> state.</p>
<h3>Why take a boot volume backup?</h3>
<p>The backup provides a recovery point containing the boot volume's data at the time the backup was taken.</p>
<p>This includes operating system files and application files stored on that volume.</p>
<p>It also provides an additional recovery option if the replacement procedure encounters problems.</p>
<p><strong>Important:</strong> If application or database data is stored on separate OCI Block Volumes, those volumes must be protected separately using an appropriate backup or volume group backup strategy.</p>
<hr />
<h2>9. Step 5: Restore the Boot Volume Backup</h2>
<p>Before terminating the original instance, restore the boot volume backup to a new boot volume.</p>
<p>Navigate to:</p>
<p><strong>OCI Console → Storage → Block Storage → Boot Volume Backups</strong></p>
<p>Select the backup created in the previous step.</p>
<p>Choose the option to restore or create a boot volume from the backup.</p>
<p>Configure:</p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Name</td>
<td><code>&lt;Restored Boot Volume Name&gt;</code></td>
</tr>
<tr>
<td>Compartment</td>
<td><code>&lt;Compartment&gt;</code></td>
</tr>
<tr>
<td>Availability Domain</td>
<td><code>&lt;Target Availability Domain&gt;</code></td>
</tr>
<tr>
<td>Source</td>
<td><code>&lt;Boot Volume Backup&gt;</code></td>
</tr>
</tbody></table>
<p>Wait until the restored boot volume becomes available.</p>
<p>The restored boot volume will be used to launch the replacement instance.</p>
<h3>Why restore before termination?</h3>
<p>Restoring the boot volume before terminating the existing instance allows administrators to verify that the backup can be restored successfully.</p>
<p>However, restoration alone does not guarantee that the operating system will boot on the target shape.</p>
<p>For Shielded Instances, confirm that the restored boot volume and its source image are compatible with the required Shielded Instance configuration.</p>
<p>If the required launch combination is not supported, stop the procedure and investigate before terminating the original instance.</p>
<hr />
<h2>10. Step 6: Terminate the Existing Shielded Instance</h2>
<p>Once the boot volume backup and restored boot volume are available, proceed with the termination.</p>
<p>Navigate to:</p>
<p><strong>OCI Console → Compute → Instances</strong></p>
<p>Select the existing Shielded Instance.</p>
<p>Choose:</p>
<p><strong>Terminate</strong></p>
<p>During termination, ensure that the option to permanently delete the original boot volume is not selected.</p>
<p>Preserving the original boot volume provides an additional recovery option.</p>
<h3>What happens during termination?</h3>
<p>When the instance is terminated:</p>
<ul>
<li>The original compute instance is deleted.</li>
<li>Its primary VNIC is removed.</li>
<li>Its primary private IP is released.</li>
<li>Ephemeral public IP addresses are released.</li>
<li>Reserved public IP resources can remain available for reassignment.</li>
<li>The boot volume can be retained if the appropriate option is selected.</li>
<li>Separate block volumes are detached rather than automatically migrated to the replacement instance.</li>
</ul>
<h3>Important IP address consideration</h3>
<p>The original private IP can be reused only if it is available when creating the replacement instance.</p>
<p>To reduce the risk of another resource obtaining the address, perform the replacement immediately within a controlled maintenance window.</p>
<p>If the private IP is already allocated to another resource, OCI will not allow the replacement instance to use it.</p>
<p><strong>Do not terminate the original server until the backup, restored boot volume, target shape compatibility, and recovery plan have been verified.</strong></p>
<hr />
<h2>11. Step 7: Provision the New Shielded Instance</h2>
<p>Navigate to:</p>
<p><strong>OCI Console → Compute → Instances → Create Instance</strong></p>
<p>Select the option to create the instance using an existing boot volume.</p>
<p>Choose the restored boot volume created earlier.</p>
<h3>Select the required shape</h3>
<p>For example:</p>
<table>
<thead>
<tr>
<th>Resource</th>
<th>Previous Instance</th>
<th>New Instance</th>
</tr>
</thead>
<tbody><tr>
<td>Shape</td>
<td>VM.Standard.E5.Flex</td>
<td>VM.Standard.E5.Flex</td>
</tr>
<tr>
<td>OCPUs</td>
<td>4</td>
<td>8</td>
</tr>
<tr>
<td>Memory</td>
<td>64 GB</td>
<td>128 GB</td>
</tr>
<tr>
<td>Boot Volume</td>
<td>100 GB</td>
<td>Restored 100 GB</td>
</tr>
<tr>
<td>Private IP</td>
<td><code>&lt;Existing Private IP&gt;</code></td>
<td><code>&lt;Same Private IP&gt;</code></td>
</tr>
</tbody></table>
<p>Select a supported Shielded Instance shape.</p>
<p>Ensure that the required Secure Boot, Measured Boot, and TPM capabilities are supported and correctly configured.</p>
<p>The exact launch options available depend on the source boot volume, operating system image, and OCI platform support.</p>
<h3>Configure networking</h3>
<p>Select the same VCN and subnet used by the original instance.</p>
<p>Under primary VNIC networking, choose the option to specify a private IPv4 address.</p>
<p>Enter:</p>
<pre><code class="language-text">&lt;Existing Private IP&gt;
</code></pre>
<p>The replacement instance should now request the same private IP address.</p>
<p>OCI will assign it only if the address is available and valid for the selected subnet.</p>
<h3>Preserve the public IP if required</h3>
<p>If the original instance used a <strong>reserved public IP</strong>, reassign that reserved public IP to the replacement instance's private IP after provisioning.</p>
<p>If the original instance used an ephemeral public IP, the same public address cannot be guaranteed after termination.</p>
<h3>Complete provisioning</h3>
<p>Review the configuration and launch the replacement instance.</p>
<p>Wait until it reaches the <strong>Running</strong> state.</p>
<p>Verify that the instance boots successfully and that the intended Shielded Instance security features are enabled.</p>
<hr />
<h2>12. Step 8: Reattach Data Volumes</h2>
<p>If the original instance had separate OCI Block Volumes, reattach them to the replacement instance.</p>
<p>Navigate to:</p>
<p><strong>OCI Console → Compute → Instances → New Instance → Attached Block Volumes</strong></p>
<p>Select:</p>
<p><strong>Attach Block Volume</strong></p>
<p>Choose the required volumes.</p>
<p>Ensure that the attachment type and device configuration match the operating system requirements.</p>
<h3>Linux considerations</h3>
<p>Verify the block devices:</p>
<pre><code class="language-bash">lsblk
</code></pre>
<p>Check mounted file systems:</p>
<pre><code class="language-bash">df -h
</code></pre>
<p>Confirm that all expected volumes are present.</p>
<p>If the instance uses <code>/etc/fstab</code>, ensure that the entries still refer to valid UUIDs, device paths, or mount points.</p>
<p>For Oracle Database workloads, confirm that all database files, redo logs, archive logs, and other required storage locations are accessible.</p>
<hr />
<h2>13. Step 9: Validate the IP Address and Network Configuration</h2>
<p>Once the replacement instance is running, verify its networking configuration.</p>
<h3>Check the private IP address</h3>
<p>For Linux:</p>
<pre><code class="language-bash">ip addr
</code></pre>
<p>Compare the assigned private IP with the recorded address of the original instance.</p>
<h3>Check the routing table</h3>
<pre><code class="language-bash">ip route
</code></pre>
<p>Verify that the required routes are present.</p>
<h3>Verify OCI networking</h3>
<p>Confirm that the replacement instance has the correct:</p>
<ul>
<li>VCN and subnet</li>
<li>Private IP address</li>
<li>Reserved public IP, if applicable</li>
<li>Network Security Groups</li>
<li>Route table association</li>
<li>DNS configuration</li>
</ul>
<p>If the original instance used secondary VNICs or secondary private IPs, recreate or reattach the required network configuration as appropriate.</p>
<hr />
<h2>14. Step 10: Start and Validate the Application or Database</h2>
<p>After confirming the storage and network configuration, start the required services.</p>
<p>Verify application connectivity to the database.</p>
<p>Validate application functionality.</p>
<h3>Resource validation</h3>
<p>Check CPU and memory:</p>
<pre><code class="language-bash">lscpu
</code></pre>
<pre><code class="language-bash">free -h
</code></pre>
<p>Confirm that the operating system recognizes the new compute resources.</p>
<p>Also validate monitoring agents, scheduled jobs, backup policies, security agents, and startup services.</p>
<hr />
<h2>15. Important Considerations Before Production Scaling</h2>
<h3>Plan for downtime</h3>
<p>This is not an online scaling procedure.</p>
<p>The original instance must be shut down and replaced.</p>
<p>Schedule an appropriate maintenance window.</p>
<h3>Preserve the original boot volume</h3>
<p>Retain the original boot volume until the replacement instance has been fully validated.</p>
<h3>Protect database data separately</h3>
<p>If database files are stored on attached block volumes, a boot volume backup alone is insufficient.</p>
<p>Take appropriate database and storage backups.</p>
<h3>Verify the target shape</h3>
<p>Check that the selected shape supports the operating system and Shielded Instance security configuration.</p>
<p>Also verify service limits and compute capacity availability.</p>
<h3>Review TPM and Secure Boot dependencies</h3>
<p>If the workload relies on TPM-bound secrets, custom Machine Owner Keys, or specialized boot configurations, additional recovery steps may be necessary.</p>
<h3>Reconfigure instance specific integrations</h3>
<p>A replacement instance receives new OCI resource identifiers.</p>
<p>Review monitoring, automation, IAM policies, instance principals, backup configurations, and any integrations that reference the original instance OCID.</p>
<hr />
<h2>16. Scaling Regular Instances vs. Shielded Instances</h2>
<table>
<thead>
<tr>
<th>Feature</th>
<th>Regular OCI Instance</th>
<th>OCI Shielded Instance</th>
</tr>
</thead>
<tbody><tr>
<td>Change Shape after deployment</td>
<td>Supported for eligible shapes</td>
<td>Not supported</td>
</tr>
<tr>
<td>Change OCPU / Memory directly</td>
<td>Supported for eligible Flex shapes</td>
<td>Not supported</td>
</tr>
<tr>
<td>Instance replacement required for scaling</td>
<td>Usually no</td>
<td>Yes</td>
</tr>
<tr>
<td>Boot volume backup recommended</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>Downtime required</td>
<td>Usually brief reboot/downtime</td>
<td>Planned replacement downtime</td>
</tr>
<tr>
<td>Retain private IP during in-place shape change</td>
<td>Yes</td>
<td>Not applicable</td>
</tr>
<tr>
<td>Reuse private IP after replacement</td>
<td>If available</td>
<td>If available</td>
</tr>
<tr>
<td>Preserve reserved public IP</td>
<td>Supported</td>
<td>Supported</td>
</tr>
</tbody></table>
<p>For workloads that require frequent CPU and memory adjustments, the operational limitations of Shielded Instances should be considered during the initial architecture design.</p>
<hr />
<h2>17. Conclusion</h2>
<p>OCI Shielded Instances provide additional security protections through Secure Boot, Measured Boot, and TPM.</p>
<p>These capabilities can be valuable for sensitive enterprise applications and database workloads.</p>
<p>However, one of their main operational limitations is that the compute shape cannot be changed after the instance has been launched.</p>
<p>To scale a Shielded Instance, administrators can use a replacement based approach involving a boot volume backup, restoration, termination of the original instance, and provisioning of a new instance with the required CPU and memory configuration.</p>
<p>The original private IP address can be reused if it is available in the selected subnet. Reserved public IP addresses can also be reassigned to the replacement instance.</p>
<p>For production workloads, the procedure should be performed within a planned maintenance window with verified backups, appropriate security compatibility checks, and a tested recovery plan.</p>
<p>With careful preparation, organizations can adjust the compute resources allocated to Shielded Instances while minimizing configuration changes and maintaining application connectivity.</p>
<hr />
<h2>References</h2>
<ol>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Compute/References/shielded-instances.htm">Oracle Cloud Infrastructure — Shielded Instances</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/resizinginstances.htm">Changing the Shape of an OCI Instance</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Block/Concepts/bootvolumes.htm">OCI Boot Volumes</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/create-bv-boot-volume-backup.htm">Creating a Boot Volume Backup</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/create-restore-bv-boot-volume-backup.htm">Restoring a Boot Volume</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingpublicIPs.htm">OCI Public IP Address Management</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/terminatinginstance.htm">Terminating an OCI Instance</a></li>
</ol>
<p><em>Disclaimer: The procedure described in this article is a reference approach. Validate Shielded Instance compatibility, boot volume recovery, networking behavior, security requirements, and application dependencies before implementing it in production.</em></p>
]]></content:encoded></item><item><title><![CDATA[Connecting Azure Application Servers to Oracle Databases in OCI Using ExpressRoute and FastConnect]]></title><description><![CDATA[How to securely connect Azure application servers to Oracle databases in OCI using ExpressRoute, FastConnect, BGP routing, and private networking.]]></description><link>https://oracletechinsights.hashnode.dev/connecting-azure-application-servers-to-oracle-databases-in-oci-using-expressroute-and-fastconnect</link><guid isPermaLink="true">https://oracletechinsights.hashnode.dev/connecting-azure-application-servers-to-oracle-databases-in-oci-using-expressroute-and-fastconnect</guid><category><![CDATA[OCI]]></category><category><![CDATA[Azure]]></category><category><![CDATA[fastconnect]]></category><category><![CDATA[Expressroute]]></category><category><![CDATA[multicloud]]></category><dc:creator><![CDATA[Janith Jayasinghe]]></dc:creator><pubDate>Tue, 20 Oct 2026 06:46:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/31fe92f1-76d9-4b3d-9db2-97d3bfdd66d3.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>Organizations increasingly adopt multicloud architectures to take advantage of different cloud platforms.</p>
<p>One common scenario involves hosting application servers in Microsoft Azure while running Oracle Database workloads in Oracle Cloud Infrastructure (OCI).</p>
<p>For example, an organization may prefer Azure for its application infrastructure while using OCI Database Services or Oracle Database on OCI Compute for its database workloads.</p>
<p>However, communication between application and database servers requires secure, reliable, and low latency connectivity.</p>
<p>Although site-to-site IPSec VPN is an option, enterprise applications may benefit from dedicated private connectivity.</p>
<p>Microsoft Azure ExpressRoute and OCI FastConnect provide a solution for connecting these environments without routing application to database traffic over the public internet.</p>
<p>In this article, we will explore how to establish private connectivity between Azure and OCI using <strong>Oracle Interconnect for Azure</strong>.</p>
<p>We will cover:</p>
<ul>
<li><p>Azure Virtual Network configuration</p>
</li>
<li><p>OCI Virtual Cloud Network configuration</p>
</li>
<li><p>Azure ExpressRoute circuit provisioning</p>
</li>
<li><p>OCI FastConnect virtual circuit configuration</p>
</li>
<li><p>BGP routing and route propagation</p>
</li>
<li><p>Network security rules</p>
</li>
<li><p>Oracle Database connectivity testing</p>
</li>
<li><p>High availability and troubleshooting</p>
</li>
</ul>
<p>The objective is to enable application servers hosted in Azure to communicate securely with Oracle Database servers hosted in OCI using private IP addresses.</p>
<hr />
<h2>1. Understanding the Architecture</h2>
<p>The proposed architecture consists of two cloud environments.</p>
<h3>Microsoft Azure</h3>
<p>The Azure environment hosts application servers inside a Virtual Network (VNet).</p>
<p>An ExpressRoute virtual network gateway connects the VNet to the ExpressRoute circuit.</p>
<h3>Oracle Cloud Infrastructure</h3>
<p>The OCI environment hosts Oracle Database servers inside a Virtual Cloud Network (VCN).</p>
<p>An OCI Dynamic Routing Gateway (DRG) connects the VCN to a FastConnect private virtual circuit.</p>
<h3>Architecture components</h3>
<table>
<thead>
<tr>
<th>Microsoft Azure</th>
<th>Oracle Cloud Infrastructure</th>
</tr>
</thead>
<tbody><tr>
<td>Virtual Network (VNet)</td>
<td>Virtual Cloud Network (VCN)</td>
</tr>
<tr>
<td>Application Subnet</td>
<td>Database Subnet</td>
</tr>
<tr>
<td>Application Servers</td>
<td>Oracle Database Servers</td>
</tr>
<tr>
<td>ExpressRoute Circuit</td>
<td>FastConnect Private Virtual Circuit</td>
</tr>
<tr>
<td>ExpressRoute Virtual Network Gateway</td>
<td>Dynamic Routing Gateway (DRG)</td>
</tr>
<tr>
<td>Network Security Groups (NSGs)</td>
<td>NSGs / Security Lists</td>
</tr>
<tr>
<td>Azure Route Tables</td>
<td>OCI Route Tables</td>
</tr>
</tbody></table>
<p>The ExpressRoute and FastConnect services establish the private interconnection between the two cloud environments.</p>
<h3>Architecture diagram</h3>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/6a3da619-95c5-4416-80da-e7b5cfb6b557.png" alt="Azure–OCI ExpressRoute FastConnect Guide" style="display:block;margin:0 auto" />

<pre><code class="language-text">Microsoft Azure
+-----------------------------------+
| Virtual Network (VNet)            |
|                                   |
| Application Subnet                |
|       |                           |
| Application Servers               |
|       |                           |
| ExpressRoute Virtual Network GW   |
+-------|---------------------------+
        |
        v
Azure ExpressRoute
        |
        | Private Interconnection
        |
        v
OCI FastConnect
        |
        v
+-----------------------------------+
| Oracle Cloud Infrastructure       |
|                                   |
| Dynamic Routing Gateway (DRG)     |
|       |                           |
| Virtual Cloud Network (VCN)       |
|       |                           |
| Database Subnet                   |
|       |                           |
| Oracle Database Servers           |
+-----------------------------------+
</code></pre>
<p>The application servers connect to the Oracle Database using its private IP address or private DNS hostname.</p>
<p>The database does not require a public IP address.</p>
<hr />
<h2>2. Prerequisites</h2>
<p>Before configuring the interconnection, ensure that both Azure and OCI environments are available.</p>
<h3>Azure prerequisites</h3>
<ul>
<li><p>Active Microsoft Azure subscription</p>
</li>
<li><p>Azure VNet with application subnet</p>
</li>
<li><p>Non-overlapping VNet CIDR ranges</p>
</li>
<li><p>A dedicated <code>GatewaySubnet</code></p>
</li>
<li><p>Permissions to create ExpressRoute circuits and virtual network gateways</p>
</li>
<li><p>Supported ExpressRoute peering location</p>
</li>
</ul>
<h3>OCI prerequisites</h3>
<ul>
<li><p>Active OCI tenancy</p>
</li>
<li><p>OCI VCN with database subnet</p>
</li>
<li><p>Oracle Database server or OCI Database Service</p>
</li>
<li><p>Dynamic Routing Gateway</p>
</li>
<li><p>Permissions to create FastConnect virtual circuits</p>
</li>
<li><p>Supported OCI region for Oracle Interconnect for Azure</p>
</li>
</ul>
<h3>Network planning</h3>
<p>Before deployment, identify the following:</p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Example / Placeholder</th>
</tr>
</thead>
<tbody><tr>
<td>Azure VNet CIDR</td>
<td><code>&lt;Azure VNet CIDR&gt;</code></td>
</tr>
<tr>
<td>Azure Application Subnet</td>
<td><code>&lt;Azure Application Subnet&gt;</code></td>
</tr>
<tr>
<td>Azure Gateway Subnet</td>
<td><code>&lt;Azure GatewaySubnet CIDR&gt;</code></td>
</tr>
<tr>
<td>OCI VCN CIDR</td>
<td><code>&lt;OCI VCN CIDR&gt;</code></td>
</tr>
<tr>
<td>OCI Database Subnet</td>
<td><code>&lt;OCI Database Subnet&gt;</code></td>
</tr>
<tr>
<td>OCI DRG</td>
<td><code>&lt;OCI DRG&gt;</code></td>
</tr>
<tr>
<td>ExpressRoute bandwidth</td>
<td><code>&lt;Required Bandwidth&gt;</code></td>
</tr>
<tr>
<td>FastConnect bandwidth</td>
<td><code>&lt;Matching Bandwidth&gt;</code></td>
</tr>
<tr>
<td>Azure region</td>
<td><code>&lt;Supported Azure Region&gt;</code></td>
</tr>
<tr>
<td>OCI region</td>
<td><code>&lt;Supported OCI Region&gt;</code></td>
</tr>
</tbody></table>
<p><strong>Important:</strong> Azure VNet and OCI VCN address ranges must not overlap.</p>
<p>Also, verify that the selected Azure ExpressRoute peering location supports direct interconnection with the selected OCI region.</p>
<p>Not every Azure and OCI region pair supports Oracle Interconnect for Azure.</p>
<hr />
<h2>3. Step 1: Configure the Azure Virtual Network</h2>
<p>Navigate to:</p>
<p><strong>Azure Portal → Virtual Networks</strong></p>
<p>Create a new VNet or select an existing VNet hosting the application servers.</p>
<p>Configure the VNet with the required address space.</p>
<p>For example:</p>
<pre><code class="language-text">Virtual Network: &lt;Azure VNet&gt;
Address Space: &lt;Azure VNet CIDR&gt;

Subnets:
- &lt;Application Subnet&gt;
- GatewaySubnet
</code></pre>
<h3>Create the GatewaySubnet</h3>
<p>An Azure ExpressRoute virtual network gateway requires a dedicated subnet named exactly:</p>
<pre><code class="language-text">GatewaySubnet
</code></pre>
<p>Create this subnet within the Azure VNet.</p>
<p>Microsoft generally recommends a <code>/27</code> or larger gateway subnet for most deployments.</p>
<p>Do not deploy application servers or other workloads into <code>GatewaySubnet</code>.</p>
<p>Avoid associating Network Security Groups or unsupported user-defined routes with this subnet.</p>
<hr />
<h2>4. Step 2: Create the Azure ExpressRoute Circuit</h2>
<p>Navigate to:</p>
<p><strong>Azure Portal → ExpressRoute Circuits → Create</strong></p>
<p>Configure the ExpressRoute circuit.</p>
<h3>ExpressRoute configuration</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Subscription</td>
<td><code>&lt;Azure Subscription&gt;</code></td>
</tr>
<tr>
<td>Resource Group</td>
<td><code>&lt;Resource Group&gt;</code></td>
</tr>
<tr>
<td>Name</td>
<td><code>ER-AZURE-OCI</code></td>
</tr>
<tr>
<td>Region</td>
<td><code>&lt;Azure Region&gt;</code></td>
</tr>
<tr>
<td>Provider</td>
<td>Oracle Cloud FastConnect</td>
</tr>
<tr>
<td>Peering Location</td>
<td><code>&lt;Supported Peering Location&gt;</code></td>
</tr>
<tr>
<td>Bandwidth</td>
<td><code>&lt;Required Bandwidth&gt;</code></td>
</tr>
<tr>
<td>SKU</td>
<td>Local / Standard / Premium as applicable</td>
</tr>
<tr>
<td>Billing Model</td>
<td>Based on requirements</td>
</tr>
</tbody></table>
<p>Select <strong>Oracle Cloud FastConnect</strong> as the connectivity provider.</p>
<p>The peering location must be supported by Oracle Interconnect for Azure.</p>
<h3>ExpressRoute service key</h3>
<p>Once the ExpressRoute circuit is created, Azure generates a unique service key.</p>
<p>The service key is required when creating the corresponding OCI FastConnect virtual circuit.</p>
<p>Copy the service key and keep it available for the OCI configuration.</p>
<p>The ExpressRoute circuit may initially show that the provider has not completed provisioning. This is expected until the corresponding OCI FastConnect configuration is completed.</p>
<hr />
<h2>5. Step 3: Create the Azure ExpressRoute Virtual Network Gateway</h2>
<p>Navigate to:</p>
<p><strong>Azure Portal → Virtual Network Gateways → Create</strong></p>
<p>Create an ExpressRoute virtual network gateway.</p>
<h3>Gateway configuration</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Gateway Name</td>
<td><code>VNG-AZURE-OCI</code></td>
</tr>
<tr>
<td>Gateway Type</td>
<td>ExpressRoute</td>
</tr>
<tr>
<td>Virtual Network</td>
<td><code>&lt;Azure VNet&gt;</code></td>
</tr>
<tr>
<td>Gateway Subnet</td>
<td><code>GatewaySubnet</code></td>
</tr>
<tr>
<td>SKU</td>
<td>Supported ExpressRoute gateway SKU</td>
</tr>
<tr>
<td>Region</td>
<td><code>&lt;Azure Region&gt;</code></td>
</tr>
</tbody></table>
<p>Choose the gateway SKU based on expected traffic throughput, availability requirements, and supported features.</p>
<p>After deployment, the gateway will be used to connect the Azure VNet to the ExpressRoute circuit.</p>
<h3>Create the ExpressRoute connection</h3>
<p>Open the newly created virtual network gateway.</p>
<p>Navigate to:</p>
<p><strong>Connections → Add</strong></p>
<p>Select the ExpressRoute circuit created previously.</p>
<p>This associates the Azure VNet with the private interconnection.</p>
<hr />
<h2>6. Step 4: Configure the OCI Dynamic Routing Gateway</h2>
<p>Navigate to:</p>
<p><strong>OCI Console → Networking → Dynamic Routing Gateways</strong></p>
<p>Create a new DRG or select an existing DRG.</p>
<p>Attach the OCI VCN hosting the Oracle Database servers to the DRG.</p>
<h3>DRG attachment</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Attachment Type</td>
<td>Virtual Cloud Network</td>
</tr>
<tr>
<td>VCN</td>
<td><code>&lt;OCI VCN&gt;</code></td>
</tr>
<tr>
<td>DRG</td>
<td><code>&lt;OCI DRG&gt;</code></td>
</tr>
</tbody></table>
<p>The DRG provides connectivity between the OCI VCN and external private networks.</p>
<p>In this architecture, it connects the OCI VCN to the Azure environment through FastConnect.</p>
<h3>DRG routing considerations</h3>
<p>Verify that the DRG route tables support:</p>
<ul>
<li><p>Routing from the OCI database subnet toward the Azure VNet</p>
</li>
<li><p>Routing from FastConnect toward the OCI VCN</p>
</li>
<li><p>Advertisement of the appropriate OCI VCN prefixes</p>
</li>
<li><p>Import of the Azure VNet prefixes</p>
</li>
</ul>
<p>OCI DRG route distribution and route table configuration must be reviewed, particularly when the DRG has existing VPN, FastConnect, or multiple VCN attachments.</p>
<hr />
<h2>7. Step 5: Create the OCI FastConnect Virtual Circuit</h2>
<p>Navigate to:</p>
<p><strong>OCI Console → Networking → Customer Connectivity → FastConnect</strong></p>
<p>Select:</p>
<p><strong>Create Connection</strong></p>
<p>Choose the FastConnect partner option.</p>
<p>Select:</p>
<p><strong>Microsoft Azure: ExpressRoute</strong></p>
<h3>FastConnect configuration</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Connection Name</td>
<td><code>FC-OCI-AZURE</code></td>
</tr>
<tr>
<td>Connection Type</td>
<td>FastConnect Partner</td>
</tr>
<tr>
<td>Provider</td>
<td>Microsoft Azure: ExpressRoute</td>
</tr>
<tr>
<td>Virtual Circuit Type</td>
<td>Private Virtual Circuit</td>
</tr>
<tr>
<td>DRG</td>
<td><code>&lt;OCI DRG&gt;</code></td>
</tr>
<tr>
<td>Provisioned Bandwidth</td>
<td><code>&lt;Matching Bandwidth&gt;</code></td>
</tr>
<tr>
<td>Partner Service Key</td>
<td><code>&lt;Azure ExpressRoute Service Key&gt;</code></td>
</tr>
</tbody></table>
<h3>BGP configuration</h3>
<p>Oracle Interconnect for Azure uses Border Gateway Protocol (BGP) to exchange network routes.</p>
<p>The connection requires BGP addressing for redundant peering sessions.</p>
<p>Use the addressing information specified in the OCI FastConnect provisioning workflow.</p>
<p>Each BGP session must use a valid, non-overlapping address range.</p>
<p>The BGP configuration enables the Azure and OCI networks to exchange the required private routes.</p>
<p>After provisioning, verify that the FastConnect virtual circuit becomes active and that the Azure ExpressRoute circuit shows successful provider provisioning and private peering.</p>
<hr />
<h2>8. Step 6: Configure Azure Routing</h2>
<p>The Azure application servers must have a route toward the OCI database network through ExpressRoute.</p>
<p>With a correctly configured ExpressRoute gateway and BGP route propagation, the required OCI routes are normally learned dynamically.</p>
<h3>Expected Azure route</h3>
<table>
<thead>
<tr>
<th>Destination</th>
<th>Next Hop</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;OCI VCN CIDR&gt;</code></td>
<td>Virtual Network Gateway</td>
</tr>
</tbody></table>
<p>Verify the effective routes on an Azure application server's network interface.</p>
<p>Navigate to:</p>
<p><strong>Azure Portal → Virtual Machines → Networking → Effective Routes</strong></p>
<p>Confirm that the OCI VCN prefix is reachable through the ExpressRoute virtual network gateway.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/d97ee7a0-023a-4629-9126-8b9c9365752d.png" alt="Azure–OCI Private Connectivity Guide" style="display:block;margin:0 auto" />

<h3>Important note</h3>
<p>In a standard deployment, it is generally unnecessary to create a user defined route for the OCI prefix if the correct BGP route is already being propagated.</p>
<p>Custom route tables should be introduced only when required by the network architecture.</p>
<p>If a custom route table is attached to the application subnet, ensure it does not block or override the ExpressRoute routes.</p>
<hr />
<h2>9. Step 7: Configure OCI Database Subnet Routing</h2>
<p>The OCI database subnet must have a route back to the Azure application subnet.</p>
<p>Navigate to:</p>
<p><strong>OCI Console → Networking → Virtual Cloud Networks → Subnets</strong></p>
<p>Select the database subnet and review its associated route table.</p>
<h3>OCI database subnet route table</h3>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target Type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;Azure VNet CIDR&gt;</code></td>
<td>Dynamic Routing Gateway</td>
<td><code>&lt;OCI DRG&gt;</code></td>
</tr>
</tbody></table>
<p>This route allows database servers to send return traffic toward Azure.</p>
<h3>OCI DRG route table</h3>
<p>Verify that the DRG route table associated with the VCN attachment contains the Azure VNet route through the FastConnect attachment.</p>
<p>Also verify that the DRG route table used for traffic arriving from FastConnect can reach the OCI database VCN.</p>
<h3>Expected traffic flow</h3>
<pre><code class="language-text">Oracle Database Server
        |
        v
OCI Database Subnet Route Table
        |
        v
OCI Dynamic Routing Gateway
        |
        v
OCI FastConnect
        |
        v
Azure ExpressRoute
        |
        v
Azure Application Server
</code></pre>
<p>Both forward and return routing must be configured correctly.</p>
<hr />
<h2>10. Step 8: Configure Azure Network Security Groups</h2>
<p>Azure Network Security Groups control traffic entering and leaving application server network interfaces and subnets.</p>
<p>For the application servers, allow outbound database connectivity to OCI.</p>
<h3>Example Azure NSG rule</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Direction</td>
<td>Outbound</td>
</tr>
<tr>
<td>Source</td>
<td><code>&lt;Azure Application Subnet&gt;</code></td>
</tr>
<tr>
<td>Destination</td>
<td><code>&lt;OCI Database Subnet&gt;</code></td>
</tr>
<tr>
<td>Protocol</td>
<td>TCP</td>
</tr>
<tr>
<td>Destination Port</td>
<td>1521</td>
</tr>
<tr>
<td>Action</td>
<td>Allow</td>
</tr>
</tbody></table>
<p>Port <code>1521</code> is commonly used by Oracle Database listeners.</p>
<p>However, the actual port must match the Oracle Database listener configuration.</p>
<p>If the application uses TCPS, a different listener port, or additional services, configure the required rules accordingly.</p>
<p>Avoid unnecessarily allowing all traffic between the two cloud environments.</p>
<hr />
<h2>11. Step 9: Configure OCI Network Security Groups</h2>
<p>On the OCI side, configure the database subnet's Network Security Group or Security List to permit connections from the Azure application servers.</p>
<h3>Example OCI NSG ingress rule</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Direction</td>
<td>Ingress</td>
</tr>
<tr>
<td>Source Type</td>
<td>CIDR</td>
</tr>
<tr>
<td>Source CIDR</td>
<td><code>&lt;Azure Application Subnet CIDR&gt;</code></td>
</tr>
<tr>
<td>IP Protocol</td>
<td>TCP</td>
</tr>
<tr>
<td>Destination Port</td>
<td>1521</td>
</tr>
<tr>
<td>Stateful</td>
<td>Yes</td>
</tr>
</tbody></table>
<p>This allows application servers hosted in Azure to connect to the Oracle Database listener in OCI.</p>
<p>For stronger security, restrict the source CIDR to the specific application subnet or application server IP addresses rather than the entire Azure VNet.</p>
<p>Ensure that any host-based firewalls and database listener access controls also permit the required connections.</p>
<hr />
<h2>12. Step 10: Configure Private DNS Resolution</h2>
<p>Network connectivity alone is not sufficient if applications rely on database hostnames.</p>
<p>For example, an application may connect using:</p>
<pre><code class="language-text">db-prod.internal.example.com
</code></pre>
<p>The Azure application servers must be able to resolve the database hostname to its OCI private IP address.</p>
<p>Possible DNS approaches include:</p>
<ul>
<li><p>Azure DNS Private Resolver</p>
</li>
<li><p>OCI DNS private zones</p>
</li>
<li><p>DNS forwarding between Azure and OCI</p>
</li>
<li><p>Existing enterprise DNS servers</p>
</li>
</ul>
<p>Choose the DNS design based on the organization's existing infrastructure.</p>
<h3>Example DNS resolution</h3>
<pre><code class="language-text">Azure Application Server
          |
          v
Private DNS Resolver
          |
          v
Oracle Database Hostname
          |
          v
OCI Database Private IP
</code></pre>
<p>Ensure that DNS queries and responses can traverse the interconnection where required.</p>
<p>Avoid configuring the application to use a public database endpoint when private connectivity is available.</p>
<hr />
<h2>13. Step 11: Test Application to Database Connectivity</h2>
<p>After completing the network configuration, perform connectivity tests.</p>
<h3>Test DNS resolution</h3>
<p>From an Azure application server:</p>
<pre><code class="language-powershell">nslookup db-prod.internal.example.com
</code></pre>
<p>Confirm that the hostname resolves to the correct OCI private IP address.</p>
<h3>Test database listener connectivity</h3>
<p>For Windows application servers:</p>
<pre><code class="language-powershell">Test-NetConnection db-prod.internal.example.com -Port 1521
</code></pre>
<p>For Linux application servers:</p>
<pre><code class="language-bash">nc -zv db-prod.internal.example.com 1521
</code></pre>
<p>A successful TCP connection confirms that the listener port is reachable.</p>
<p>It does not necessarily confirm that database authentication or SQL connectivity is working.</p>
<h3>Test Oracle Database connectivity</h3>
<p>If Oracle client tools are available:</p>
<pre><code class="language-bash">sqlplus username@//db-prod.internal.example.com:1521/service_name
</code></pre>
<p>Use the correct database service name and authentication method.</p>
<h3>Validate the traffic path</h3>
<p>Verify that the traffic follows:</p>
<pre><code class="language-text">Azure Application Server
          |
          v
Azure ExpressRoute Gateway
          |
          v
Azure ExpressRoute
          |
          v
OCI FastConnect
          |
          v
OCI DRG
          |
          v
Oracle Database Server
</code></pre>
<p>Also verify that the return traffic follows the same private interconnection.</p>
<hr />
<h2>14. High Availability and Performance Considerations</h2>
<h3>Redundant connectivity</h3>
<p>Oracle Interconnect for Azure supports redundant connectivity components.</p>
<p>Verify the redundancy provided by the selected ExpressRoute and FastConnect service configuration.</p>
<p>For mission critical workloads, consider additional redundancy across regions or peering locations where supported.</p>
<h3>ExpressRoute gateway sizing</h3>
<p>Select an appropriate Azure ExpressRoute gateway SKU based on application throughput and performance requirements.</p>
<h3>ExpressRoute FastPath</h3>
<p>For supported configurations, Azure ExpressRoute FastPath can reduce data path overhead by allowing traffic to bypass the virtual network gateway's data path.</p>
<p>Verify SKU and topology support before enabling FastPath.</p>
<h3>Database latency</h3>
<p>Application performance can be sensitive to database round trip latency.</p>
<p>Select suitable Azure and OCI regions and validate latency using application level tests.</p>
<h3>Cost considerations</h3>
<p>The architecture may incur charges for:</p>
<ul>
<li><p>Azure ExpressRoute circuit</p>
</li>
<li><p>Azure ExpressRoute virtual network gateway</p>
</li>
<li><p>OCI FastConnect virtual circuit</p>
</li>
<li><p>Data transfer, depending on the selected billing model</p>
</li>
<li><p>Other networking and monitoring services</p>
</li>
</ul>
<p>Review both Azure and OCI pricing before deployment.</p>
<hr />
<h2>15. Benefits of Azure and OCI Private Interconnection</h2>
<h3>Private application-to-database connectivity</h3>
<p>Applications communicate with Oracle Database servers through private network connectivity rather than public database endpoints.</p>
<h3>Multicloud flexibility</h3>
<p>Organizations can run application workloads in Azure while retaining Oracle Database workloads in OCI.</p>
<h3>Reduced exposure</h3>
<p>Database servers can remain in private OCI subnets without public IP addresses.</p>
<h3>Dynamic routing</h3>
<p>BGP enables the two cloud environments to exchange private network routes.</p>
<h3>Enterprise connectivity</h3>
<p>ExpressRoute and FastConnect provide dedicated private connectivity options suitable for enterprise workloads.</p>
<h3>Scalability</h3>
<p>The architecture can be extended to additional application servers, database servers, and supported network segments.</p>
<hr />
<h2>Conclusion</h2>
<p>Microsoft Azure ExpressRoute and Oracle Cloud Infrastructure FastConnect provide an effective solution for building private multicloud architectures.</p>
<p>By connecting Azure Virtual Networks to OCI Virtual Cloud Networks through Oracle Interconnect for Azure, organizations can host application servers in Azure while securely accessing Oracle Database workloads in OCI.</p>
<p>The key configuration components include Azure ExpressRoute circuits, ExpressRoute virtual network gateways, OCI FastConnect private virtual circuits, OCI Dynamic Routing Gateways, BGP routing, and appropriate network security rules.</p>
<p>Proper planning of CIDR ranges, route propagation, DNS resolution, connectivity testing, and high availability is essential for a successful deployment.</p>
<p>With the correct configuration, organizations can establish a reliable and secure private network connection between their Azure application infrastructure and Oracle Database environment in OCI.</p>
<hr />
<h2>References</h2>
<ul>
<li><p><a href="https://docs.oracle.com/en-us/iaas/Content/multicloud/interconnect-azure.htm">Oracle Interconnect for Azure – Oracle Documentation</a></p>
</li>
<li><p><a href="https://docs.oracle.com/en/solutions/oci-azure/index.html">Set Up a Private Interconnection Between Microsoft Azure and Oracle Cloud</a></p>
</li>
<li><p><a href="https://learn.microsoft.com/en-us/azure/expressroute/expressroute-about-virtual-network-gateways">Microsoft Azure ExpressRoute Virtual Network Gateways</a></p>
</li>
<li><p><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/fastconnectoverview.htm">Oracle Cloud Infrastructure FastConnect Overview</a></p>
</li>
<li><p><a href="https://learn.microsoft.com/en-us/azure/virtual-machines/workloads/oracle/oracle-oci-overview">Oracle Application Solutions Integrating Azure and OCI</a></p>
</li>
</ul>
<p><em>Disclaimer: This article provides a reference architecture and general configuration procedure. Service availability, portal options, supported region pairs, bandwidth options, and pricing should be verified against current Oracle and Microsoft documentation before production implementation.</em></p>
]]></content:encoded></item><item><title><![CDATA[Configuring Palo Alto as a Perimeter Firewall in Oracle Cloud Infrastructure (OCI)]]></title><description><![CDATA[Learn how to configure Palo Alto as an OCI perimeter firewall using custom route tables, private subnets, and centralized traffic inspection.]]></description><link>https://oracletechinsights.hashnode.dev/palo-alto-perimeter-firewall-oci</link><guid isPermaLink="true">https://oracletechinsights.hashnode.dev/palo-alto-perimeter-firewall-oci</guid><category><![CDATA[Oraclecloudinfrastructure]]></category><category><![CDATA[Palo Alto Networks]]></category><category><![CDATA[cloud security]]></category><category><![CDATA[networking]]></category><category><![CDATA[firewall]]></category><dc:creator><![CDATA[Janith Jayasinghe]]></dc:creator><pubDate>Sun, 18 Oct 2026 05:43:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/df6c3599-c687-418a-b917-7d0a58e3e9f8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>When deploying enterprise applications in Oracle Cloud Infrastructure (OCI), securing network traffic is one of the most important aspects of infrastructure design.</p>
<p>A typical OCI environment consists of multiple private subnets hosting application servers, database servers, Active Directory domain controllers, and management systems.</p>
<p>While OCI provides native networking services such as Internet Gateways and NAT Gateways, organizations may require a centralized next generation firewall (NGFW) to inspect and control inbound, outbound, and internal network traffic.</p>
<p>One approach is to deploy <strong>Palo Alto Networks VM-Series as the perimeter firewall</strong> and use OCI custom routing to direct traffic through the firewall.</p>
<p>In this article, we will explore how to configure OCI networking to achieve the following objectives:</p>
<ul>
<li><p>Use Palo Alto as the centralized perimeter firewall.</p>
</li>
<li><p>Route inbound internet traffic through Palo Alto.</p>
</li>
<li><p>Route outbound internet traffic from private subnets through Palo Alto.</p>
</li>
<li><p>Eliminate the requirement for an OCI NAT Gateway.</p>
</li>
<li><p>Enable firewall inspection between private subnets.</p>
</li>
<li><p>Maintain private IP addressing for application, database, and Active Directory servers.</p>
</li>
<li><p>Support existing VPN or on-premises connectivity.</p>
</li>
</ul>
<p>This article focuses only on <strong>OCI networking configurations</strong>. Palo Alto firewall policies, NAT rules, and internal routing configurations are outside the scope.</p>
<blockquote>
<p><strong>Important:</strong> Palo Alto can replace the outbound NAT functionality of an OCI NAT Gateway, but it cannot replace the OCI Internet Gateway itself. The Internet Gateway remains necessary to provide public internet connectivity to the firewall.</p>
</blockquote>
<hr />
<h2>1. Architecture Overview</h2>
<p>The proposed architecture consists of a single OCI Virtual Cloud Network (VCN) with one public subnet for the Palo Alto untrust interface and multiple private subnets for workloads.</p>
<p>The firewall's trust interface is attached to a separate private subnet.</p>
<h3>Network components</h3>
<table>
<thead>
<tr>
<th>Component</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>OCI VCN</td>
<td>Provides the network environment</td>
</tr>
<tr>
<td>Internet Gateway</td>
<td>Provides public internet connectivity</td>
</tr>
<tr>
<td>Palo Alto VM-Series</td>
<td>Centralized perimeter firewall</td>
</tr>
<tr>
<td>Public subnet</td>
<td>Hosts the firewall untrust interface</td>
</tr>
<tr>
<td>Private trust subnet</td>
<td>Hosts the firewall trust interface</td>
</tr>
<tr>
<td>Active Directory subnet</td>
<td>Hosts domain controllers</td>
</tr>
<tr>
<td>Application subnet</td>
<td>Hosts application servers</td>
</tr>
<tr>
<td>Database subnet</td>
<td>Hosts database servers</td>
</tr>
<tr>
<td>Management subnet</td>
<td>Hosts administrative and monitoring systems</td>
</tr>
<tr>
<td>DRG (optional)</td>
<td>Provides on-premises connectivity</td>
</tr>
</tbody></table>
<h3>Proposed network architecture</h3>
<pre><code class="language-text">                         INTERNET
                            |
                            |
                     OCI Internet Gateway
                            |
                            |
                  +---------------------+
                  |    Public Subnet    |
                  |                     |
                  | Palo Alto Untrust   |
                  |     Interface       |
                  +----------+----------+
                             |
                             |
                  +----------v----------+
                  |    PALO ALTO FW     |
                  |      VM-Series      |
                  +----------+----------+
                             |
                             |
                  +----------v----------+
                  |  Palo Alto Trust    |
                  |  Private Interface  |
                  +----------+----------+
                             |
          +------------------+------------------+
          |                  |                  |
          v                  v                  v
   +-------------+    +-------------+    +-------------+
   | AD Subnet   |    | Application |    | DB Subnet   |
   |             |    | Subnet      |    |             |
   | AD Servers  |    | App Servers |    | DB Servers  |
   +-------------+    +-------------+    +-------------+
                             |
                             v
                     +---------------+
                     | Management    |
                     | Subnet        |
                     +---------------+
</code></pre>
<p>All workload subnets are private. Only the Palo Alto untrust interface requires a public IP address.</p>
<p>The diagram illustrates the logical traffic paths. Actual connectivity depends on the OCI route tables, VNIC placement, and firewall forwarding configuration.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/aa2c0516-d7e3-4fe7-b177-ea092170c6ad.png" alt="OCI Palo Alto Perimeter Architecture" style="display:block;margin:0 auto" />

<hr />
<h2>2. Understanding the Traffic Flow</h2>
<p>Before configuring the OCI networking components, it is important to understand how traffic will flow through the environment.</p>
<h3>Inbound internet traffic</h3>
<pre><code class="language-text">Internet
   |
   v
OCI Internet Gateway
   |
   v
Palo Alto Public IP
   |
   v
Palo Alto Firewall
   |
   v
Private Application Server
</code></pre>
<p>The Palo Alto firewall becomes the public-facing entry point for applications.</p>
<p>Application servers remain in private subnets without public IP addresses.</p>
<h3>Outbound internet traffic</h3>
<pre><code class="language-text">Private Server
   |
   v
Private Subnet Route Table
   |
   v
Palo Alto Trust Interface
   |
   v
Palo Alto Firewall
   |
   v
Palo Alto Untrust Interface
   |
   v
OCI Internet Gateway
   |
   v
Internet
</code></pre>
<p>Outbound traffic is directed through Palo Alto instead of an OCI NAT Gateway.</p>
<h3>Internal subnet traffic</h3>
<pre><code class="language-text">Application Server
   |
   v
OCI Intra-VCN Routing
   |
   v
Palo Alto Firewall
   |
   v
Database Server
</code></pre>
<p>For internal traffic inspection, explicit intra-VCN routes must be configured.</p>
<p>A default route alone does not guarantee that communication between private subnets will pass through the firewall.</p>
<hr />
<h2>3. Step 1: Create the OCI Virtual Cloud Network</h2>
<p>Navigate to:</p>
<p><strong>OCI Console → Networking → Virtual Cloud Networks</strong></p>
<p>Create a VCN using an appropriate private CIDR block.</p>
<p>For this article, we will use generic subnet placeholders instead of actual IP addresses.</p>
<h3>Recommended subnet structure</h3>
<table>
<thead>
<tr>
<th>Subnet name</th>
<th>Type</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;PA Untrust Subnet&gt;</code></td>
<td>Public</td>
</tr>
<tr>
<td><code>&lt;PA Trust Subnet&gt;</code></td>
<td>Private</td>
</tr>
<tr>
<td><code>&lt;AD Subnet&gt;</code></td>
<td>Private</td>
</tr>
<tr>
<td><code>&lt;Application Subnet&gt;</code></td>
<td>Private</td>
</tr>
<tr>
<td><code>&lt;Database Subnet&gt;</code></td>
<td>Private</td>
</tr>
<tr>
<td><code>&lt;Management Subnet&gt;</code></td>
<td>Private</td>
</tr>
</tbody></table>
<p>Ensure that all subnet CIDRs are non-overlapping.</p>
<p>For better control, assign separate route tables to each subnet.</p>
<p>This allows routing changes to be implemented independently without affecting unrelated workloads.</p>
<hr />
<h2>4. Step 2: Configure the Internet Gateway</h2>
<p>Navigate to:</p>
<p><strong>VCN → Internet Gateways → Create Internet Gateway</strong></p>
<p>Create an Internet Gateway and attach it to the VCN.</p>
<p>The Internet Gateway is responsible for providing internet connectivity to the Palo Alto firewall's public facing interface.</p>
<h3>Important consideration</h3>
<p>Although Palo Alto will act as the perimeter firewall, the Internet Gateway is still required.</p>
<p>The Internet Gateway provides OCI's connection to the public internet.</p>
<p>Palo Alto provides security inspection, forwarding, and NAT functionality.</p>
<p>Therefore:</p>
<ul>
<li><p><strong>Internet Gateway:</strong> Required.</p>
</li>
<li><p><strong>NAT Gateway:</strong> Not required.</p>
</li>
<li><p><strong>Palo Alto Firewall:</strong> Handles centralized traffic inspection and NAT.</p>
</li>
</ul>
<hr />
<h2>5. Step 3: Configure Palo Alto Firewall Network Interfaces</h2>
<p>Deploy the Palo Alto VM-Series firewall using an OCI-supported deployment method.</p>
<p>The firewall should have at least two data interfaces.</p>
<table>
<thead>
<tr>
<th>Interface</th>
<th>Subnet</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>Untrust</td>
<td><code>&lt;PA Untrust Subnet&gt;</code></td>
<td>Internet-facing interface</td>
</tr>
<tr>
<td>Trust</td>
<td><code>&lt;PA Trust Subnet&gt;</code></td>
<td>Private network interface</td>
</tr>
</tbody></table>
<p>Assign a public IP address to the Palo Alto untrust interface.</p>
<p>The trust interface should use a private IP address.</p>
<h3>Disable source/destination checking</h3>
<p>OCI normally performs source/destination checking on VNICs.</p>
<p>This ensures that packets received by a VNIC are intended for that interface.</p>
<p>However, network appliances such as firewalls need to forward packets on behalf of other resources.</p>
<p>Therefore, source/destination checking must be disabled on the firewall's forwarding VNICs.</p>
<p>Navigate to:</p>
<p><strong>Compute → Instances → Palo Alto Instance → Attached VNICs</strong></p>
<p>Open the relevant VNIC and enable:</p>
<p><strong>Skip Source/Destination Check</strong></p>
<p>Apply this setting to the forwarding interfaces as required by the firewall architecture.</p>
<p>This allows Palo Alto to forward traffic between different OCI subnets.</p>
<hr />
<h2>6. Step 4: Configure the Palo Alto Public Subnet Route Table</h2>
<p>Create a dedicated route table for the firewall's untrust subnet.</p>
<h3>Route table: RT-PA-UNTRUST</h3>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>0.0.0.0/0</code></td>
<td>Internet Gateway</td>
<td><code>&lt;OCI Internet Gateway&gt;</code></td>
</tr>
</tbody></table>
<p>Associate this route table with the Palo Alto untrust subnet.</p>
<h3>How it works</h3>
<p>When Palo Alto forwards outbound internet traffic through its untrust interface, OCI uses this route to send the traffic to the Internet Gateway.</p>
<p>The Internet Gateway then provides connectivity to the public internet.</p>
<p><strong>Do not configure the untrust subnet's default route back to the Palo Alto firewall.</strong> This could create a routing loop.</p>
<hr />
<h2>7. Step 5: Configure Private Subnet Route Tables</h2>
<p>The next step is to direct outbound internet traffic from private workloads through Palo Alto.</p>
<p>Each private workload subnet should have a default route targeting the firewall's trust private IP.</p>
<h3>Active Directory subnet route table</h3>
<p><strong>RT-AD-PRIVATE</strong></p>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>0.0.0.0/0</code></td>
<td>Private IP</td>
<td><code>&lt;PA FW Trust IP&gt;</code></td>
</tr>
</tbody></table>
<h3>Application subnet route table</h3>
<p><strong>RT-APP-PRIVATE</strong></p>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>0.0.0.0/0</code></td>
<td>Private IP</td>
<td><code>&lt;PA FW Trust IP&gt;</code></td>
</tr>
</tbody></table>
<h3>Database subnet route table</h3>
<p><strong>RT-DB-PRIVATE</strong></p>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>0.0.0.0/0</code></td>
<td>Private IP</td>
<td><code>&lt;PA FW Trust IP&gt;</code></td>
</tr>
</tbody></table>
<h3>Management subnet route table</h3>
<p><strong>RT-MGMT-PRIVATE</strong></p>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>0.0.0.0/0</code></td>
<td>Private IP</td>
<td><code>&lt;PA FW Trust IP&gt;</code></td>
</tr>
</tbody></table>
<p>In OCI, the target type should be <strong>Private IP</strong>, selecting the private IP resource associated with the Palo Alto trust VNIC.</p>
<p>The route target must be supported and reachable in the chosen OCI network topology.</p>
<h3>Resulting traffic flow</h3>
<pre><code class="language-text">Private Server
      |
      v
Default Route (0.0.0.0/0)
      |
      v
Palo Alto Trust IP
      |
      v
Palo Alto Firewall
      |
      v
Palo Alto Untrust Interface
      |
      v
Internet Gateway
      |
      v
Internet
</code></pre>
<p>With this configuration, the OCI NAT Gateway is no longer required for outbound internet connectivity from these private subnets.</p>
<hr />
<h2>8. Step 6: Configure Intra-VCN Routing</h2>
<p>This is one of the most important parts of the architecture.</p>
<p>By default, OCI provides local routing between subnets within the same VCN.</p>
<p>For example:</p>
<pre><code class="language-text">Application Server → Database Server
</code></pre>
<p>This communication may occur directly through OCI networking without passing through Palo Alto.</p>
<p>If the requirement is to inspect communication between private subnets, additional routing is necessary.</p>
<h3>Application subnet route table</h3>
<p>Add an explicit route:</p>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;Database Subnet CIDR&gt;</code></td>
<td>Private IP</td>
<td><code>&lt;PA FW Trust IP&gt;</code></td>
</tr>
</tbody></table>
<h3>Database subnet route table</h3>
<p>Add the corresponding return route:</p>
<table>
<thead>
<tr>
<th>Destination CIDR</th>
<th>Target type</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;Application Subnet CIDR&gt;</code></td>
<td>Private IP</td>
<td><code>&lt;PA FW Trust IP&gt;</code></td>
</tr>
</tbody></table>
<p>These routes are intended to redirect traffic between the application and database subnets through Palo Alto.</p>
<h3>Why configure both directions?</h3>
<p>Palo Alto is a stateful firewall.</p>
<p>It tracks connections and requires the relevant return traffic to follow the correct session path.</p>
<p>If application-to-database traffic passes through Palo Alto but database-to-application traffic bypasses it, communication may fail.</p>
<h3>Additional considerations</h3>
<p>For complete inter-subnet inspection, apply appropriate routing to the other private subnets, including:</p>
<ul>
<li><p>Active Directory</p>
</li>
<li><p>Application</p>
</li>
<li><p>Database</p>
</li>
<li><p>Management</p>
</li>
</ul>
<p>Ensure that the firewall's own routing allows packets to reach their final destination.</p>
<p>Also, note that OCI subnet route tables cannot force traffic between two hosts in the same subnet through a firewall. If same subnet inspection is required, additional network segmentation may be necessary.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/e0c414a9-c66d-410f-a4b3-42aa3300ccad.png" alt="OCI VCN Palo Alto Firewall Architecture" style="display:block;margin:0 auto" />

<hr />
<h2>9. Step 7: Configure OCI Network Security Groups</h2>
<p>OCI Network Security Groups (NSGs) provide network-level security controls for VNICs.</p>
<p>Route tables determine the traffic path, while NSGs determine which traffic is allowed.</p>
<h3>Palo Alto untrust interface</h3>
<p>Allow only the required internet-facing ports.</p>
<p>For example:</p>
<table>
<thead>
<tr>
<th>Source</th>
<th>Protocol</th>
<th>Port</th>
</tr>
</thead>
<tbody><tr>
<td>Approved internet clients</td>
<td>TCP</td>
<td>443</td>
</tr>
<tr>
<td>Approved administration networks</td>
<td>TCP</td>
<td>Required management ports</td>
</tr>
</tbody></table>
<p>Avoid unrestricted administrative access from the public internet.</p>
<h3>Palo Alto trust interface</h3>
<p>Allow the required traffic between the firewall and private workloads.</p>
<h3>Application subnet</h3>
<p>Allow the required application traffic from authorized sources.</p>
<h3>Database subnet</h3>
<p>Restrict database access to approved application servers and administrative systems.</p>
<h3>Active Directory subnet</h3>
<p>Allow the necessary Active Directory protocols, including DNS, Kerberos, LDAP, SMB, and required RPC communication.</p>
<p>Security rules must account for the actual packet source and destination addresses, including any NAT performed by the firewall.</p>
<hr />
<h2>10. Step 8: Configure Inbound Internet Access</h2>
<p>Since there are no public Load Balancers, internet facing applications are accessed through the Palo Alto public IP.</p>
<h3>Traffic flow</h3>
<pre><code class="language-text">Internet Client
       |
       v
Palo Alto Public IP
       |
       v
Palo Alto Firewall
       |
       v
Private Application Server
</code></pre>
<p>From the OCI side, verify the following:</p>
<ol>
<li><p>The Palo Alto untrust interface has a public IP address.</p>
</li>
<li><p>The untrust subnet has a default route to the Internet Gateway.</p>
</li>
<li><p>OCI security rules allow the required incoming traffic.</p>
</li>
<li><p>Application servers remain in private subnets.</p>
</li>
<li><p>The application subnet has a valid return route through Palo Alto.</p>
</li>
<li><p>Source/destination checking is disabled on the required firewall forwarding VNICs.</p>
</li>
</ol>
<p>The Palo Alto firewall must also be configured to forward traffic to the relevant private application server.</p>
<p>The firewall-specific configuration is outside the scope of this article.</p>
<hr />
<h2>11. Step 9: Configure On-Premises Connectivity</h2>
<p>If the environment requires connectivity to an on-premises data center, OCI supports IPSec VPN and FastConnect through a Dynamic Routing Gateway (DRG).</p>
<p>There are two common deployment models.</p>
<h3>Option 1: VPN terminates on Palo Alto</h3>
<pre><code class="language-text">On-Premises Network
         |
         v
IPSec VPN Tunnel
         |
         v
Palo Alto Firewall
         |
         v
Private OCI Subnets
</code></pre>
<h3>Option 2: VPN terminates on OCI DRG</h3>
<pre><code class="language-text">On-Premises Network
         |
         v
OCI DRG
         |
         v
Palo Alto Firewall
         |
         v
Private OCI Subnets
</code></pre>
<p>For the second option, configure the required DRG route tables and VCN ingress routing to ensure that the intended traffic passes through Palo Alto.</p>
<p>A simple private subnet route to the DRG may bypass the firewall.</p>
<p>The appropriate routing design depends on the VPN termination point and the OCI topology.</p>
<hr />
<h2>12. Step 10: Validate the OCI Network Configuration</h2>
<p>After completing the OCI configuration, perform connectivity tests.</p>
<h3>Outbound internet testing</h3>
<p>From a private server, test access to an approved external endpoint.</p>
<p>Confirm that the traffic is routed through Palo Alto.</p>
<h3>Inbound internet testing</h3>
<p>Access the published application through the Palo Alto public IP or DNS name.</p>
<p>Confirm that the traffic reaches the private application server.</p>
<h3>Internal connectivity testing</h3>
<p>Test communication between:</p>
<ul>
<li><p>Application and database servers</p>
</li>
<li><p>Application and Active Directory servers</p>
</li>
<li><p>Management and application servers</p>
</li>
</ul>
<p>Confirm that the required traffic passes through Palo Alto.</p>
<h3>OCI troubleshooting tools</h3>
<p>OCI provides several tools for validating the network configuration.</p>
<p><strong>Network Path Analyzer</strong></p>
<p>Helps identify network configuration issues along supported OCI paths.</p>
<p><strong>VCN Flow Logs</strong></p>
<p>Provides visibility into accepted and rejected traffic.</p>
<p><strong>Route Tables</strong></p>
<p>Verify destination CIDRs and private IP route targets.</p>
<p><strong>Network Security Groups</strong></p>
<p>Verify ingress and egress security rules.</p>
<p><strong>VNIC Configuration</strong></p>
<p>Confirm that source/destination checking is disabled on the required forwarding interfaces.</p>
<p>Network Path Analyzer does not fully validate third-party firewall policies or NAT behavior, so firewall-side verification is also necessary.</p>
<hr />
<h2>13. Production Considerations</h2>
<p>Before implementing this architecture in production, consider the following.</p>
<h3>High availability</h3>
<p>A single Palo Alto firewall becomes a critical dependency for inbound, outbound, and inspected internal traffic.</p>
<p>For production environments, consider deploying multiple firewall instances with a supported high-availability design.</p>
<h3>Symmetric routing</h3>
<p>Ensure that forward and return traffic follow the intended firewall path.</p>
<p>Asymmetric routing can cause stateful firewall sessions to fail.</p>
<h3>OCI Service Gateway</h3>
<p>Some private workloads may require access to OCI services such as Object Storage.</p>
<p>A Service Gateway can provide private connectivity to supported OCI services.</p>
<p>However, if the security requirement is to inspect all applicable network traffic through Palo Alto, avoid adding bypass routes without reviewing the architecture.</p>
<h3>Route table management</h3>
<p>For environments with many private subnets, maintaining individual route rules can become complex.</p>
<p>Consider using consistent naming conventions and infrastructure-as-code tools such as Terraform to manage route tables and security configurations.</p>
<hr />
<h2>14. Key Benefits</h2>
<h3>Centralized security</h3>
<p>Palo Alto becomes the centralized security enforcement point for internet-facing and selected internal network traffic.</p>
<h3>Reduced public exposure</h3>
<p>Application, database, Active Directory, and management servers remain in private subnets.</p>
<h3>No OCI NAT Gateway required</h3>
<p>Outbound internet access can be provided through Palo Alto using the existing Internet Gateway.</p>
<h3>Internal network segmentation</h3>
<p>OCI intra-VCN routing enables firewall inspection between selected private subnets.</p>
<h3>Improved network visibility</h3>
<p>Centralized traffic inspection helps administrators monitor and troubleshoot network communication.</p>
<h3>Flexible architecture</h3>
<p>The design can be extended to support multiple application environments and additional private subnets.</p>
<hr />
<h2>Conclusion</h2>
<p>Oracle Cloud Infrastructure provides flexible networking capabilities that allow third-party network appliances to be integrated into enterprise environments.</p>
<p>By combining OCI route tables, private IP next hop routing, and intra-VCN routing, Palo Alto Networks VM-Series can be deployed as a centralized perimeter firewall for private OCI workloads.</p>
<p>This architecture enables organizations to control inbound and outbound internet connectivity, eliminate the need for an OCI NAT Gateway, and introduce security inspection between selected private subnets.</p>
<hr />
<h2>References</h2>
<ul>
<li><p><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingroutetables.htm">Oracle Cloud Infrastructure – VCN Route Tables</a></p>
</li>
<li><p><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingVCNs.htm">Oracle Cloud Infrastructure – Virtual Cloud Networks</a></p>
</li>
<li><p><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/networksecuritygroups.htm">Oracle Cloud Infrastructure – Network Security Groups</a></p>
</li>
<li><p><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/path_analyzer.htm">Oracle Cloud Infrastructure – Network Path Analyzer</a></p>
</li>
<li><p><a href="https://docs.paloaltonetworks.com/">Palo Alto Networks Documentation</a></p>
</li>
</ul>
<p><em>Disclaimer: The configurations provided in this article are architectural examples. Always validate route target support, firewall VNIC placement, traffic symmetry, and security rules before implementing changes in a production environment.</em></p>
]]></content:encoded></item><item><title><![CDATA[Securing OCI Public Load Balancers with Palo Alto Firewall Using Intra-VCN Routing]]></title><description><![CDATA[Integrate Palo Alto Firewall with OCI public Load Balancers using intra-VCN routing while preserving public IPs and securing application traffic.]]></description><link>https://oracletechinsights.hashnode.dev/securing-oci-public-load-balancers-with-palo-alto-firewall-using-intra-vcn-routing</link><guid isPermaLink="true">https://oracletechinsights.hashnode.dev/securing-oci-public-load-balancers-with-palo-alto-firewall-using-intra-vcn-routing</guid><category><![CDATA[Oraclecloudinfrastructure]]></category><category><![CDATA[palo alto]]></category><category><![CDATA[oci networking]]></category><category><![CDATA[oci load balancer]]></category><category><![CDATA[securing oci]]></category><dc:creator><![CDATA[Janith Jayasinghe]]></dc:creator><pubDate>Wed, 14 Oct 2026 05:55:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/da86fa11-8128-47a0-af86-1a05394d9afa.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>When designing enterprise cloud infrastructure, security and network flexibility are two critical considerations.</p>
<p>In Oracle Cloud Infrastructure (OCI), public Layer 7 Load Balancers are commonly used to distribute incoming application traffic across backend servers hosted in private subnets.</p>
<p>However, organizations may need to introduce a next-generation firewall (NGFW), such as Palo Alto Networks VM-Series, into an existing architecture without changing public IP addresses, modifying DNS records, or recreating Load Balancers.</p>
<p>One possible solution is to use OCI intra-VCN routing to insert a Palo Alto firewall between the existing public Load Balancers and their backend application servers.</p>
<p>In this article, we will explore how to design this architecture while achieving the following objectives:</p>
<ul>
<li>Preserve existing public Load Balancer IP addresses.</li>
<li>Inspect Load Balancer-to-backend application traffic using Palo Alto.</li>
<li>Route outbound internet traffic from private servers through Palo Alto.</li>
<li>Maintain direct communication between internal application and database subnets.</li>
<li>Preserve existing site-to-site VPN connectivity.</li>
<li>Eliminate the requirement for an OCI NAT Gateway.</li>
</ul>
<blockquote>
<p><strong>Important:</strong> This design places public Layer 7 Load Balancers in front of the Palo Alto firewall. The firewall inspects the backend side connection, not necessarily the original client to Load Balancer connection. The routing configuration must also be validated against OCI's private IP next hop and intra-VCN routing requirements.</p>
</blockquote>
<hr />
<h2>1. Understanding the Existing Architecture</h2>
<p>Consider an OCI environment with the following components:</p>
<table>
<thead>
<tr>
<th>Component</th>
<th>Description</th>
</tr>
</thead>
<tbody><tr>
<td>Virtual Cloud Network</td>
<td>Hosts the application infrastructure</td>
</tr>
<tr>
<td>Internet Gateway</td>
<td>Provides internet connectivity</td>
</tr>
<tr>
<td>Public Load Balancers</td>
<td>Existing Layer 7 Load Balancers with public IP addresses</td>
</tr>
<tr>
<td>Palo Alto VM-Series</td>
<td>Existing next-generation firewall</td>
</tr>
<tr>
<td>Untrust Interface</td>
<td>Internet-facing firewall interface</td>
</tr>
<tr>
<td>Trust Interface</td>
<td>Private network facing firewall interface</td>
</tr>
<tr>
<td>Application Subnet</td>
<td>Hosts application servers</td>
</tr>
<tr>
<td>Database Subnet</td>
<td>Hosts database servers</td>
</tr>
<tr>
<td>VPN Connectivity</td>
<td>Connects OCI to on-premises networks</td>
</tr>
</tbody></table>
<p>In the original architecture, internet users connect directly to public OCI Load Balancers, which forward traffic to application servers hosted in private subnets.</p>
<p>The Palo Alto firewall handles other network traffic, including VPN connectivity and selected private network communication.</p>
<p>The objective is to introduce firewall inspection for application backend traffic without modifying the existing public facing Load Balancers.</p>
<h2>2. Proposed Architecture</h2>
<p>The proposed design retains the existing OCI public Load Balancers and uses custom subnet routing to direct their backend traffic through Palo Alto.</p>
<h3>Inbound application traffic</h3>
<pre><code class="language-text">Internet
   |
   v
OCI Internet Gateway
   |
   v
OCI Public Layer 7 Load Balancer
   |
   v
Palo Alto Firewall
   |
   v
Private Application Server
</code></pre>
<h3>Outbound internet traffic</h3>
<pre><code class="language-text">Private Application Server
   |
   v
Palo Alto Trust Interface
   |
   v
Palo Alto Firewall
   |
   v
Palo Alto Untrust Interface
   |
   v
OCI Internet Gateway
   |
   v
Internet
</code></pre>
<h3>Internal application communication</h3>
<pre><code class="language-text">Application Server
   |
   | OCI Local VCN Routing
   |
   v
Database Server
</code></pre>
<p>Internal application to database traffic continues to use OCI's local routing and does not need to pass through the firewall.</p>
<h3>Network Architecture Diagram</h3>
<p><img src="https://cdn.hashnode.com/uploads/covers/6acf060ec5c1c1074a0bb596/194bf258-1b5d-4656-ae1b-294b52d233b4.png" alt="OCI VCN Firewall Network Architecture (2)" /></p>
<p>The diagram illustrates how public Load Balancers, the Palo Alto firewall, private application subnets, VPN connectivity, and internet access work together.</p>
<hr />
<h2>3. Understanding OCI Intra-VCN Routing</h2>
<p>OCI automatically provides connectivity between subnets within the same Virtual Cloud Network.</p>
<p>For example, an application server in one subnet can communicate with a database server in another subnet through OCI's internal networking.</p>
<p>However, OCI also supports custom intra-VCN routing, allowing selected traffic to be directed through a network appliance such as a firewall.</p>
<p>This capability is particularly useful for:</p>
<ul>
<li>Network traffic inspection</li>
<li>Security segmentation</li>
<li>Centralized firewall enforcement</li>
<li>Routing through third-party network appliances</li>
</ul>
<p>For this architecture, we use intra-VCN routing to redirect traffic between the Load Balancer subnet and application subnet through Palo Alto.</p>
<p>The routing must be configured in both directions to maintain stateful firewall sessions.</p>
<hr />
<h2>4. Configuring the Public Load Balancer Subnet</h2>
<p>The first requirement is to retain the existing Load Balancers in their current public subnet.</p>
<p>There is no need to recreate them or change their public IP addresses.</p>
<h3>Load Balancer subnet route table</h3>
<p>Create or modify the route table associated with the public Load Balancer subnet.</p>
<table>
<thead>
<tr>
<th>Destination</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;Application Subnet CIDR&gt;</code></td>
<td><code>&lt;PA FW LB-Side IP&gt;</code></td>
</tr>
<tr>
<td><code>0.0.0.0/0</code></td>
<td>Internet Gateway</td>
</tr>
</tbody></table>
<p>The first route directs traffic destined for the application subnet through the Palo Alto firewall.</p>
<p>The second route allows the public Load Balancers to continue communicating with internet clients.</p>
<h3>Why this preserves the public IP addresses</h3>
<p>The Load Balancers remain unchanged.</p>
<p>We are only modifying how backend traffic is routed within the VCN.</p>
<p>Therefore, the existing public IP addresses, DNS records, and client-facing application endpoints can remain the same.</p>
<p><strong>Important consideration:</strong> The firewall private IP must be a supported and reachable route target. The chosen firewall interface must have a valid forwarding path toward the application subnet.</p>
<hr />
<h2>5. Configuring the Application Subnet</h2>
<p>The application subnet route table is equally important.</p>
<p>Palo Alto is a stateful firewall, meaning it tracks connections and expects to see the traffic required to maintain their session state.</p>
<p>If Load Balancer-to-application traffic passes through Palo Alto but the response bypasses it, connections may fail.</p>
<h3>Application subnet route table</h3>
<table>
<thead>
<tr>
<th>Destination</th>
<th>Target</th>
</tr>
</thead>
<tbody><tr>
<td><code>&lt;LB Subnet CIDR&gt;</code></td>
<td><code>&lt;PA FW Trust IP1&gt;</code></td>
</tr>
<tr>
<td><code>0.0.0.0/0</code></td>
<td><code>&lt;PA FW Trust IP1&gt;</code></td>
</tr>
<tr>
<td><code>&lt;On-Premises CIDR&gt;</code></td>
<td>Existing VPN/DRG route</td>
</tr>
</tbody></table>
<p>The route to the Load Balancer subnet ensures that application responses return through Palo Alto.</p>
<p>The default route directs outbound internet traffic through the firewall.</p>
<p>Existing VPN or DRG routes should remain unchanged.</p>
<h3>What happens to internal traffic?</h3>
<p>Internal communication can continue using OCI local routing.</p>
<p>For example:</p>
<pre><code class="language-text">Application Server → Database Server
</code></pre>
<p>This traffic does not need to pass through Palo Alto unless explicitly required by the security design.</p>
<p>A default route to Palo Alto does not automatically override more specific routes for internal VCN destinations.</p>
<hr />
<h2>6. Configuring Palo Alto Firewall</h2>
<p>After configuring OCI route tables, the Palo Alto firewall must be configured to forward and inspect the required traffic.</p>
<h3>6.1 Firewall routing</h3>
<p>The firewall requires routes for the following destinations:</p>
<table>
<thead>
<tr>
<th>Destination</th>
<th>Next Hop / Interface</th>
</tr>
</thead>
<tbody><tr>
<td>Internet (<code>0.0.0.0/0</code>)</td>
<td>Untrust interface via OCI subnet gateway</td>
</tr>
<tr>
<td>Application subnets</td>
<td>Appropriate trust-side forwarding path</td>
</tr>
<tr>
<td>Load Balancer subnet</td>
<td>Appropriate LB-side forwarding path</td>
</tr>
<tr>
<td>On-premises networks</td>
<td>Existing VPN tunnel routes</td>
</tr>
</tbody></table>
<p>The firewall's routing configuration must match the OCI route tables.</p>
<h3>6.2 Security policies</h3>
<p>Configure security policies to permit the required communication.</p>
<p><strong>Load Balancer to application traffic</strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Source zone</td>
<td>LB-facing zone</td>
</tr>
<tr>
<td>Destination zone</td>
<td>Application facing zone</td>
</tr>
<tr>
<td>Source</td>
<td><code>&lt;LB Subnet&gt;</code></td>
</tr>
<tr>
<td>Destination</td>
<td><code>&lt;Application Subnet&gt;</code></td>
</tr>
<tr>
<td>Applications</td>
<td>Required application protocols</td>
</tr>
<tr>
<td>Services</td>
<td>Application backend ports</td>
</tr>
<tr>
<td>Action</td>
<td>Allow</td>
</tr>
<tr>
<td>Logging</td>
<td>Enabled</td>
</tr>
</tbody></table>
<p><strong>Private server outbound internet traffic</strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Source zone</td>
<td>Trust</td>
</tr>
<tr>
<td>Destination zone</td>
<td>Untrust</td>
</tr>
<tr>
<td>Source</td>
<td><code>&lt;Private Subnet CIDRs&gt;</code></td>
</tr>
<tr>
<td>Destination</td>
<td>Approved internet destinations</td>
</tr>
<tr>
<td>Services</td>
<td>Required outbound ports</td>
</tr>
<tr>
<td>Action</td>
<td>Allow</td>
</tr>
<tr>
<td>Logging</td>
<td>Enabled</td>
</tr>
</tbody></table>
<h3>6.3 Source NAT configuration</h3>
<p>Private application servers use private IP addresses that cannot be routed directly over the internet.</p>
<p>To provide outbound internet access, configure source NAT on Palo Alto.</p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Configuration</th>
</tr>
</thead>
<tbody><tr>
<td>Original source zone</td>
<td>Trust</td>
</tr>
<tr>
<td>Destination zone</td>
<td>Untrust</td>
</tr>
<tr>
<td>Source addresses</td>
<td><code>&lt;Private Subnet CIDRs&gt;</code></td>
</tr>
<tr>
<td>Translation type</td>
<td>Dynamic IP and Port</td>
</tr>
<tr>
<td>Translated address</td>
<td><code>&lt;PA FW Untrust IP1&gt;</code></td>
</tr>
</tbody></table>
<p>After Palo Alto translates the source address to its untrust private IP, the OCI Internet Gateway performs the public IP translation.</p>
<p>The resulting traffic flow is:</p>
<pre><code class="language-text">Private Server
   |
   v
Palo Alto Trust
   |
   v
Palo Alto Source NAT
   |
   v
Palo Alto Untrust
   |
   v
OCI Internet Gateway
   |
   v
Public Internet
</code></pre>
<p>This removes the need for an OCI NAT Gateway for the selected private workloads.</p>
<hr />
<h2>7. Maintaining Symmetric Routing</h2>
<p>Symmetric routing is one of the most important requirements when inserting a stateful firewall into an existing application path.</p>
<p>Consider the following example.</p>
<h3>Forward traffic</h3>
<pre><code class="language-text">Load Balancer
      |
      v
Palo Alto Firewall
      |
      v
Application Server
</code></pre>
<h3>Return traffic</h3>
<pre><code class="language-text">Application Server
      |
      v
Palo Alto Firewall
      |
      v
Load Balancer
</code></pre>
<p>Both directions must follow the intended firewall path.</p>
<p>If the return traffic bypasses Palo Alto, the firewall may not be able to maintain the session correctly.</p>
<p>To avoid asymmetric routing:</p>
<ol>
<li>Configure the appropriate routes in both subnet route tables.</li>
<li>Ensure Palo Alto has routes toward both subnets.</li>
<li>Disable source/destination checking on the firewall's forwarding VNICs.</li>
<li>Avoid unnecessary NAT for Load Balancer to backend traffic.</li>
<li>Validate traffic using Palo Alto session and traffic logs.</li>
</ol>
<p>The exact routing design depends on the placement of the firewall interfaces and the supported OCI forwarding configuration.</p>
<hr />
<h2>8. Understanding Layer 7 Load Balancer Behavior</h2>
<p>This is an important consideration when using OCI Layer 7 Load Balancers.</p>
<p>A Layer 7 Load Balancer typically terminates the client connection and establishes a separate connection to the backend server.</p>
<p>Therefore, the traffic flow consists of two logical connections:</p>
<p><strong>Client facing connection</strong></p>
<pre><code class="language-text">Internet Client
      |
      v
OCI Public Load Balancer
</code></pre>
<p><strong>Backend facing connection</strong></p>
<pre><code class="language-text">OCI Public Load Balancer
      |
      v
Palo Alto Firewall
      |
      v
Application Server
</code></pre>
<p>In this architecture, Palo Alto inspects the backend facing connection.</p>
<p>If HTTPS terminates at the Load Balancer and HTTP is used toward the backend, the firewall can inspect the HTTP traffic.</p>
<p>If HTTPS is used between the Load Balancer and backend, the firewall sees encrypted traffic unless appropriate decryption and inspection capabilities are configured.</p>
<p>Additionally, the firewall may see the Load Balancer's source IP rather than the original internet client's IP.</p>
<p>The original client IP may be forwarded using HTTP headers such as <code>X-Forwarded-For</code>.</p>
<p>These details are important when designing firewall policies and troubleshooting application traffic.</p>
<hr />
<h2>9. Preserving Existing VPN Connectivity</h2>
<p>In many enterprise OCI environments, Palo Alto is also responsible for site-to-site VPN connectivity.</p>
<p>The proposed architecture does not require changing the existing VPN configuration.</p>
<p>Existing VPN tunnel interfaces, security policies, and remote network routes can remain in place.</p>
<p>For example:</p>
<pre><code class="language-text">On-Premises Network
        |
        v
IPSec VPN Tunnel
        |
        v
Palo Alto Firewall
        |
        v
OCI Private Subnets
</code></pre>
<p>When configuring outbound internet routing, ensure that more specific routes for on-premises destinations remain available.</p>
<p>Otherwise, private network traffic may incorrectly follow the default internet route.</p>
<hr />
<h2>10. Testing and Validation</h2>
<p>Before implementing the design in production, perform a complete validation.</p>
<h3>Public application connectivity</h3>
<ul>
<li>Confirm that existing Load Balancer public IP addresses remain unchanged.</li>
<li>Verify that public HTTPS endpoints are accessible.</li>
<li>Confirm Load Balancer backend health checks are successful.</li>
<li>Verify that backend traffic is visible in Palo Alto traffic logs.</li>
</ul>
<h3>Outbound internet connectivity</h3>
<ul>
<li>Confirm private application servers can access approved internet destinations.</li>
<li>Verify that outbound traffic passes through Palo Alto.</li>
<li>Confirm source NAT is working correctly.</li>
<li>Verify that external services see the expected public source IP.</li>
</ul>
<h3>Internal network connectivity</h3>
<ul>
<li>Test application to database communication.</li>
<li>Confirm internal traffic continues using direct VCN routing.</li>
<li>Verify that existing VPN connectivity is unaffected.</li>
</ul>
<h3>Firewall validation</h3>
<p>Useful Palo Alto commands include:</p>
<pre><code class="language-bash">show routing route
</code></pre>
<pre><code class="language-bash">show session all
</code></pre>
<pre><code class="language-bash">show counter global filter severity drop
</code></pre>
<p>These commands help verify routing, active sessions, and potential packet drops.</p>
<p>A controlled migration and rollback plan should be prepared before applying production route table changes.</p>
<hr />
<h2>11. Key Benefits</h2>
<p>Implementing this architecture can provide several advantages.</p>
<h3>Preserves existing public IP addresses</h3>
<p>Public Load Balancers remain unchanged, avoiding unnecessary DNS and application endpoint modifications.</p>
<h3>Centralized security inspection</h3>
<p>Application backend traffic can be inspected using Palo Alto security policies.</p>
<h3>Centralized outbound internet access</h3>
<p>Private servers can access the internet through the firewall without requiring an OCI NAT Gateway.</p>
<h3>Maintains internal network performance</h3>
<p>Application to database traffic can continue using direct OCI local routing.</p>
<h3>Supports existing VPN connectivity</h3>
<p>Existing site to site VPN connectivity can remain operational without redesigning the VPN architecture.</p>
<h3>Flexible security architecture</h3>
<p>OCI custom routing provides flexibility to integrate third-party network security appliances into existing environments.</p>
<hr />
<h2>12. Important Production Considerations</h2>
<p>Before deploying this architecture, consider the following:</p>
<p><strong>Firewall availability:</strong> A single Palo Alto instance can become a single point of failure for application backend traffic and outbound internet access. Production environments should consider an appropriate high availability design.</p>
<p><strong>OCI routing constraints:</strong> Verify that all private IP route targets are valid for the relevant subnet route tables and VCN topology.</p>
<p><strong>Load Balancer health checks:</strong> Ensure health check traffic can traverse the firewall and return correctly.</p>
<p><strong>Firewall licensing:</strong> Confirm the Palo Alto license includes the required security and inspection features.</p>
<p><strong>Network security rules:</strong> Review OCI Network Security Groups and Security Lists to allow the required forwarding traffic.</p>
<p><strong>Existing public IPs:</strong> Public IP preservation depends on retaining the existing public Load Balancer resources and their public-facing configuration.</p>
<p><strong>Rollback planning:</strong> Maintain copies of the original OCI route tables and firewall configuration before making changes.</p>
<hr />
<h2>Conclusion</h2>
<p>OCI intra-VCN routing provides a powerful mechanism for integrating third party firewalls into existing cloud architectures.</p>
<p>By combining custom OCI route tables with Palo Alto Networks VM-Series, organizations can introduce security inspection between existing public Load Balancers and backend application servers while preserving their public IP addresses.</p>
<p>The same firewall can also provide centralized outbound internet access for private workloads, while internal application communication continues using OCI's native routing capabilities.</p>
<p>The key to a successful implementation is careful route planning, symmetric traffic flow, appropriate firewall policies, and thorough testing.</p>
<p>With the correct architecture, organizations can improve network security without unnecessarily redesigning their existing OCI application infrastructure.</p>
<hr />
<h3>References</h3>
<ul>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingroutetables.htm">Oracle Cloud Infrastructure – VCN Route Tables</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/create-routetable.htm">Oracle Cloud Infrastructure – Creating a Route Table</a></li>
<li><a href="https://docs.paloaltonetworks.com/">Palo Alto Networks Documentation</a></li>
<li><a href="https://docs.oracle.com/en-us/iaas/Content/home.htm">Oracle Cloud Infrastructure Documentation</a></li>
</ul>
<p><em>Disclaimer: The configurations in this article are architectural examples and should be validated against the actual OCI environment, firewall topology, routing requirements, and security policies before production implementation.</em></p>
]]></content:encoded></item></channel></rss>