Oracle Cloud Infrastructureドキュメント

Juniper MX

この構成は、Junos 15.1を実行しているJuniper MX 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

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

  • これらのインタフェースは、MS-MPCカード上の4つの暗号化ASICの1つに対応しています。
  • ASIC全体に負荷を分散させるには、トンネルをそれらに分散させます。
  • 値の例: ms-2/3/0, ms-2/3/1

${insideMsUnit1}${outsideMsUnit1} - トンネルごとに1つのペア

  • すべてのトンネルに対して、ms-mpcインタフェースのペアが必要です。
  • 1つはIPSecトンネルの外側を表します。
  • もう一つはトンネルの内部です。
  • ルーターは、オンプレミス・ネットワークからVCNへパケットを内部ユニットに転送します。
    • 暗号化ASICは、ルールとポリシーに基づいてパケットを暗号化します。
    • その後、暗号化されたパケットは外部ユニットからESPパケットとしてエグレスされ、Oracle VPNヘッド・エンド・ルーターに転送する準備ができます。
  • ユニット番号には16,000を超える値があります。
    • ユニットを割り当てる1つの方法は、それらを8,000だけオフセットすることです。
    • insideMsUnitsに0 - 7999、outsideMsUnitsに8000-15999の値を取り出すことができます。

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

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

パラメータ ソース 値の例
${ipAddress1} Console/API 129.146.12.52
${sharedSecret1} Console/API (長い文字列)
${ipAddress2} Console/API 129.146.13.52
${sharedSecret2} Console/API (長い文字列)
${cpePublicIpAddress} ユーザー 1.2.3.4
${msInterface1} ユーザー ms-2/3/0
${msInterface2} ユーザー ms-2/3/1
${insideMsUnit1} ユーザー 101
${insideMsUnit2} ユーザー 102
${outsideMsUnit1} ユーザー 8101
${outsideMsUnit2} ユーザー 8102
${VcnCidrBlock} ユーザー 10.0.0.0/16

重要

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

ISAKMPポリシー・オプション

IPSecポリシー・オプション

CPE構成

ルーティング・インスタンスに関するノート: CPE上でルーティング・インスタンスを使用している場合は、構成内でルーティング・インスタンスを考慮する必要があります。 以下のメイン構成テンプレートはルーティング・インスタンスを考慮していないので、次の構成の抜粋をルーティング以外のインスタンス・テンプレートにマージする必要があります。

routing-instances {
    ${customer premise routing instance} {
        interface ${msInterface1}.${insideMsUnit1};
        interface ${msInterface2}.${insideMsUnit2};
        routing-options {
            static {
                route ${vcnCidrBlock} next-hop [ ${msInterface1}.${insideMsUnit1} ${msInterface2}.${insideMsUnit2} ]
            }
        }
    }
    ${internet-routing-instance} {
        interface ${msInterface1}.${insideMsUnit1};
        interface ${msInterface2}.${insideMsUnit2};
    }
}
services {
    service-set oracle-vpn-tunnel-${ipAddress1} {
        ipsec-vpn-options {
            local-gateway ${cpePublicIpAddress} routing-instance ${internet-routing-instance};
        }
    }
    service-set oracle-vpn-tunnel-${ipAddress2} {
        ipsec-vpn-options {
            local-gateway ${cpePublicIpAddress} routing-instance ${internet-routing-instance};
        }
    }        
    service-set oracle-vpn-tunnel-${ipAddress2} {
        ipsec-vpn-options {
            local-gateway ${cpePublicIpAddress} routing-instance ${internet-routing-instance};
        }
    }
}

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

これにより、IPSecトンネルの内側と外側を表すJuniper MXインタフェースが構成されます。 トンネルごとに1組のインタフェース/ユニットがあります。 ユニット番号はルーター上で一意でなければなりません。

interfaces {
    ${msInterface1} {
        unit ${insideMsUnit1} {
            description oracle-vpn-tunnel-${ipAddress1}-INSIDE;
            family inet;
            service-domain inside;
        }
        unit ${outsideMsUnit1} {
            description oracle-vpn-tunnel-${ipAddress1}-OUTSIDE;
            family inet;
            service-domain outside;
        }
    }
    ${msInterface2} {
        unit ${insideMsUnit2} {
            description oracle-vpn-tunnel-${ipAddress2}-INSIDE;
            family inet;
            service-domain inside;
        }
        unit ${outsideMsUnit2} {
            description oracle-vpn-tunnel-${ipAddress2}-OUTSIDE;
            family inet;
            service-domain outside;
        }
    }
}

CPEからVCNへの静的ルート

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

routing-options {
    static {
        route ${vcnCidrBlock} next-hop [ ${msInterface1}.${insideMsUnit1} ${msInterface2}.${insideMsUnit2} ]
    }
}

サービス構成

このセクションでは、IPSecトンネルが構成されています。

services {
    service-set oracle-vpn-tunnel-${ipAddress1} {
        next-hop-service {
            inside-service-interface ${msInterface1}.${insideMsUnit1};
            outside-service-interface ${msInterface1}.${outsideMsUnit1};
        }
        ipsec-vpn-options {
            local-gateway ${cpePublicIpAddress}
        }
        ipsec-vpn-rules oracle-vpn-tunnel-${ipAddress1};
    }
    service-set oracle-vpn-tunnel-${ipAddress2} {
        next-hop-service {
            inside-service-interface ${msInterface2}.${insideMsUnit2};
            outside-service-interface ${msInterface2}.${outsideMsUnit2};
        }
        ipsec-vpn-options {
            local-gateway ${cpePublicIpAddress}
        }
        ipsec-vpn-rules oracle-vpn-tunnel-${ipAddress2};
    }
    ipsec-vpn {
        rule oracle-vpn-tunnel-${ipAddress1} {
            term 1 {
                from {
                    ipsec-inside-interface ${msInterface1}.${insideMsUnit1};
                }
                then {
                    remote-gateway ${ipAddress1};
                    dynamic {
                        ike-policy ike-policy-${ipAddress1};
                        ipsec-policy oracle-ike-policy;
                    }
                    tunnel-mtu 1420;
                    initiate-dead-peer-detection;
                    dead-peer-detection {
                        interval 5;
                        threshold 4;
                    }
                }
            }
            match-direction input;
        }
        rule oracle-vpn-tunnel-${ipAddress2} {
            term 1 {
                from {
                    ipsec-inside-interface ${msInterface2}.${insideMsUnit2};
                }
                then {
                    remote-gateway ${ipAddress2};
                    dynamic {
                        ike-policy ike-policy-${ipAddress2};
                        ipsec-policy oracle-ike-policy;
                    }
                    tunnel-mtu 1420;
                    initiate-dead-peer-detection;
                    dead-peer-detection {
                        interval 5;
                        threshold 4;
                    }
                }
            }
            match-direction input;
        }
        ipsec {
            proposal esp-aes256-sha1 {
                protocol esp;
                authentication-algorithm hmac-sha1-96;
                encryption-algorithm aes-256-cbc;
                lifetime-seconds 3600;
            }
            policy oracle-ipsec-policy {
                perfect-forward-secrecy {
                    keys group5;
                }
                proposals [ esp-aes256-sha1 ];
            }
        }
        ike {
            proposal aes256-sha384-group5 {
                authentication-method pre-shared-keys;
                dh-group group5;
                authentication-algorithm sha-384;
                encryption-algorithm aes-256-cbc;
                lifetime-seconds 28800;
            }
            policy oracle-ike-policy-${ipAddress1} {
                mode main;
                version 1;
                proposals [ aes256-sha384-group5 ];
                local-id ipv4_addr ${cpePublicIpAddress};
                remote-id ipv4_addr ${ipAddress1};
                pre-shared-key ascii-text ${sharedSecret1};
            }
            policy oracle-ike-policy-${ipAddress2} {
                mode main;
                version 1;
                proposals [ aes256-sha384-group5 ];
                local-id ipv4_addr ${cpePublicIpAddress};
                remote-id ipv4_addr ${ipAddress2};
                pre-shared-key ascii-text ${sharedSecret2};

            }
        }
    }
}