IBM Cloud Docs
IPSec トンネルの構成およびトラブルシューティング

IPSec トンネルの構成およびトラブルシューティング

IPSec トンネルは、2 つのルーターまたはファイアウォール(一般に IPSec を参照してピアエンドポイントと呼ばれる)間のネゴシエートされた接続を介して、プライベート空間のサブネット(rfc1918)を安全に接続するために使用される。 一般的に、2つのピアエンドポイントはインターネットを通じて互いにネットワーク接続が可能である。 インターネット上で直接接続されていない場合、片方または両方のピアがNAT/ポート転送の背後にある可能性がある。 NATトラバーサルを有効にする必要があります。 I

具体的には、IBM Cloud 環境では、Vyatta (またはその他のクラシック ゲートウェイ アプライアンス) が IBM Cloud クラシック インフラストラクチャ側のピア エンドポイントとして使用されます。 リモート・エンドポイント(IBM Cloudを参照)は、「オンプレミス」側のルーターまたはファイアウォールです。

次の図は、IBM Cloud Classic からインターネットを介したオンプレムへの IPSec トンネルの非常に基本的な視覚表現です。

Vyatta 基本 IPSec トンネル設定
Figure 1: Vyatta 基本 IPSec トンネル設定

ルートベースとポリシーベースのIPSec

ルートベース IPSec では、トラフィックセレクタ(ローカルおよびリモートプレフィックスとも呼ばれる)を設定せず、代わりに VTI インタフェースを設定します。 さらに、そのインターフェイスにネクストホップを設定したリモートサブネット用のスタティックルートを手動で設定する。

Vyatta のポリシーベースの IPSec では、ローカルとリモートのプレフィックスを設定し、トンネルのルート可能なインターフェイスは設定しません。 VFPインターフェイスは、ポリシーベースのIPSecコンフィギュレーションにルーティング可能なインターフェイスを追加するための機能として追加された。 これにより、ポリシーベースのトンネルでNATやより詳細なファイアウォールルールを利用するために、ルートベースの構成に移行する必要がなくなる。

ルートベースとポリシーベースの IPSec の違いについては、IPsec site-to-site VPN configuration options の記事を参照してください。

ルートベースIPSecの設定例

次の例は、IBM Cloudクラシック・インフラストラクチャ環境で実行されるルートベースの構成です:

西側

#PHASE 1
set security vpn ipsec ike-group IKE-Fergie ike-version 2
set security vpn ipsec ike-group IKE-Fergie lifetime 28800
set security vpn ipsec ike-group IKE-Fergie proposal 1 dh-group 20
set security vpn ipsec ike-group IKE-Fergie proposal 1 encryption aes256
set security vpn ipsec ike-group IKE-Fergie proposal 1 hash sha2_256

#PHASE 2
set security vpn ipsec esp-group ESP-Fergie pfs dh-group20
set security vpn ipsec esp-group ESP-Fergie proposal 1 encryption aes128gcm128
set security vpn ipsec esp-group ESP-Fergie proposal 1 hash null
set security vpn ipsec esp-group ESP-Fergie lifetime 3600

#Tie it all together configuration
set security vpn ipsec site-to-site peer 159.8.98.213 authentication id 169.50.194.197
set security vpn ipsec site-to-site peer 159.8.98.213 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 159.8.98.213 authentication pre-shared-secret '*********'
set security vpn ipsec site-to-site peer 159.8.98.213 authentication remote-id 159.8.98.213
set security vpn ipsec site-to-site peer 159.8.98.213 ike-group IKE-Fergie
set security vpn ipsec site-to-site peer 159.8.98.213 local-address 169.50.194.197
set security vpn ipsec site-to-site peer 159.8.98.213 vti bind vti2
set security vpn ipsec site-to-site peer 159.8.98.213 vti esp-group ESP-Fergie

#VTI INTERFACE CREATION
set interfaces vti vti2 address 172.16.0.5/30

#STATIC ROUTE CREATION FOR REMOTE PREFIX
set protocols static interface-route 10.127.132.128/26 next-hop-interface vti2

