Oracle Cloud Infrastructureドキュメント

Juniper SRX

この構成は、12.1X44-D35.5を実行しているJuniper SRX 240を使用して検証されました。

重要

Oracleは、IPSec VPN接続を構成する複数のトンネル間で非対称ルーティングを使用します。
1つのトンネルをプライマリ、別のトンネルをバックアップとして構成しても、VCNからオンプレミス・ネットワークへのトラフィックは、デバイス上にあるすべてのトンネルを使用できます。 それに応じてファイアウォールを構成します。 そうしないと、接続を介したpingテストやアプリケーション・トラフィックが確実に機能しなくなります。

サポートされている暗号化ドメインまたはプロキシID

暗号化ドメイン(プロキシID、セキュリティ・パラメータ索引(SPI)またはトラフィック・セレクタとも呼ばれる)の値は、CPEがルーティング・ベースのトンネルとポリシー・ベースのトンネルのどちらをサポートしているかによって決まります。 使用する正しい暗号化ドメイン値の詳細は、「サポートされている暗号化ドメインまたはプロキシID」を参照してください。

APIまたはコンソールからのパラメータ

Oracle Cloud InfrastructureコンソールまたはAPIから次のパラメータを取得します。

${ipAddress#}

  • Oracle VPNのヘッド・エンドIPSecトンネル・エンドポイント。 各トンネルには1つの値があります。
  • 値の例: 129.146.12.52

${sharedSecret#}

  • IPSec IKE事前共有キー。 各トンネルには1つの値があります。
  • 値の例: EXAMPLEDPfAMkD7nTH3SWr6OFabdT6exXn6enSlsKbE

${cpePublicIpAddress}

  • CPEのパブリックIPアドレス(以前はコンソール経由でOracleに提供されていました)。

${VcnCidrBlock}

  • VCNを作成する際、このCIDRを選択して、すべてのVCNホストのIP集約ネットワークを表します。
  • 値の例: 10.0.0.0/20

現在のCPEの構成と状態に基づくパラメータ

次のパラメータは、CPEの現在の構成を調べ、現在のCPE構成と重複しない有効なパラメータ値を見つけることで検出する必要があります。

${cpePublicInterface}

  • CPE IPアドレスが構成されているJuniperインタフェースの名前。
  • 値の例: ge-0/0/1.0

${tunnelUnit#} - トンネルごとに1つ

  • IPSec接続ごとに複数のトンネル・ユニット番号が必要です。
  • IPSecトンネルごとに1つ。
  • 最大の冗長性を実現するために、Oracleで構成されたすべてのトンネルを設定することをお薦めします。
  • Juniper SRXは、IPSecトンネルにst0インタフェースを使用します。
  • 値の例: 1, 2

Juniperセキュリティ・ゾーン

  • Juniper SRXにはセキュリティ・ゾーンという概念があります。
  • VPNには2つの異なるセキュリティ・ゾーンが必要です。

${InsideZoneName}

  • このゾーンには、内部ネットワークの一部であり、Oracle VCN内のリソースに到達する必要のあるインタフェースが含まれています。

${OracleVpnZoneName}

  • このゾーンには、Oracle Cloud Infrastructureネットワークの一部であるインタフェースが含まれています。
  • これには、IPSecトンネル・インタフェースの内部が含まれます。

${InternetSecurityZoneName}

  • これは${cpePublicInterface}を含むゾーンです。

構成テンプレートのパラメータの概要

各リージョンには複数のOracle IPSecヘッド・エンドがあります。 以下のテンプレートでは、CPEに複数のトンネルを設定し、それぞれ対応するヘッド・エンドに設定できます。 下の表のユーザーはあなた/会社です。

パラメータ ソース 値の例
${ipAddress1} Console/API 129.146.12.52
${sharedSecret1} Console/API (長い文字列)
${ipAddress2} Console/API 129.146.13.52
${sharedSecret2} Console/API (長い文字列)
${cpePublicInterface} ユーザー ge-0/0/1.0
${tunnelUnit1} ユーザー 1
${tunnelUnit2} ユーザー 2
${OracleVpnZoneName} ユーザー oracle-vpn
${InternetSecurityZoneName} ユーザー INTERNET
${VcnCidrBlock} ユーザー 10.0.0.0/16

重要

次のISAKMPおよびIPSecポリシー・パラメータの値は、商用クラウドの「VPN接続」に適用できます。
Government Cloudの場合、「Government CloudのVPN接続パラメータが必要」にリストされている値を使用する必要があります。

ISAKMPポリシー・オプション

IPSecポリシー・オプション

CPE構成

トンネル・インタフェースの構成

これにより、IPSecトンネルの内側を表すJuniper SRXインタフェースが構成されます。 トンネルごとに1つのインタフェース/ユニットがあります。

interfaces {
    st0 {
        unit ${tunnelUnit1} {
            family inet;
        }
        unit ${tunnelUnit2} {
            family inet;
        }
    }
}

CPEからVCNへの静的ルート

IPSecトンネルでは、トラフィックを通過させるために静的ルートが必要です。 ルートはトンネル・インタフェースをポイントするように構成されています。 IPSecトンネルがダウンしている場合、Juniper SRXはそのルートの使用を停止します。 これらのルートは、お客様の構内ネットワークに再配布する必要があります。

routing-options {
    static {
        route ${VcnCidrBlock} next-hop [ st0.${tunnelUnit1} st0.${tunnelUnit2} ];
    }
}

セキュリティ・ポリシー

セキュリティ・ポリシーは、4つのセクションで構成されています:

  • ike: IKEポリシー・パラメータ。
  • ipsec: IPSecポリシー・パラメータ。
  • zones: Juniperゾーンを定義し、インタフェースを論理ゾーンに配置します。
  • ポリシー: ゾーンに出入りするトラフィックの種類を定義します。
security {
    ike {
        proposal oracle-ike-proposal {
            authentication-method pre-shared-keys;
            dh-group group5;
            authentication-algorithm sha-384;
            encryption-algorithm aes-256-cbc;
            lifetime-seconds 28800;
        }
        policy ike_pol_oracle-vpn-${ipAddress1} {
            mode main;
            proposals oracle-ike-proposal;
            pre-shared-key ascii-text ${sharedSecret1}
        }
        policy ike_pol_oracle-vpn-${ipAddress2} {
            mode main;
            proposals oracle-ike-proposal;
            pre-shared-key ascii-text ${sharedSecret2}
        }                     
        gateway gw_oracle-${ipAddress1} {
            ike-policy ike_pol_oracle-vpn-${ipAddress1};
            address ${ipAddress1};
            dead-peer-detection;
            external-interface ${cpePublicInterface};
        }
        gateway gw_oracle-${ipAddress2} {
            ike-policy ike_pol_oracle-vpn-${ipAddress2};
            address ${ipAddress2};
            dead-peer-detection;
            external-interface ${cpePublicInterface};
        }
    }
    ipsec {
        vpn-monitor-options;
        proposal oracle-ipsec-proposal {
            protocol esp;
            authentication-algorithm hmac-sha1-96;
            encryption-algorithm aes-256-cbc;
            lifetime-seconds 3600;
        }
        policy ipsec_pol_oracle-vpn {
            perfect-forward-secrecy {
                keys group5;
            }
            proposals oracle-ipsec-proposal;
        }
        vpn oracle-vpn-${ipAddress1} {
            bind-interface st0.${tunnelUnit1};
            vpn-monitor;
            ike {
                gateway gw_oracle-${ipAddress1};
                ipsec-policy ipsec_pol_oracle-vpn;
            }
            establish-tunnels immediately;
        }
        vpn oracle-vpn-${ipAddress2} {
            bind-interface st0.${tunnelUnit2};
            vpn-monitor;
            ike {
                gateway gw_oracle-${ipAddress2};
                ipsec-policy ipsec_pol_oracle-vpn;
            }
            establish-tunnels immediately;
        }                      
    }
    policies {
        from-zone ${InsideZoneName} to-zone ${OracleVpnZoneName} {
            policy new_vpn-out {
                match {
                    source-address any-ipv4;
                    destination-address any-ipv4;
                    application any;
                    source-identity any;
                }
                then {
                    permit;
                }
            }
            policy vpn-out {
                match {
                    source-address any-ipv4;
                    destination-address any-ipv4;
                    application any;
                    source-identity any;
                }
                then {
                    permit;
                }
            }
        }
    }
    zones {
        security-zone ${OracleVpnZoneName} {
            interfaces {
                st0.${tunnelUnit1} {
                    host-inbound-traffic {
                        protocols {
                            bgp;
                        }
                    }
                }
                st0.${tunnelUnit2} {
                    host-inbound-traffic {
                        protocols {
                            bgp;
                        }
                    }
                }                                       
            }
        }
        security-zone ${InternetSecurityZoneName} {
            interfaces {
                ${cpePublicInterface} {
                    host-inbound-traffic {
                        system-services {
                            ike;
                            ping;
                        }
                    }
                }
            }
        }
    }
}