Oracle Cloud Infrastructureドキュメント

Cisco ASA: Route-Based

このトピックでは、ソフトウェア・バージョン9.7.1 (またはそれ以降)を実行しているCisco ASAのルーティング・ベース構成を示します。

注意として、OracleではASAソフトウェアに基づいて異なる構成が提供されます:

  • 9.7.1以降: ルート・ベースの構成(このトピック)
  • 8.5から9.7.0: ポリシーベース構成
  • 8.5より古い: Oracleの構成指示ではサポートされません。 新しいバージョンにアップグレードすることを検討してください。
重要

Oracleでは、「ベンダーおよびデバイス」のセットの構成手順を示します。 正しいベンダーに対してこの構成を使用してください。

構成の検証にOracleで使用されたデバイスまたはソフトウェアのバージョンが、デバイスまたはソフトウェアと完全に一致しない場合、構成が機能する可能性があります。 ベンダーのドキュメントを参照し、必要な調整を行います。

デバイスが、検証済のベンダーおよびデバイスのリストに含まれないベンダー用である場合、またはIPSecのデバイスの構成をよく理解している場合は、「サポートされているIPSecパラメータ」のリストを参照し、ベンダーのサポートについて問い合わせてください。

「VPN接続」は、Oracle Cloud Infrastructureによって仮想クラウド・ネットワーク(VCN)にオンプレミス・ネットワークを接続するために提供されるIPSec VPNです。

次の図は、冗長なトンネルを使用した、Oracle Cloud Infrastructureへの基本的なIPSec接続を示しています。 この図のIPアドレスは例のみであり、リテラルでは使用しません。

このイメージは、オンプレミス・ネットワーク、VPN接続トンネルおよびVCNの一般的なレイアウトの概要を示しています。

ベスト・プラクティス

この項では、「VPN接続」の使用に関する一般的なベスト・プラクティスと考慮事項について説明します。

すべてのIPSec接続のためのすべてのトンネルの構成

Oracleは、接続ごとに2つのIPSecヘッドエンドをデプロイし、ミッション・クリティカルなワークロードの高可用性を提供します。 Oracle側では、これらの2つのヘッドエンドが別々のルーターに配置されて冗長性が確保されています。 Oracleでは、最大の冗長性のために使用可能なすべてのトンネルを構成することをお薦めします。 これは"不良の設計"哲学の重要な要素です。

オンプレミス・ネットワークのロケーションに冗長のCPEがある

IPSecをOracle Cloud Infrastructureに接続する各サイトには、冗長なエッジ・デバイス(カスタマ設置機器(CPE))を使用する必要があります。 Oracle コンソールに各CPEを追加し、動的ルーティング・ゲートウェイ(DRG)と各CPE間に別のIPSec接続を作成します。 各IPSec接続について、Oracleは、地理的に冗長なIPSecヘッドエンドに2つのトンネルをプロビジョニングします。 詳細は、「接続性冗長性ガイド(PDF)」を参照してください。

ルーティング・プロトコルに関する考慮事項

IPSec VPNを作成すると、2つの冗長なIPSecトンネルが作成されます。 Oracleでは、両方のトンネルを使用するようにCPEを構成することをお薦めします(CPEでサポートされている場合)。 Oracleは、過去、最大4つのIPSecトンネルを持つIPSec VPNを作成していました。

次の2つのルーティング・タイプを使用でき、IPSec VPNの各トンネルに対して別個にルーティング・タイプを選択します:

  • BGP動的ルーティング: 使用可能なルートはBGPによって動的に学習されます。 DRGは、オンプレミス・ネットワークからルートを動的に学習します。 Oracle側では、DRGによってVCNサブネットが通知されます。
  • 静的ルーティング: DRGへのIPSec接続を設定する際に、VCNが認識する対象のオンプレミス・ネットワークに特定のルートを指定します。 また、VCNサブネットに静的ルートを持つCPEデバイスを構成する必要もあります。 これらのルートは、動的には学習されません。

BGP最適パス選択アルゴリズムの操作方法に関するOracleの推奨など、「VPN接続」を使用したルーティングの詳細は、「Oracle IPSec VPNのルーティング」を参照してください。

その他の重要なCPE構成

NATトラバーサル (NAT-T)が「VPN接続」トラフィックに対して無効であることを確認します。 NAT-Tは、Oracle Cloud Infrastructureでサポートされていません。

CPEに対するアクセス・リストが、Oracle Cloud Infrastructureとの間で必要なトラフィックをブロックしないように正しく構成されていることを確認します。

複数のトンネルが同時に存在する場合、VCNからのトラフィックをいずれかのトンネルで処理するようにCPEが構成されていることを確認します。 たとえば、ICMP検査を無効にしたり、TCPステート・バイパスを構成したりする必要があります。 適切な構成の詳細は、CPEベンダーのサポートにお問い合せください。

Cisco ASA固有: 注意事項および制限事項

この項では、Cisco ASA固有の重要な特性および制限について説明します。

トンネルMTUおよびパスMTU検出

Cisco ASAを使用してトンネルMTU検出とパスMTU検出をアドレス指定するには、2つのオプションがあります:

オプション1: TCP MSS調整

IPSecトンネルを通じた最大転送単位(パケット・サイズ)は1500バイト未満です。 トンネルを通して合致させるには大きすぎるパケットを断片化します。 または、小さいパケットを送信する必要のあるトンネルを通して通信しているホストに信号を返すことができます。

トンネル経由で新しいTCPフローの最大セグメント・サイズ(MSS)を変更するようにCisco ASAを構成できます。 ASAは、SYNフラグが設定されているTCPパケットを検索し、MSS値を構成済の値に変更します。 この構成は、新規TCPフローによるパスの最大転送単位検出(PMTUD)の使用を回避するのに役立ちます。

次のコマンドを使用して、MSSを変更します。 このコマンドは、このトピックの「CPE構成」セクションのサンプル構成には含まれていません。 必要に応じて、TCP MSS調整コマンドを手動で適用します。

sysopt connection tcpmss 1387

オプション2: 断片化しないビットのクリア/設定

パスMTU検出では、すべてのTCPパケットにDon't Fragment (DF)ビットが設定されている必要があります。 DFビットが設定されていて、パケットが大きすぎてトンネルを通過できない場合、ASAはパケットが到着するとパケットをドロップします。 ASAは、ICMPパケットを送信元に戻し、受信したパケットがトンネルに対して大きすぎたことを示します。 ASAには、DFビットを処理するための3つのオプションがあります。 いずれかのオプションを選択し、構成に適用します:

  • DFビットを設定する(推奨): パケットのIPヘッダーにはDFビットが設定されます。 元の受信パケットがDFビットをクリアした場合でも、ASAはパケットをフラグメントする可能性があります。

    crypto ipsec df-bit set-df ${outsideInterface}
  • DFビットをクリアします: DFビットはパケットIPヘッダーでクリアされます。 パケットが同じように断片化され、Oracle Cloud Infrastructureのエンド・ホストに送信されるようにします。

    crypto ipsec df-bit clear-df ${outsideInterface}
  • DFビットを無視(コピー)します: ASAは元のパケットIPヘッダー情報を調べ、DFビット設定をコピーします。

    crypto ipsec df-bit copy-df ${outsideInterface}

VPNトラフィックの混載を1つ入力して別のトンネルを終了

VPNトラフィックが、パケットの次のホップに対するインタフェースと同じセキュリティ・レベルでインタフェースに入っている場合は、そのトラフィックを許可する必要があります。 デフォルトでは、ASAに同じセキュリティ・レベルを持つインタフェース間のパケットは削除されます。

同じセキュリティ・レベルのインタフェース間のトラフィックを許可する必要がある場合は、次のコマンドを手動で追加します。 このコマンドは、「CPE構成」セクションのサンプル構成には含まれていません。

same-security-traffic permit inter-interface

一般的な注意事項および制限事項

この項では、「VPN接続」の一般的な特性と制限について説明します。

非対称ルーティング

Oracleでは、IPSec接続を構成する複数のトンネル間で非対称ルーティングが使用されます。 それに応じてファイアウォールを構成します。 そうしないと、接続を介したpingテストやアプリケーション・トラフィックが確実に機能しなくなります。

複数のトンネルをOracle Cloud Infrastructureに使用する場合は、Oracleによって、優先トンネルを通してトラフィックを永続的にルーティングするようにルーティングを構成することをお薦めします。 1つのIPSecトンネルをプライマリとして使用し、別のトンネルをバックアップとして使用する場合は、バックアップ・トンネル(BGP)用にセカンダリ固有のルート(サマリーまたはデフォルト・ルート)を、バックアップ・トンネル(BGP/静的)用に構成します。 それ以外の場合は、すべてのトンネルを通して同じルート(たとえば、デフォルト・ルート)を通知する場合、Oracleが非対称ルーティングを使用するため、VCNからオンプレミス・ネットワークにトラフィックを返します。

対称ルーティングを強制する方法の詳細は、「IPSec VPNの特定トンネルの優先順位」を参照してください。

ルート・ベースまたはポリシーベースのIPSec VPN

IPSecプロトコルは、セキュリティ関連付け(SAs)を使用してパケットを暗号化する方法を決定します。 各SA内では、パケットのソースおよび宛先のIPアドレスとプロトコル・タイプをSAデータベース内のエントリにマップする暗号化ドメインを定義して、パケットの暗号化または復号化の方法を定義します。

ノート

他のベンダーまたは業界のドキュメントでは、「プロキシID、セキュリティ・パラメータ索引(SPI)」または「トラフィック・セレクタ」という用語が、saまたは暗号化ドメインを参照している場合に使用されることがあります。

IPSecトンネルを実装するには、一般的に次の2つのメソッドがあります:

  • ルート・ベースのトンネル: 次のルーチン・ベースのトンネルとも呼ばれます。 パケット宛先IPアドレスでルート表参照が実行されます。 そのルートのエグレス・インタフェースがIPSecトンネルの場合、そのパケットは暗号化されてから、そのトンネルの反対側に送信されます。
  • ポリシーベースのトンネル: パケットのソースIPアドレスおよび宛先IPアドレスとプロトコルは、ポリシー文のリストと照合されます。 一致が見つかった場合、そのポリシー文のルールに基づいてパケットが暗号化されます。

Oracle VPNヘッドエンドは、ルート・ベースのトンネルを使用しますが、次の項にリストされているいくつかの警告を含むポリシーベースのトンネルを使用できます。

重要

Oracle VPNヘッドエンドは、単一の暗号化ドメインのみをサポートします。
ポリシーに複数のエントリが含まれる場合、トンネルはフラグを設定するか、または接続性に問題が発生し、その中で一度に1つのポリシーのみが機能します。

ルート・ベースのトンネル用の暗号化ドメイン
ポリシーベースのトンネルの暗号化ドメイン

CPEがNATデバイスの妨げになる場合

通常、接続の最後に構成されたCPE IKE識別子は、Oracleが使用しているCPE IKE識別子と一致している必要があります。 デフォルトでは、OracleではCPE 「パブリック」 IPアドレスが使用されます。このアドレスは、Oracle コンソールでCPEオブジェクトを作成したときに指定します。 ただし、CPEがNATデバイスより遅れている場合、次の図に示すように、最後に構成されたCPE IKE識別子がCPE「プライベート」IPアドレスになる場合があります。

このイメージは、NATデバイスの背後のCPE、パブリックIPアドレスとプライベートIPアドレス、およびCPE IKE識別子を示しています。

ノート

一部のCPEプラットフォームでは、ローカルIKE識別子を変更できません。
実行できない場合は、Oracle コンソールでリモートIKE IDを、CPEローカルIKE IDと一致するように変更する必要があります。 この値は、IPSec接続の設定時に指定することも、後でIPSec接続を編集して指定することもできます。 Oracleでは、値はcpe.example.comなどのIPアドレスまたは完全修飾ドメイン名(FQDN)のいずれかであると想定されています。 手順については、「Oracleで使用されるCPE IKE識別子の変更」を参照してください。

サポートされているIPSecパラメータ

すべてのリージョンでサポートされるIPSecパラメータのベンダー固有のリストについては、「サポートされるIPSecパラメータ」を参照してください。

商用クラウドのOracle BGP ASNは、31898です。 Government Cloud用に「VPN接続」を構成する場合は、「Government CloudのVPN接続パラメータが必要」および「OracleのBGP ASN」も参照してください。

CPE構成

重要

この項で説明する構成手順は、Oracle Cloud InfrastructureによってCPEに提供されています。 サポートが必要な場合は、CPEベンダーのサポートに直接お問い合せください。

次の図は、IPSec接続の基本レイアウトを示しています。

このイメージは、IPSec接続とトンネルの一般的なレイアウトをまとめたものです。

提供されている構成テンプレートは、Cisco ASA 9.7.1ソフトウェア(以降)を実行するCiscoルーター用です。 このテンプレートは、各トンネルについて、構成する必要がある情報を提供します。 Oracleでは、冗長性を最大限に高めるために、構成されたすべてのトンネルを設定することをお薦めします。

構成テンプレートは、次のアイテムを指定する必要があります:

  • CPEパブリックIPアドレス: CPE上の外部インタフェースに割り当てられるinternet-routable IPアドレス。 Oracle コンソールでCPEオブジェクトを作成するときに、Oracle管理者がこの値をOracleに提供します。
  • 内部トンネル・インタフェース(BGPを使用している場合に必要): 内部トンネル・インタフェースのCPEおよびOracle側のIPアドレス。 これらの値は、Oracle コンソールでIPSec接続を作成するときに指定します。
  • BGP ASN (BGPを使用する場合は必須): BGP ASN。

さらに、次のことが必要です:

  • CPEとローカル・ネットワーク間のトラフィックをルーティングする内部ルーティングを構成します。
  • ASAとOracle VCNの間のトラフィックを許可します。
  • 使用されているIPSecプロファイルを特定します(次の構成テンプレートは、このグループ・ポリシーをoracle-vcn-vpn-policyとして参照します)。
  • 暗号化マップに使用される変換セットを指定します(次の構成テンプレートはこの変換セットをoracle-vcn-transformとして参照します)。
  • 使用される仮想トンネルのインタフェース名を識別します(次の構成テンプレートは、これらを変数${tunnelInterfaceName1}および${tunnelInterfaceName2}として参照します)。
重要

Oracle Cloud Infrastructure 「CPEに適用する必要がある作業の開始ポイントです」の次の構成テンプレート。 テンプレートで参照されているパラメータの一部は、CPEに対して一意である必要があります。また、CPEにアクセスして一意性を判別することしかできません。 CPEに対してパラメータが有効であり、以前に構成した値が上書きされないことを確認してください。 特に、次の値が一意であることを確認してください:

  • ポリシー名または番号
  • インタフェース名または番号
  • リスト番号にアクセス(該当する場合)

構成テンプレートを全画面で表示して読みやすくします。

!-------------------------------------------------------------------------------------------------------------------------------------------------------------
! Configuration Template
! The configuration consists of two IPSec tunnels. Oracle highly recommends that you configure both tunnels for maximum redundancy.
!-------------------------------------------------------------------------------------------------------------------------------------------------------------
! The configuration template involves setting up the following:
! ISAKMP Policy
! IPSec Configuration
! IPSec Tunnel Group Configuration
! VTI Interface Configuration
! IP Routing (BGP or Static)
!-------------------------------------------------------------------------------------------------------------------------------------------------------------
! The configuration template has various parameters that you must define before applying the configuration.
!-------------------------------------------------------------------------------------------------------------------------------------------------------------
! PARAMETERS REFERENCED:
! ${OracleInsideTunnelIpAddress1} = Inside tunnel IP address of Oracle-side for the first tunnel. You provide these values when creating the IPSec connection in the Oracle Console.
! ${OracleInsideTunnelIpAddress2} = Inside tunnel IP address of Oracle-side for the second tunnel. You provide these values when creating the IPSec connection in the Oracle Console.
! ${bgpASN} = Your BGP ASN
! ${cpePublicIpAddress} = The public IP address for the CPE. This is the IP address of your outside interface
! ${oracleHeadend1} = Oracle public IP endpoint obtained from the Oracle Console.
! ${oracleHeadend2} = Oracle public IP endpoint obtained from the Oracle Console.
! ${sharedSecret1} = You provide when you set up the IPSec connection in the Oracle Console, or you can use the default Oracle-provided value.
! ${sharedSecret2} = You provide when you set up the IPSec connection in the Oracle Console, or you can use the default Oracle-provided value.
! ${outsideInterface} = The public interface or outside of tunnel interface which is configured with the CPE public IP address.
! ${tunnelInterfaceName1} = The name of the first VTI used on your ASA.
! ${tunnelInterfaceName2} = The name of the second VTI used on your ASA.
! ${cpeInsideTunnelIpAddress1} = The CPE's inside tunnel IP for the first tunnel.
! ${cpeInsideTunnelIpAddress2} = The CPE's inside tunnel IP for the second tunnel.
! ${cpeInsideTunnelNetmask1} = The CPE's inside tunnel netmask for the first tunnel.
! ${cpeInsideTunnelNetmask2} = The CPE's inside tunnel netmask for the second tunnel.
! ${vcnCidrNetwork} = VCN IP range
! ${vcnCidrNetmask} = Subnet mask for VCN
! ${onPremCidrNetwork} = On-premises IP range
! ${onPremCidrNetmask} = ON-premises subnet mask
!-------------------------------------------------------------------------------------------------------------------------------------------------------------
 
! ISAKMP Policy
  
! ISAKMP Phase 1 configuration.
! IKEv1 is enabled on the outside interface.
! IKEv1 policy is created for Phase 1 which specifies to use a Pre-Shared Key, AES256, SHA1, Diffie-Hellman Group 5, and a Phase 1 lifetime of 28800 seconds (8 hours).
! If different parameters are required, modify this template before applying the configuration.
! WARNING: The IKEv1 group policy is created with a priority of 10. Make sure this doesn't conflict with any pre-existing configuration on your ASA.
 
crypto ikev1 enable ${outsideInterface}
 
crypto ikev1 policy 10
  authentication pre-share
  encryption aes-256
  hash sha
  group 5
  lifetime 28800
  
! IPSec Configuration
  
! Create an IKEv1 transform set named 'oracle-vcn-transform' which defines a combination of IPSec (Phase 2) policy options. Specifically, AES256 for encryption and SHA1 for authentication.
! If different parameters are required, modify this template before applying the configuration.
 
crypto ipsec ikev1 transform-set oracle-vcn-transform esp-aes-256 esp-sha-hmac
  
! A IPSec profile named 'oracle-vcn-vpn-policy' is created.
! The previously created transform set is added to this policy along with settings for enabling PFS Group 5 and the security association lifetime to 3600 seconds (1 hour).
! If different parameters are required, modify this template before applying the configuration.
 
crypto ipsec profile oracle-vcn-vpn-policy
 set ikev1 transform-set oracle-vcn-transform
 set pfs group5
 set security-association lifetime seconds 3600
  
! IPSec Tunnel Group Configuration
 
! A tunnel group is created for each Oracle VPN Headend. Each tunnel group defines the pre-shared key used for each respective tunnel.
 
tunnel-group ${oracleHeadend1} type ipsec-l2l
tunnel-group ${oracleHeadend1} ipsec-attributes
  ikev1 pre-shared-key ${sharedSecret1}
 
tunnel-group ${oracleHeadend2} type ipsec-l2l
tunnel-group ${oracleHeadend2} ipsec-attributes
 ikev1 pre-shared-key ${sharedSecret2}
 
! VTI Interface Configuration
 
! A virtual tunnel interface (VTI) is a logical interface representing the local end of a VPN tunnel to a remote VPN peer. Two VTIs are created representing two tunnels, one to each Oracle VPN Headend. The IP address of each VPN headend is provided when you create your IPSec connection in Oracle Console.
! All traffic routed to a VTI will be encrypted and sent across the tunnel towards Oracle Cloud Infrastructure.
! Each VTI configuration also references the previously created IPSec profile 'oracle-vcn-vpn-policy' for its IPSec parameters.
 
interface ${tunnelInterfaceName1}
  nameif ORACLE-VPN1
  ip address ${cpeInsideTunnelIpAddress1} ${cpeInsideTunnelNetmask1}
  tunnel source interface ${outsideInterface}
  tunnel destination ${oracleHeadend1}
  tunnel mode ipsec ipv4
  tunnel protection ipsec profile oracle-vcn-vpn-policy
 
interface ${tunnelInterfaceName2}
  nameif ORACLE-VPN2
  ip address ${cpeInsideTunnelIpAddress2} ${cpeInsideTunnelNetmask2}
  tunnel source interface ${outsideInterface}
  tunnel destination ${oracleHeadend2}
  tunnel mode ipsec ipv4
  tunnel protection ipsec profile oracle-vcn-vpn-policy
 
! IP Routing
! Pick either dynamic (BGP) or static routing. Uncomment the corresponding commands prior to applying configuration.
 
! Border Gateway Protocol (BGP) Configuration
! Uncomment below lines if you want to use BGP.
  
! router bgp ${bgpASN}
!  address-family ipv4 unicast
!   neighbor ${OracleInsideTunnelIpAddress1} remote-as 31898
!   neighbor ${OracleInsideTunnelIpAddress1} activate
!   neighbor ${OracleInsideTunnelIpAddress2} remote-as 31898
!   neighbor ${OracleInsideTunnelIpAddress2} activate
!   network ${onPremCidrNetwork} mask ${onPremCidrNetmask}
!   no auto-summary
!   no synchronization
!  exit-address-family
 
! Static Route Configuration
! Each static route references the other VTI by its nameif value.
! Uncomment below line if you want to use static routing.
 
! route ORACLE-VPN1 ${VcnCidrNetwork} ${VcnCidrNetmask} ${OracleInsideTunnelIpAddress1} 1 track
! route ORACLE-VPN2 ${VcnCidrNetwork} ${VcnCidrNetmask} ${OracleInsideTunnelIpAddress2} 100
 
! Configuration for Tunnel Failover
 
! Uncomment the below IP SLA lines if using static routing.
! Use this IP SLA configuration for static route failover This IP SLA configuration is used for static route failover between the two tunnels.
! Make sure that the SLA monitor and tracking numbers used do not conflict with any existing configuration on your ASA.
 
! sla monitor 10
!  type echo protocol ipIcmpEcho ${oracleHeadend1} interface outside
!  frequency 5
!  sla monitor schedule 10 life forever start-time now
 
! track 1 rtr 10 reachability

検証

基本的なトラブルシューティングのために、次のASAコマンドが用意されています。 詳細は、Cisco 「IPSecのトラブルシューティング」のドキュメントを参照してください。

次のコマンドを使用して、ISAKMPセキュリティとの関連付けが2つのピア間で構築されていることを確認します。

show crypto isakmp sa

次のコマンドを使用して、すべてのBGP接続のステータスを確認します。

show bgp summary

次のコマンドを使用して、ASAルート表を確認します。

show route

モニタリングサービス」Oracle Cloud Infrastructureからも入手可能で、クラウド・リソースを積極的にモニターします。 「VPN接続」のモニターの詳細は、「VPN接続メトリック」で入手してください。

問題がある場合は、「VPN接続のトラブルシューティング」を参照してください。