#HA considerations - group number can be different on each Vyatta
set interfaces bonding dp0bond1 vrrp vrrp-group 2 notify 'ipsec'

#IKEv2 considerations
set security vpn ike make-before-break

イーストサイド

#PHASE 1
set security vpn ipsec ike-group IKE-Fergie ike-version 2
set security vpn ipsec ike-group IKE-Fergie lifetime 28800
set security vpn ipsec ike-group IKE-Fergie proposal 1 dh-group 20
set security vpn ipsec ike-group IKE-Fergie proposal 1 encryption aes256
set security vpn ipsec ike-group IKE-Fergie proposal 1 hash sha2_256

#PHASE 2
set security vpn ipsec esp-group ESP-Fergie pfs dh-group20
set security vpn ipsec esp-group ESP-Fergie proposal 1 encryption aes128gcm128
set security vpn ipsec esp-group ESP-Fergie proposal 1 hash null
set security vpn ipsec esp-group ESP-Fergie lifetime 3600

#Tie it all together configuration
et security vpn ipsec site-to-site peer 169.50.194.197 authentication id 159.8.98.213
set security vpn ipsec site-to-site peer 169.50.194.197 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 169.50.194.197 authentication pre-shared-secret '*********'
set security vpn ipsec site-to-site peer 169.50.194.197 authentication remote-id 169.50.194.197
set security vpn ipsec site-to-site peer 169.50.194.197 ike-group IKE-Fergie
set security vpn ipsec site-to-site peer 169.50.194.197 local-address 159.8.98.213
set security vpn ipsec site-to-site peer 169.50.194.197 vti bind vti2
set security vpn ipsec site-to-site peer 169.50.194.197 vti esp-group ESP-Fergie

#VTI INTERFACE CREATION
set interfaces vti vti2 address 172.16.0.6/30

#STATIC ROUTE CREATION FOR REMOTE PREFIX
set protocols static interface-route 10.165.125.112/28 next-hop-interface vti2

#HA considerations - group number can be different on each Vyatta
set interfaces bonding dp0bond1 vrrp vrrp-group 1 notify 'ipsec'

#IKEv2 considerations
set security vpn ike make-before-break

ルートベースのIPsecを備えたインターフェイスベースのファイアウォール

ファイアウォール・ルールセットをインターフェイスに適用するときは、インターフェイスに出入りするパケットのソースIPと宛先IPを意識してください。 次の図は、IPSecトンネルを通るフォワードパスとリターンパスでVyattaを通過する典型的なパケットを示しています。

IPSecトラフィック
図2:IPSecトラフィックの流れ

VTIのOUT方向はパケットが暗号化され、Vyattaから送信される場所である。 VTIのIN方向は、パケットが復号化され、Vyattaの背後にあるサーバーに送信される場所である。 外部インターフェイス dp0bond1 の場合、パケットは常にピアのエンドポイントIPアドレスになる。 ポート/プロトコルはESP、UDPポート500、UDPポート4500(NAT-Tを使用している場合)。

VLANインタフェース(VIF)のIN方向パケットの送信元IPと宛先IPは、VTIのOUT方向と一致する必要がある。

次のファイアウォールルールログはその流れを示している:

May 25 05:34:07 gateway02 dataplane[4391]:  In:dp0bond1 PASS fw rule PubIn:1 proto=(other/50) addr=198.11.194.155->159.8.98.214 macs=e4:c7:22:63:b5:41->0:0:5e:0:1:2 v4=(len:156,ttl:241,tos:00,ecn:Not,prot:50,hl:5)
May 25 05:34:07 gateway02 dataplane[4391]:  In:vti0 PASS fw rule INipsecvti0:10 proto=(icmp/1) addr=10.90.72.203->10.126.19.174 v4=(len:84,ttl:63,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRq,type:8,code:0)
May 25 05:34:07 gateway02 dataplane[4391]: Out:dp0bond0.1750 PASS fw rule OUTipsec1750:10 proto=(icmp/1) addr=10.90.72.203->10.126.19.174 v4=(len:84,ttl:62,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRq,type:8,code:0)
May 25 05:34:07 gateway02 dataplane[4391]:  In:dp0bond0.1750 PASS fw rule INipsec1750:10 proto=(icmp/1) addr=10.126.19.174->10.90.72.203 v4=(len:84,ttl:64,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRp,type:0,code:0)
May 25 05:34:07 gateway02 dataplane[4391]: Out:vti0 PASS fw rule OUTipsecvti0:10 proto=(icmp/1) addr=10.126.19.174->10.90.72.203 v4=(len:84,ttl:63,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRp,type:0,code:0)
May 25 05:34:07 gateway02 dataplane[4391]: Out:dp0bond1 PASS fw rule PubOut:1 proto=(other/50) addr=159.8.98.214->198.11.194.155 v4=(len:156,ttl:255,tos:00,ecn:Not,prot:50,hl:5)

ルートベースのIPSecを備えたゾーンベースのファイアウォール

ゾーンベースのファイアウォールの場合、定義するポリシーは、VTI インターフェースと VRA のローカル・プライベート VLAN インターフェース(VIF)の間をトラフィックが流れることを想定する必要があります。 VTIと dp0bond1 ゾーンの間でポリシーを定義する必要はない。

基本的なトラブルシューティング

IPSec トンネル・コンフィギュレーションの問題をトラブルシューティングするには、以下のプロセスを実行する:

  1. トンネルをリセットし、VPNを再起動する。

    停電時の時間を節約できるため、可能であれば最初にこれを行う。 各コマンドが何を再起動させるのか、そして残りのトンネルに与える影響を確実に覚えておくこと。

  2. ピア間のエンド・ツー・エンドのネットワーク接続をチェックする。

    UDPポート500と4500(NAT-Tを使用している場合)、およびESPプロトコルが、両方のピアの外部インターフェイスで許可されていることを確認する。

  3. フェーズ1のステータスをチェックする。 ダウン」ステータスは、それを意味する可能性がある:

    • ステップ2をチェックしていない
    • IKEのバージョン、暗号化アルゴリズム、ハッシュアルゴリズム、またはIKE識別子が不一致です
    • ベンダーの非互換性がある
  4. フェーズ2のステータスをチェックする。 Down "ステータス(またはステータスがまったくない)とは、次のような意味である:

    • フェーズ1がダウン
    • 暗号化アルゴリズム、ハッシュアルゴリズム、トラフィックセレクタ、またはdh-groupに不一致がある
    • ベンダーの非互換性
  5. 利用可能なIPsecログを解析して、問題の兆候を探す。 ログはミスマッチに関する正確な情報を提供し、問題を素早く解決するのに役立つ。

  6. よくあるバグについては、VRA ソフトウェア パッチ を確認してください。 IBM Cloud セキュリティ・サポートから包括的な PDF を請求することもできます。

トラブルシューティングコマンド

フェーズ1のステータスを確認する:

show vpn ike sa
show vpn ike sa peer <Peer IP>

出力例:

vyatta@siferguson-par01-02:~$ show vpn ike sa peer 169.50.194.197
Peer ID / IP                            Local ID / IP
------------                            -------------
169.50.194.197                          159.8.98.213

    State    Encrypt       Hash    D-H Grp  A-Time  L-Time IKEv
    -----  ------------  --------  -------  ------  ------ ----
    up     aes256        sha2_256  14       2154    3600    2

フェーズ2のステータスを確認する:

show vpn ipsec sa
show vpn ipsec sa peer <Peer IP>

出力例:

vyatta@siferguson-par01-02:~$ show vpn ipsec sa peer 169.50.194.197
Peer ID / IP                            Local ID / IP
------------                            -------------
169.50.194.197                          159.8.98.213

    Tunnel  Id          State  Bytes Out/In   Encrypt       Hash      DH A-Time  L-Time
    ------  ----------  -----  -------------  ------------  --------  -- ------  ------
    vti     44          up     284.3M/27.2G   aes128gcm128  null      n/a 2131    300

特定のピア接続に関する一連の詳細情報を素早く表示する:

show vpn debug peer <Peer IP>

出力例:

vyatta@siferguson-par01-02:~$ show vpn debug peer 169.50.194.197
peer-169.50.194.197:  159.8.98.213...169.50.194.197  IKEv2
peer-169.50.194.197:   local:  [159.8.98.213] uses pre-shared key authentication
peer-169.50.194.197:   remote: [169.50.194.197] uses pre-shared key authentication
peer-169.50.194.197-tunnel-vti:   child:  0.0.0.0/0 === 0.0.0.0/0 TUNNEL
peer-169.50.194.197[48]: ESTABLISHED 38 minutes ago, 159.8.98.213[500][159.8.98.213]...169.50.194.197[500][169.50.194.197]
peer-169.50.194.197[48]: IKEv2 SPIs: 65967eb4beab8549_i 1eacdfa5f926b9a3_r*, pre-shared key reauthentication in 13 minutes
peer-169.50.194.197[48]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
peer-169.50.194.197-tunnel-vti{44}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: 9796e1b4_i db89cc43_o
peer-169.50.194.197-tunnel-vti{44}:  AES_GCM_16_128, 31436172664 bytes_i, 322001309 bytes_o, rekeying active
peer-169.50.194.197-tunnel-vti{44}:   0.0.0.0/0 === 0.0.0.0/0

{スクリーン

利用可能なIPSecログを表示し、解析する:

show log vpn ipsec
show log vpn ipsec subsystem ike-sa site-to-site peer <Peer IP>
journalctl -f -u strongswan #This live follows the end of the journal logs for ipsec
journalctl -u strongswan > /home/vyatta/journalctl-ipsec-$(date +%Y%m%d) #this creates a file so that you can parse/grep through the logs without them rotating

IPSecトンネルをリセットする:

 reset vpn ipsec-peer <Peer IP> #reset all tunnels/phase 2's on this peer
 reset vpn ipsec-peer <Peer IP> tunnel <tunnel id> #reset phase 2 tunnel for only the specified tunnel on the specified peer
 restart vpn #This restarts the entire IPSec VPN subsystem - this affects all tunnels on all peers

一般的な問題

以下のリストは、IPSecトンネルで遭遇する可能性のある一般的な問題です。

  • 2つのピア間でフェーズ1とフェーズ2のパラメータが不一致である。
  • IKEのバージョンが不一致である。
  • フェーズ1は認証エラーで失敗する。
    • 認証IDとリモートIDをローカルとリモートのIPアドレスに設定する。
  • ESPおよびUDPポート500と4500は、外部インターフェースでは許可されていない。
    • ESPとポート500が許可されていることを確認する。 NAT-Tを使用している場合は、UDP 4500が許可されていることを確認してください。
  • Ciena では、IKEv2 を使用する場合、set security vpn ike make-before-break という行を使用することを推奨しています。 この行を省略すると、障害が発生する可能性がある。
  • サラブレットは遅い。
    • フェーズ2の暗号化アルゴリズムとして、aes128gcmまたはaes256gcmのいずれかを使用する。 これは、以前の暗号化アルゴリズムが標準のAES128またはAES256であった場合、スループットを大幅に向上させることができます。
    • パケットごとのロギングが実装されている場合は、それを無効にする。 パケットごとのファイアウォール・ロギングはスループットを低下させる可能性がある。
  • IPSecトンネルは機能しているが、リキーするとダウンする。
    • 両方のピアでPFSとdh-groupsが一致していることを確認する。
  • show vpn ipsec sa コマンドは、一方向のみのインクリメントを表示する。
    • これは通常、非対称ルーティングが原因であり、片方はトンネルを通してデータを送信し、もう片方は送信しない。
  • HAフェイルオーバーのために、notify コマンドの代わりにrun-transition-scriptsを使用する。

追加リソース

以下のリストは、IPSecトンネルを設定し、トラブルシューティングする際の追加リソースを提供します: