{"id":156,"date":"2024-08-20T20:05:42","date_gmt":"2024-08-21T03:05:42","guid":{"rendered":"https:\/\/eisaichen.com\/?p=156"},"modified":"2024-08-22T10:39:30","modified_gmt":"2024-08-22T17:39:30","slug":"how-to-connect-oracle-oci-and-opnsense-with-ipsec-site-to-site-vpn","status":"publish","type":"post","link":"https:\/\/eisaichen.com\/?p=156","title":{"rendered":"How to connect Oracle OCI and Opnsense with IPsec (Site-to-Site VPN)"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Step-by-step guide for connecting Oracle site-to-site vpn to Opnsense as CPE.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Oracle OCI Side<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\"><br>1a) Go to &#8220;Networking &gt; Customer connectivity &gt; Site-to-Site VPN, or just search &#8220;VPN&#8221;.<\/h5>\n\n\n\n<h5 class=\"wp-block-heading\"><br>1b) Choose &#8220;Customer-premises equipment&#8221; on the left, and create a new CPE.<br> (CPE means your own equipment, which is Opnsense in this case)<\/h5>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616deb100&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616deb100\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"956\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-2-1024x956.png\" alt=\"\" class=\"wp-image-159\" style=\"width:174px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-2-1024x956.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-2-300x280.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-2-768x717.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-2.png 1352w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> &lt;any name&gt;<\/li>\n\n\n\n<li><strong>IP address:<\/strong> &lt;your Opnsense WAN IP&gt;<\/li>\n\n\n\n<li><strong>CPE vendor information:<\/strong> Other<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>1c) Back to &#8220;Site-to-Site VPN&#8221; and Create IPSec connection<\/h5>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616deb81a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616deb81a\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"989\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-1-1024x989.png\" alt=\"\" class=\"wp-image-158\" style=\"width:178px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-1-1024x989.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-1-300x290.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-1-768x742.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-1.png 1311w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> &lt;any name&gt;<\/li>\n\n\n\n<li><strong>Customer-premises equipment:<\/strong> &lt;The one you just created&gt;<\/li>\n\n\n\n<li><strong>This CPE is behind a NAT device:<\/strong> &lt;Enable NAT-T or not&gt;<br>Enable it if you don&#8217;t have a WAN IP on your Opnsense.<br>If you un-check it, it will still be set to &#8220;Auto&#8221;<br>When enabled, it will use port 500 and fallback to 4500, when disabled, it will only use 4500<\/li>\n\n\n\n<li><strong>Routes to your on-premises network:<\/strong> &lt;Subnets on your Opnsense end&gt; e.g.: 192.168.1.0\/24<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>1d) the Tunnel options needs extra attention. (But you can always change it later)<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> &lt;any name&gt;<\/li>\n\n\n\n<li><strong>IKE version:<\/strong> IKEv2<\/li>\n\n\n\n<li><strong>Routing type:<\/strong> <br><br>The most important option here, all 3 types can work, depending on your preference.<br>And what you choose will decide how we config Opnense next.<br><br><strong>BGP dynamic routing:<\/strong><br><em>    (recommended)<br>    Dynamic routing<br>    Need VTI<br>    plugin &#8220;os-frr&#8221; needs to be installed on Opnsense<\/em><br>IPsec security policy will not be installed to the kernel(or simply think the routing table from IPsec will not install). Once Phase 1 and 2 are established, we will create a P2P virtual tunnel interface(VTI), then pass routing entry on each side via BGP protocol.<br><br><strong>Static routing:<\/strong><br> <em> (not recommended)<br>    Need VTI<\/em><br>Same as BGP, we don&#8217;t install routing entry and we use VTI once Phase 2 is reached. But instead of using BGP to learn routing entries automatically, we create static route entries on both sides manually.<br><br><strong>Policy based routing:<\/strong><br><em>    Sample<br>    Still need to add static routes on Opnsense manually<\/em><br>IPsec handles everything, so we don&#8217;t need VTI. when connecting, route entry will be negotiated and installed on Phase 2.<br><br>(You can choose different types for each tunnel, but not recommended)<br><br><br><strong>(From here, everything you configured needs to be matched on both sides)<\/strong><\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><br>1d-1) <strong>For BGP dynamic routing<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BGP ASN:<\/strong> &lt;number from 64512 to 65535&gt;<\/li>\n\n\n\n<li><strong>IPv4 inside tunnel interface &#8211; CPE:<\/strong> &lt;IP Address for the P2P connection&gt; (Opnsense End)<br>this address will later be used for BGP peering. e.g.:10.100.1.3\/31<\/li>\n\n\n\n<li><strong>IPv4 inside tunnel interface &#8211; Oracle:<\/strong> &lt;IP Address for the P2P connection&gt; (Oracle End)<br>this address will later be used for BGP peering. e.g.:10.100.1.2\/31<\/li>\n\n\n\n<li><strong>IPv6 addressing:<\/strong> &lt;Check if you have ipv6 subnet&gt;<br><strong>IPv6 inside tunnel interface(s):<\/strong> same usage as above, e.g.: fe50:cafe:100:1::3\/127<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>1d-2) For Static routing:<\/strong><\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Same as BGP, you just don&#8217;t need the &#8220;BGP ASN&#8221; and &#8220;IPv4 inside tunnel interface&#8221;<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">1d-3) <strong>For Policy based routing:<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>On-premises CIDR blocks:<\/strong> &lt;Subnets on Opnsense&gt; (Usually same as the &#8220;Routes to your on premises network&#8221; on 1c)<\/li>\n\n\n\n<li><strong>Oracle Cloud CIDR blocks:<\/strong> &lt;Subnets on Oracle&gt;<br><strong>IPv4 inside tunnel interface(s):<\/strong> &lt;not needed&gt;<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>1e) Click &#8220;Show advanced options&#8221; and config encryption<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Check &#8220;Set custom configurations&#8221;<br>Phase one (ISAKMP) configuration<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Custom encryption algorithm:<\/strong> AES_256_CBC<\/li>\n\n\n\n<li><strong>Custom authentication algorithm:<\/strong> SHA_256<\/li>\n\n\n\n<li><strong>Custom Diffie-Hellman group:<\/strong> GROUP14<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Phase two (IPSec) configuration<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Custom encryption algorithm:<\/strong> AES_256_CBC<\/li>\n\n\n\n<li><strong>Custom authentication algorithm:<\/strong> HMAC_SHA2_256_128<\/li>\n\n\n\n<li><strong>Perfect forward secrecy Diffie-Hellman group:<\/strong> GROUP14<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616dec26a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616dec26a\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"818\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-818x1024.png\" alt=\"\" class=\"wp-image-184\" style=\"width:339px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-818x1024.png 818w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-240x300.png 240w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-300x375.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-768x961.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-1227x1536.png 1227w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3-1024x1281.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-3.png 1289w\" sizes=\"auto, (max-width: 818px) 100vw, 818px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><br>1f) Finally, Create IPSec connection<\/h5>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Opnsense Side<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2a) On OCI, go to &#8220;Networking &gt; Customer connectivity &gt; Site-to-Site VPN &gt; &lt;the VPN you just created&gt;<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Switch to &#8220;CPE &amp; tunnels information&#8221; tab, and put it on the side, you will find all the information you need next here.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2b) On Opnsense, go to &#8220;VPN &gt; IPsec &gt; Connections&#8221;, click the &#8220;+&#8221;. (Don&#8217;t enable IPsec before everything is configured.)<br>Config for each tunnel at a time<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Proposals:<\/strong> aes256-sha256-modp2048 [DH14]<\/li>\n\n\n\n<li><strong>Version:<\/strong> IKEv2<\/li>\n\n\n\n<li><strong>MOBIKE:<\/strong> un-check<\/li>\n\n\n\n<li><strong>Local addresses:<\/strong> &lt;the address use to initiate VPN connection&gt;<br>Usually Opnsense WAN IP. You can also use your domain name if you have DNS\/DDNS.<\/li>\n\n\n\n<li><strong>Remote addresses<\/strong>: &lt;see &#8220;Oracle VPN IP address&#8221; in step 1a&gt;<\/li>\n\n\n\n<li><strong>DPD delay (s):<\/strong> 20 (Or you can set your own on step 1e)<\/li>\n\n\n\n<li><strong>Description<\/strong>: &lt;give it a name&gt;<\/li>\n\n\n\n<li>Save<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2c) Under &#8220;Local Authentication&#8221;, click &#8220;+&#8221;<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connection:<\/strong> &lt;profile name&gt;<\/li>\n\n\n\n<li><strong>Authentication:<\/strong> Pre-Shared Key<\/li>\n\n\n\n<li><strong>Id:<\/strong> &lt;leave it blank&gt;<br>leave it blank will default to the &#8220;Local address&#8221; you set on 2b. need to match the &#8220;CPE IKE identifier&#8221; on OCI (step 2a)<\/li>\n\n\n\n<li><strong>Certificates<\/strong>: &lt;None&gt;<\/li>\n\n\n\n<li><strong>Description<\/strong>: &lt;give it a name&gt;<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2d) Under &#8220;Remote&nbsp;Authentication&#8221;, click &#8220;+&#8221;<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connection:<\/strong> &lt;profile name&gt;<\/li>\n\n\n\n<li><strong>Authentication:<\/strong> Pre-Shared Key<\/li>\n\n\n\n<li><strong>Id:<\/strong> &lt;match the &#8220;Oracle VPN IP address&#8221; on OCI (step 2a)&gt;<\/li>\n\n\n\n<li><strong>Certificates<\/strong>: &lt;None&gt;<\/li>\n\n\n\n<li><strong>Description<\/strong>: &lt;give it a name&gt;<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616decc15&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616decc15\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"757\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-4-1024x757.png\" alt=\"\" class=\"wp-image-188\" style=\"width:379px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-4-1024x757.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-4-300x222.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-4-768x567.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-4-1536x1135.png 1536w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-4.png 1620w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2e) Under &#8220;Children&#8221;, click &#8220;+&#8221;<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connection:<\/strong> &lt;profile name&gt;<\/li>\n\n\n\n<li><strong>Mode:<\/strong> Tunnel  (OCI only supported Tunnel mode)<\/li>\n\n\n\n<li><strong>Start action:<\/strong> Trap+start<\/li>\n\n\n\n<li><strong>DPD action:<\/strong> Clear<\/li>\n\n\n\n<li><strong>ESP proposals:<\/strong> aes256-sha256-modp2048 [DH14]<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>2e-1) For &#8220;BGP dynamic routing&#8221; and &#8220;Static routing&#8221;<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Policies: UN-CHECK  (IMPORTANT)<\/strong><br>Failed to do so will result in loss of all connections once IPsec is initiated.<\/li>\n\n\n\n<li><strong>Local:<\/strong> 0.0.0.0\/0<\/li>\n\n\n\n<li><strong>Remote:<\/strong> 0.0.0.0\/0<br>(If you have ipv6, use &#8220;0.0.0.0\/0,::\/0&#8221; for both)<\/li>\n\n\n\n<li><strong>Reqid:<\/strong> &lt;any number&gt;<br>Cannot be blank, and needs to be unique. e.g.: 10 for tunnel 1, 20 for tunnel 2.<\/li>\n\n\n\n<li><strong>Description:<\/strong> &lt;give it a name&gt;<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616ded3e5&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616ded3e5\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/Screenshot-2024-08-20-145129-1024x496.png\" alt=\"\" class=\"wp-image-192\" style=\"width:367px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/Screenshot-2024-08-20-145129-1024x496.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/Screenshot-2024-08-20-145129-300x145.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/Screenshot-2024-08-20-145129-768x372.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/Screenshot-2024-08-20-145129-1536x743.png 1536w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/Screenshot-2024-08-20-145129.png 1810w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>2e-2) For &#8220;Policy based routing&#8221;<\/strong><\/h6>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Policies: <\/strong>checked<\/li>\n\n\n\n<li><strong>Local:<\/strong> &lt;match &#8220;On-premises CIDR blocks&#8221; you gave on 1d-3&gt;<\/li>\n\n\n\n<li><strong>Remote:<\/strong> &lt;match &#8220;Oracle Cloud CIDR blocks&#8221; you gave on 1d-3&gt;<\/li>\n\n\n\n<li><strong>Reqid:<\/strong> &lt;any number&gt;<br>Cannot be blank, and needs to be unique. e.g.: 10 for tunnel 1, 20 for tunnel 2.<\/li>\n\n\n\n<li><strong>Description:<\/strong> &lt;give it a name&gt;<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2f) Go to &#8220;VPN &gt; IPsec &gt; Pre-Shared Keys&#8221;, Click &#8220;+&#8221;<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Local Identifier:<\/strong> &lt;ID you gave on step 2c&gt; (Should be your WAN port IP by default)<\/li>\n\n\n\n<li><strong>Remote Identifier:<\/strong> &lt;ID you gave on step 2d&gt;<\/li>\n\n\n\n<li><strong>Pre-Shared Key:<\/strong> &lt;You can found it on step 1a, &#8220;Shared secret&#8221;&gt;<\/li>\n\n\n\n<li><strong>Type:<\/strong> PSK<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2g) <strong>&#8220;Policy based routing&#8221; Skip this step.<\/strong><br>       Go to &#8220;VPN &gt; IPsec &gt; Virtual Tunnel Interfaces&#8221;, Click &#8220;+&#8221;<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reqid:<\/strong> &lt;Reqid you given on step 2e-1&gt;<\/li>\n\n\n\n<li><strong>Local address:<\/strong> &lt;You WAN port IP&gt;<\/li>\n\n\n\n<li><strong>Remote address:<\/strong> &lt;see &#8220;Oracle VPN IP address&#8221; in step 1a&gt;<\/li>\n\n\n\n<li><strong>Tunnel local address:<\/strong> &lt;see &#8220;IPv4 inside tunnel interface &#8211; CPE&#8221; on step 1d-1&gt;<\/li>\n\n\n\n<li><strong>Tunnel remote address:<\/strong> &lt;see &#8220;IPv4 inside tunnel interface &#8211; Oracle&#8221; on step 1d-1&gt;<\/li>\n\n\n\n<li><strong>Name:<\/strong> &lt;give it a name&gt;<\/li>\n\n\n\n<li>(If you set up for ipv6 address on 1d-1, put ipv6 address into &#8220;<strong>Tunnel secondary address(es)<\/strong>&#8221; accordingly)<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2h) Clone profiles for tunnel 2<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clone, VPN &gt; IPsec &gt; Connections<br>Change &#8220;<strong>Remote addresses<\/strong>&#8220;<br>Change &#8220;<strong>ID<\/strong>&#8221; under &#8220;Remote&nbsp;Authentication&#8221;<\/li>\n\n\n\n<li>Clone, VPN &gt; IPsec &gt; Pre-Shared Keys<br>Change &#8220;<strong>Remote Identifier<\/strong>&#8220;<\/li>\n\n\n\n<li>Clone, VPN &gt; IPsec &gt; Virtual Tunnel Interfaces (Skip for &#8220;Policy based routing&#8221;)<br>Change &#8220;<strong>Tunnel local address<\/strong>&#8220;<br>Change &#8220;<strong>Tunnel remote address<\/strong>&#8220;<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2i) Allow IPsec traffic<br>Go to &#8220;Firewall &gt; Rules &gt; WAN&#8221;, Allow the following ports<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Protocol:<\/strong> IPv4 ESP<br><strong>Port:<\/strong> *<\/li>\n\n\n\n<li><strong>Protocol:<\/strong> IPv4 UDP<br><strong>Port:<\/strong> 500<\/li>\n\n\n\n<li><strong>Protocol:<\/strong> IPv4 UDP<br><strong>Port:<\/strong> 4500<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616dedddb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616dedddb\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"164\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-6-1024x164.png\" alt=\"\" class=\"wp-image-205\" style=\"width:437px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-6-1024x164.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-6-300x48.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-6-768x123.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-6.png 1447w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><br>2j) Enable IPsec, go to &#8220;VPN &gt; IPsec &gt; Status Overview&#8221;<br>You should see connections successfully established.<\/h5>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616dee46e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616dee46e\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"591\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-5-1024x591.png\" alt=\"\" class=\"wp-image-201\" style=\"width:586px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-5-1024x591.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-5-300x173.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-5-768x443.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-5.png 1517w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Add Route<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\"><br>3a) Allow traffic on interface &#8220;IPsec&#8221;<br>(BGP dynamic routing &amp;  Static routing) Allow traffic on your VTI(s)<br>Adjust security list on OCI as well<\/h5>\n\n\n\n<h5 class=\"wp-block-heading\"><br>3b) On OCI, Go to &#8220;Networking &gt; Virtual cloud networks &gt; Virtual Cloud Network Details &gt; Subnets&#8221;<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Choose your subnet, then the routing table of it.<br>Add all the Opnsense subnets to it, and point to the Dynamic Routing Gateway.<br><br>If you chose &#8220;<strong>Policy based routing<\/strong>&#8220;, then congratulations, you should able to send traffic to the VPN now. <strong>Your job is done.<\/strong><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616deeb36&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616deeb36\" class=\"wp-block-image size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"963\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-7.png\" alt=\"\" class=\"wp-image-206\" style=\"width:216px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-7.png 675w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-7-210x300.png 210w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-7-300x428.png 300w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><br>3c-1) For<strong> &#8220;BGP dynamic routing&#8221;<\/strong>, on Opnsense, go to &#8220;Routing &gt; BGP&#8221;<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Under &#8220;General&#8221; Tab<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BGP AS Number:<\/strong> &lt;match &#8220;BGP ASN&#8221; you gave on 1d-1&gt;<\/li>\n\n\n\n<li><strong>Network:<\/strong> &lt;Opnsense subnets&gt;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Under &#8220;Neighbors&#8221; Tab<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Peer-IP:<\/strong> &lt;see &#8220;IPv4 inside tunnel interface &#8211; Oracle&#8221; on OCI (step 2a)&gt;<\/li>\n\n\n\n<li><strong>Remote AS:<\/strong> &lt;see &#8220;Oracle BGP ASN&#8221; on OCI (step 2a)&gt;<\/li>\n\n\n\n<li><strong>Update-Source Interface:<\/strong> &lt;VTI Interface><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Repeat the process for tunnel 2 and ipv6.<br>Enable &#8220;BGP&#8221; and &#8220;Routing&#8221; in &#8220;General&#8221;, congratulations, you should able to send traffic to the VPN now. <strong>Your job is done.<\/strong><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">3c-2) For<strong> &#8220;Static routing&#8221;<\/strong>, on Opnsense, go to &#8220;System &gt; Gateways &gt; Configuration&#8221;<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Add 2 of your VTI interface as Gateway<br><strong>    IP Address:<\/strong> &lt;see &#8220;IPv4 inside tunnel interface &#8211; Oracle&#8221; on OCI (step 2a)&gt;<br>Un-check &#8220;<strong>Disable Gateway Monitoring<\/strong>&#8220;, then add 2 gateways into a group, so you can have redundancy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to &#8220;System &gt; Routes &gt; Configuration&#8221;, click &#8220;+&#8221;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Network Address<\/strong>: &lt;Your OCI subnets&gt;<\/li>\n\n\n\n<li><strong>Gateway:<\/strong> &lt;Your VTI interface&gt;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Repeat it for every subnet on Oracle.<br>Congratulations, you should able to send traffic to the VPN now. <strong>Your job is done.<\/strong><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a6d616def447&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a6d616def447\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-8-1024x496.png\" alt=\"\" class=\"wp-image-218\" style=\"width:700px;height:auto\" srcset=\"https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-8-1024x496.png 1024w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-8-300x145.png 300w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-8-768x372.png 768w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-8-1536x744.png 1536w, https:\/\/eisaichen.com\/wp-content\/uploads\/2024\/08\/image-8.png 2001w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Step-by-step guide for connecting Oracle site-to-site vpn to Opnsense as CPE. Oracle OCI Side 1a) Go to &#8220;Networking &gt; Customer connectivity &gt; Site-to-Site VPN, or just search &#8220;VPN&#8221;. 1b) Choose &#8220;Customer-premises equipment&#8221; on the left, and create a new CPE. (CPE means your own equipment, which is Opnsense in this case) 1c) Back to &#8220;Site-to-Site [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":201,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[]"},"categories":[3],"tags":[],"class_list":["post-156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/posts\/156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eisaichen.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=156"}],"version-history":[{"count":51,"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/posts\/156\/revisions"}],"predecessor-version":[{"id":223,"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/posts\/156\/revisions\/223"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eisaichen.com\/index.php?rest_route=\/wp\/v2\/media\/201"}],"wp:attachment":[{"href":"https:\/\/eisaichen.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eisaichen.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eisaichen.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}