Oracle Cloud Infrastructureドキュメント

Cisco ASA: VPNフィルタなしのポリシー・ベース

重要

Cisco ASAバージョン9.7.1以降では、相互運用性の問題を回避するために推奨されるメソッドである「ルート・ベースの構成」がサポートされています。

単一のCisco ASAデバイスによるトンネル冗長性を使用する場合は、ルーティング・ベースの構成を使用する必要があります。 ポリシーベースの構成では、Oracleが2つのトンネルの構成情報を提供していても、Cisco ASAと動的ルーティング・ゲートウェイ(DRG)の間に単一のトンネルのみを構成できます。

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

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

${ipAddress#}

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

${sharedSecret#}

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

${cpePublicIpAddress}

  • CPEのパブリックIPアドレス(以前はコンソール経由でOracleに提供されていました)。 これは外部インタフェースのIPアドレスです。
  • 値の例: 1.2.3.4

追加の構成パラメータ

Cisco ASAの構成には、次の追加の変数が必要です:

${vcnID}

  • アクセス・リストとオブジェクト・グループを一意に指定するために使用されるUUID文字列(既存のオブジェクト・グループまたはアクセス・リストと競合する名前を作成しない他の文字列も使用できます)。
  • 例: oracle-vcn-1

${VcnCidrBlock}

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

${VcnCidrNetwork}${VcnCidrNetmask}

${custCIDR}${custMask}

  • VCNとオンプレミス・ネットワーク間のNATを無効にするには、CPEを経由してIPSecトンネルに移動するパケットのソースIPアドレスを定義する必要があります。
  • 次に例を示します。
    • ${custCIDR}: 0.0.0.0
    • ${custMask}: 0.0.0.0

CPE構成から検出されるパラメータ

次のパラメータは、現在のCPE構成に基づいています。

サンプルRouter Config:

interface Vlan100
nameif outside
ip address 192.0.2.1 255.255.255.0
!
interface Vlan101
nameif inside
access-group outbound-acl out interface Vlan101
access-group inbound-acl in interface Vlan100

${insideInterface}${outsideInterface}

  • これらは、CPEの内側と外側のインタフェースです。
  • 外部インタフェースは、Oracle VPNヘッド・エンドIPにpingできる必要があります。
  • 内部インタフェースは、お客様の宅内インフラストラクチャに面しているインタフェースです。
  • 上記のSample Router Configに基づく値:
    • ${outsideInterface}: Vlan100
    • ${insideInterface}: Vlan101

${insideInterfaceName}${outsideInterfaceName}

  • これらは内部と外部のインタフェースの"nameif"値です。
  • 上記のSample Router Configに基づく値:
    • ${insideInterfaceName}: inside
    • ${outsideInterfaceName}: outside

${inboundAclName}${outboundAclName}

  • おそらく、内部と外部のインタフェースに出入りするトラフィックを制御するように構成されたアクセス・リストもあります。
  • 上記のSample Router Configに基づく値:
    • ${inboundAclName}: inbound-acl
    • ${outboundAclName}: outbound-acl

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

各リージョンには複数の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
${vcnID} Console/API/User 1
${VcnCidrBlock} ユーザー 10.0.0.0/16
${VcnCidrNetwork} ユーザー 10.0.0.0
${VcnCidrNetmask} ユーザー 255.255.0.0
${VcnHostIp} ユーザー VCN内のホストのIPアドレス。 好ましくは、このホストはICMPエコー・リクエストに応答することができます。 例: 10.0.2.7
${custCIDR} ユーザー 0.0.0.0
${custMask} ユーザー 0.0.0.0
${insideInterface} ユーザーCPE Vlan101
${outsideInterface} ユーザーCPE Vlan100
${insideInterfaceName} ユーザーCPE INSIDE
${outsideInterfaceName} ユーザーCPE outside
${inboundAclName} ユーザーCPE inbound-acl
${outboundAclName} ユーザーCPE outbound-acl
${cryptoMapAclName} ユーザーCPE orcl-acl

ISAKMPポリシー・オプション

IPSecポリシー・オプション

CPE構成

ネットワーク・オブジェクト定義

ASAは、構成オブジェクトを使用して、複数のロケーションで使用されているIPネットワークを識別します。

Oracle VCNを表すオブジェクトの定義

このオブジェクト・グループは、IPSecポリシーによって使用され、IPアドレスが暗号化され正しいIPSecトンネル内に送信されるように、Oracle VCNに属するIPアドレスを認識します。

object network oracle-vcn-${vcnID}
subnet ${VcnCidrNetwork} ${VcnCidrNetmask}

顧客の構内ネットワークを表すオブジェクトの定義

このオブジェクトはすでにASAに存在している可能性があります。 一般的な名前は、"内部"インタフェースのインタフェース名と一致します。 このオブジェクト・グループには複数のサブネット・エントリが存在する可能性があります。 このIPSecトンネルが、Oracle VCNとの間のトラフィックで使用されるようにする、集約サブネットごとに1つ。

object network ${insideInterfaceName}
subnet ${custCIDR} ${custMask}

VPNトラフィックのNATを無効にします

内部インタフェースと外部インタフェース間のトラフィックにNATを使用する場合は、オンプレミス・ネットワークとOracle VCN間のトラフィックに対してNATを無効にする必要があります。

nat (${insideInterfaceName},${outsideInterfaceName}) source static ${insideInterfaceName} ${insideInterfaceName} destination static oracle-vcn-${vcnID} oracle-vcn-${vcnID}

CPEとOracle VCN間のトラフィックを許可

インターネットに接続されたインタフェースにトラフィックを制御するアクセス・リストがあると仮定すると、CPEとOracle VPNヘッド・エンドの間のトラフィックを許可する必要があります。

警告: CPEとVPNヘッド・エンド間のトラフィックを許可するために追加する新しいACLエントリは、既存のアクセス・リストにある拒否ステートメントの上にある必要があります:

access-list ${outboundAclName} extended permit ip host ${ipAddress1} host ${cpePublicIpAddress}
access-list ${outboundAclName} extended permit ip host ${ipAddress2} host ${cpePublicIpAddress}

ノート: 望むのであれば、ACLでもっと制限することができます:

  • udpポート500 : isakmp
  • esp : ipsecカプセル化された安全なペイロード

暗号化マップACL構成

次のアクセス・リスト"orcl-acl"は、"crypto-map"コマンドを使用してIPSecセキュリティ・アソシエーションに関連付けられます。

access-list ${cryptoMapAclName} extended permit ip any ${VcnCidrNetwork} ${VcnCidrNetmask} 

重要

トンネルを開始する必要があります。
Oracle IPSecゲートウェイがトンネルを開始する場合は、ip anyと同等の暗号化マップの送信のみをサポートしています。 応答者は、暗号化マップでは1つのエントリのみを受け入れます: ip any ${VcnCidrNetwork} ${VcnCidrNetmask}前述のコマンドで示されている内容。

ISAKMPポリシーの構成

「ASAコマンド・リファレンス」を参照してください。

crypto ikev1 enable ${outsideInterfaceName}
crypto ikev1 policy 1
authentication pre-share
encryption aes-256
hash sha
group 5
lifetime 28800

ベースVPNポリシー構成

この構成では、IPSecトンネルの基本値を構成します。

group-policy oracle-vcn-vpn-policy internal
group-policy oracle-vcn-vpn-policy attributes
vpn-idle-timeout none
vpn-session-timeout none
vpn-tunnel-protocol ikev1

関連するシスコのマニュアルを参照してください:

IPSecの構成

「関連するシスコの参考資料」を参照してください。

警告

暗号マップ・シーケンス番号が既存の暗号マップと重複しないようにしてください。

Oracle IPSec VPNトンネルではoriginate-onlyオプションを使用しないでください。 トンネルのトラフィックが一貫性のあるブラックアウトになります。 このコマンドは、2つのCiscoデバイス間のトンネル用です。 次に、Oracle IPSec VPNトンネルには使用しないコマンドの例を示します:

crypto map <map name> <sequence number> set connection-type originate-only
crypto ipsec ikev1 transform-set oracle-vcn-transform esp-aes-256 esp-sha-hmac
crypto map oracle-${ipAddress1}-map-v1 1 match address ${cryptoMapAclName}
crypto map oracle-${ipAddress1}-map-v1 1 set pfs group5
crypto map oracle-${ipAddress1}-map-v1 1 set peer ${ipAddress1} crypto map oracle-${ipAddress1}-map-v1 1 set ikev1 transform-set oracle-vcn-transform crypto map oracle-${ipAddress1}-map-v1 1 set security-association lifetime seconds 3600 crypto map oracle-${ipAddress1}-map-v1 interface outside crypto map oracle-${ipAddress2}-map-v1 2 match address ${cryptoMapAclName} crypto map oracle-${ipAddress2}-map-v1 2 set pfs group5
crypto map oracle-${ipAddress2}-map-v1 2 set peer ${ipAddress2} crypto map oracle-${ipAddress2}-map-v1 2 set ikev1 transform-set oracle-vcn-transform crypto map oracle-${ipAddress2}-map-v1 2 set security-association lifetime seconds 3600 crypto map oracle-${ipAddress2}-map-v1 interface outside

トンネルIPSec構成ごと

この構成では、グループ・ポリシーとOracle VPNヘッド・エンド・エンドポイントが一致します。

tunnel-group ${ipAddress1} type ipsec-l2l
tunnel-group ${ipAddress1} general-attributes
default-group-policy oracle-vcn-vpn-policy
tunnel-group ${ipAddress1} ipsec-attributes
ikev1 pre-shared-key ${sharedSecret1}

tunnel-group ${ipAddress2} type ipsec-l2l
tunnel-group ${ipAddress2} general-attributes
default-group-policy oracle-vcn-vpn-policy
tunnel-group ${ipAddress2} ipsec-attributes
ikev1 pre-shared-key ${sharedSecret2}		

SLAモニタリングの構成

トンネルを通過しようとする関心のあるトラフィックがない場合、Cisco ASAデバイスはトンネルを確立しません。 トンネルが常にアップ状態になるように、デバイスでSLAモニタリングを構成する必要があります。 外部インタフェースでICMPを許可する必要があります。 SLAモニター番号が一意であることを確認してください。

sla monitor 1
type echo protocol ipIcmpEcho ${VcnHostIp} interface outside
frequency 5
sla monitor schedule 1 life forever start-time now
icmp permit any ${outsideInterface}		

VPNトラフィックが1つのトンネルに入り、別のトンネルに入る可能性のあるオプション構成

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

「関連するシスコの参考資料」を参照してください。

same-security-traffic permit inter-interface

トンネルMTUおよびPath MTU Discoveryの処理

オプション1 - TCP MSS調整

IPSecトンネルを通過する最大伝送単位(パケット・サイズ)は1500バイト未満なので、トンネルを通過するには大きすぎるパケットをフラグメントするか、必要なトンネルを介して通信するホストに返信する必要があります小さなパケットを送信します。

トンネル経由で新しいTCPフローの最大セグメント・サイズ(MSS)を変更するようにCisco ASAを構成できます。 ASAは、SYNフラグが構成されているTCPパケットを調べ、MSS値を構成値に変更します。 これは、新しいTCPフローがパス最大伝送ユニット検出 (pmtud)を使用する必要を避けるのを助けるかもしれません。

sysopt connection tcpmss 1387 

参照:

オプション2 - "Don't Fragment"ビットをクリア/設定

Path MTU Discoveryでは、すべてのTCPパケットにDon't Fragment (DF)ビットが設定されている必要があります。 パケットがASAに到着すると、トンネルを通過するには大きすぎてDFビットが設定されている場合、ASAはパケットをドロップし、送信側にICMPパケットを送信して、パケットが大きすぎて通過できないことを示しますトンネル。 DFビットを処理する方法については、ASAに3つのオプションがあります(オプションの1つを選択してください):

  • DFビットをセット: DFビットがまだ設定されておらず、パケットが大きすぎる場合は、DFビットを設定し、ASAにパケットをドロップさせ、ICMPエラー・メッセージを送信者に送り返します。 (推奨)

    crypto ipsec df-bit set-df ${outsideInterfaceName}
  • DFビットをクリア: ASAはパケットをフラグメントしてOracle Cloud Infrastructureのエンド・ホストに送信し、パケットを再構成します。

    crypto ipsec df-bit clear-df ${outsideInterfaceName}
  • DFビットを無視(コピー)します: パケットが大きすぎてDFビットが設定されている場合、パケットを廃棄し、エラー・メッセージを送信者に送信します。DFビットが設定されていない場合は、パケットをフラグメント化してOracle Cloud Infrastructureに送信します。

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

参照: