この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第27回です。
前回の「VPNの基本」で学んだ仮想的な専用経路の考え方を土台として、 IPsec VPNが相手を認証し、鍵を共有し、実際の通信を暗号化するまでの流れを学びます。
IPsec VPNとは?IKE・SA・ESPによる暗号化通信の基本動作を図解
IPsec VPNでは、いきなり業務データを暗号化するわけではありません。 最初にIKEで相手を認証し、安全に鍵を作り、IPsec SAを確立したあと、 ESPを使って実際のIPパケットを保護します。 この記事では、拠点間VPNを例に、通信開始から暗号化・復号までを時系列で解説します。
IPsec VPNの設定画面には、IKE、Phase 1、Phase 2、SA、ESP、暗号化方式、 認証方式、DHグループ、ローカルサブネット、リモートサブネットなど、多くの項目があります。
項目だけを暗記すると、障害時に「どこまで確立していて、どこから失敗しているのか」を判断できません。 重要なのは、制御通信でトンネルを準備する処理と、 業務通信を保護して運ぶ処理を分けて理解することです。
この記事を読み終えるとできること
- IKEとESPの役割を区別できる
- IKE SAとIPsec SAの違いを説明できる
- IPsec VPN確立の流れを時系列で説明できる
- トンネルモードのパケット構造を読み取れる
- UDP 500・UDP 4500・ESPの違いを説明できる
- SA未確立や片方向通信の確認順序を整理できる
IPsec VPNとは何か
IPsec VPNとは、IP層の通信に暗号化・完全性確認・送信元認証・再送攻撃対策を適用し、 公衆網上に安全な通信経路を作る仕組みです。
IPsecは特定の1つの暗号化方式を指す言葉ではありません。 相手を認証する仕組み、暗号鍵を交換する仕組み、通信を保護するプロトコル、 通信条件を管理するSAなどを組み合わせた仕組みです。
内容を読まれにくくする
暗号化によって、インターネット上でパケットを取得されても、 業務データの内容をそのまま読めないようにします。
途中で改ざんされていないか確認する
受信したデータが送信時から変更されていないかを確認し、 不正なパケットを破棄します。
接続相手が正しいか確認する
事前共有鍵や証明書などを使用して、 VPN接続先が想定した相手であることを確認します。
同じパケットの不正な再利用を検知する
シーケンス番号を利用し、過去に取得したパケットを再送する攻撃を検知します。
IPsecは「インターネットを安全な回線へ変える」わけではありません。
インターネット上を流れる対象パケットを暗号技術で保護し、 第三者が内容を読み取ったり改ざんしたりしにくい状態にします。
まず全体の流れを理解する
本社LANと支社LANを、インターネット経由の拠点間IPsec VPNで接続する構成を考えます。
拠点間IPsec VPNの基本構成
IKEで準備し、ESPで保護
インターネット上:203.0.113.10 → 198.51.100.20 のESPまたはUDP 4500通信として転送
IPsec VPNは5段階で動作する
VPNで保護すべき通信か判定
暗号方式と鍵交換条件を交渉
PSKや証明書で相手を確認
業務通信を保護する条件を作成
暗号化・転送・復号を実行
- PC-Aが支社サーバーへ通信する 本社PCから支社サーバー宛てのパケットが、本社のVPN装置へ到着します。
- VPN装置が保護対象の通信か確認する 宛先ネットワーク、ルーティング、暗号化ポリシー、トラフィックセレクターなどから、 IPsecで保護すべき通信かを判断します。
- 必要であればIKEを開始する まだSAがない場合、VPN装置同士がIKEメッセージを交換し、暗号方式、鍵交換方式、認証方法を決めます。
- 業務通信を保護するIPsec SAを作る 対象ネットワーク、ESPの暗号方式、鍵、有効期限、SPIなどを管理するSAを確立します。
- 元のIPパケットをESPで保護する 元のパケットを暗号化し、VPN装置間で転送するための外側IPヘッダーを付けて送信します。
- 対向VPN装置が検証・復号する SPIで利用するSAを特定し、完全性とシーケンス番号を確認してから復号します。
- 元のパケットを支社LANへ転送する 復元されたパケットは、通常のIPパケットとして支社LAN内の宛先へ送られます。
IKEはトンネルを準備する制御通信、ESPは実際のデータを運ぶ通信です。
IKE SAだけ確立していても、IPsec SAがなければ業務データは暗号化されません。
IKE・SA・ESPの役割
交渉と認証
暗号アルゴリズム、DHグループ、認証方式などを交渉し、 相手を認証してSAを作ります。
通信条件のまとまり
暗号方式、鍵、対象通信、有効期限、SPIなど、 保護に必要な情報を管理します。
データの保護
実際のIPパケットに対し、暗号化、完全性確認、送信元認証、 アンチリプレイ機能を提供します。
認証と完全性
AHは暗号化を行わず、認証と完全性を提供します。 NATとの相性が悪く、一般的なVPNではESPが中心です。
| 要素 | 主な役割 | 確認したい状態 |
|---|---|---|
| IKE SA | IKEメッセージを安全に交換するための関係 | 対向装置との認証と制御チャネルが確立しているか |
| IPsec SA/Child SA | 実データをESPで保護するための関係 | 対象通信、鍵、SPI、暗号方式が作成されているか |
| ESP | 実データの暗号化・完全性確認・アンチリプレイ | encaps/decaps、encrypt/decryptカウンターが増えるか |
IKEv2でトンネルを準備する流れ
IKEv2では、一般的な初回接続時に IKE_SA_INITとIKE_AUTHの2往復、合計4メッセージで、 IKE SAと最初のChild SAを確立します。
1.IKE_SA_INIT
最初の交換では、双方がIKE SAを保護するための暗号条件を決め、 Diffie-Hellman鍵交換に必要な情報とNonceを交換します。
使用可能な暗号条件を提示
暗号化、PRF、完全性、DHグループなどの候補を提示し、共通する組み合わせを選びます。
共通鍵の材料を作る
秘密そのものをネットワークへ送らずに、双方が同じ共有秘密を導出できるようにします。
毎回異なる値を加える
接続ごとに生成する乱数を鍵導出へ利用し、過去の交換結果をそのまま再利用しにくくします。
この時点では、まだ相手の身元確認は完了していません。 ただし、以降のIKE_AUTHメッセージを暗号化・完全性保護するための鍵材料は用意されます。
2.IKE_AUTH
IKE_AUTHでは、双方が自分のIDを示し、事前共有鍵や証明書などを利用して相互認証します。 同時に、最初のChild SAで保護する通信範囲も交渉します。
- 接続相手のID
- 事前共有鍵または証明書による認証情報
- ローカル側とリモート側のトラフィックセレクター
- ESPで使用する暗号方式と完全性方式
- Child SAの鍵と有効期限
実務上の見方: IKE_SA_INITで失敗する場合は暗号条件や到達性、IKE_AUTHで失敗する場合はPSK、証明書、ID、 トラフィックセレクターなどを疑います。
3.CREATE_CHILD_SA
最初のChild SAは通常IKE_AUTH内で作成されます。
その後、鍵の更新、新しい通信条件の追加、SAの再作成などでは、
CREATE_CHILD_SA交換が利用されます。
IKEv1とIKEv2の用語の違い
製品画面や現場の会話では、現在でも「Phase 1」「Phase 2」という言葉がよく使われます。 これは主にIKEv1の用語です。IKEv2では交換名称とSAの考え方が整理されています。
| 目的 | IKEv1でよく使う表現 | IKEv2でよく使う表現 |
|---|---|---|
| IKE自身を守る関係を作る | Phase 1、ISAKMP SA、Main Mode/Aggressive Mode | IKE_SA_INIT+IKE_AUTH、IKE SA |
| 実データを保護する関係を作る | Phase 2、Quick Mode、IPsec SA | Child SA、最初はIKE_AUTH内、その後はCREATE_CHILD_SA |
| 通信相手の認証 | Phase 1で実施 | IKE_AUTHで実施 |
「Phase 1が上がったからVPNは正常」とは限りません。
IKE SAだけが確立していて、IPsec SA/Child SAが作成されていない状態では、 業務データを暗号化できません。
IPsec SAとSPIの考え方
SAは通信を保護するための状態情報
SA(Security Association)は、暗号化通信に必要な条件をまとめて管理する論理的な関係です。 代表的には次の情報を含みます。
- ESPまたはAHのどちらを使うか
- 暗号化アルゴリズムと鍵
- 完全性アルゴリズムと鍵
- トンネルモードまたはトランスポートモード
- ローカル/リモートの対象ネットワーク
- 有効期限
- シーケンス番号とアンチリプレイウィンドウ
- SPI
IPsec SAは片方向
IPsec SAは基本的に片方向です。 本社から支社へ送るSAと、支社から本社へ送るSAは別に管理されます。
双方向通信では2つのIPsec SAを使用する
B → A:SA-B
SPIで利用するSAを特定する
SPI(Security Parameters Index)は、受信側が「このESPパケットをどのSAで処理するか」を判断するための値です。 受信側は、宛先IPアドレス、セキュリティプロトコル、SPIなどを使って対応するSAを特定します。
受信SPIが存在しない、または期限切れの場合、ESPパケットを正しく復号できません。
ESPでパケットを保護する仕組み
拠点間VPNでは、ESPのトンネルモードが広く使われます。 元のIPパケット全体を保護対象として包み、VPN装置間を転送するための外側IPヘッダーを追加します。
暗号化前のパケット
192.168.10.10 → 192.168.20.20
ESPトンネルモードで保護したパケット
203.0.113.10 → 198.51.100.20
SPI・Seq
外側IPヘッダーは、インターネット上のルーターがVPN装置AからVPN装置Bへパケットを転送するために必要です。 そのため、外側の送信元・宛先IPアドレスは通常暗号化されません。
ESP送信処理
- 対象SAを選択する 送信するパケットの送信元・宛先・プロトコルなどから、適用するIPsec SAを決定します。
- ESPヘッダーを付ける SPIとシーケンス番号を設定します。
- 保護対象を暗号化する トンネルモードでは、元のIPパケット全体を暗号化対象にします。
- 完全性情報を計算する 選択した方式に応じて、改ざんを検知するための認証データを作成します。
- 外側IPヘッダーを付けて送信する VPN装置同士のグローバルIPアドレスを利用してインターネットへ送信します。
ESP受信処理
- SPIから受信用SAを特定する ESPヘッダーのSPIを利用し、どの鍵と方式で処理するかを判断します。
- シーケンス番号を確認する 受信済みの番号ではないかを確認し、再送攻撃を検知します。
- 完全性を確認する 途中で改ざんされていないことを確認します。
- 暗号化部分を復号する 受信SAに保存された鍵を使い、元のIPパケットを復元します。
- 復元したパケットを内部へ転送する ルーティングやファイアウォールポリシーに従って、社内LANへ転送します。
トンネルモードとトランスポートモード
| 項目 | トンネルモード | トランスポートモード |
|---|---|---|
| 主な用途 | 拠点間VPN、リモートアクセスVPN | 主にホスト間のエンドツーエンド保護 |
| 保護範囲 | 元のIPパケット全体 | 主にIPヘッダーより後ろの上位層データ |
| 外側IPヘッダー | 新しく追加する | 通常は追加しない |
| 内部端末のIPアドレス | ESP暗号化部分に含めて隠せる | 元のIPヘッダーは外側に残る |
拠点間VPNでは、VPN装置が内部端末の代わりにIPsec処理を行うため、 トンネルモードで元のIPパケット全体を包む構成が基本です。
NAT-Tとポート・プロトコル番号
IPsec VPNを通過させるために確認する通信は、TCPやUDPのポート番号だけではありません。 ESPはIPプロトコル番号50を使用し、AHはIPプロトコル番号51を使用します。
| 通信 | 番号 | 役割 |
|---|---|---|
| IKE | UDP 500 | IKE SAの確立、認証、鍵交換 |
| NAT-T | UDP 4500 | NAT環境でIKEとUDPカプセル化ESPを通過させる |
| ESP | IPプロトコル番号50 | 業務データの暗号化・完全性確認・アンチリプレイ |
| AH | IPプロトコル番号51 | 認証と完全性。暗号化は行わない |
なぜNAT-Tが必要なのか
NATはIPアドレスやポート番号を書き換えます。 一方、ESPそのものにはTCPやUDPのポート番号がありません。 また、IPsecの完全性確認や通信識別に影響するため、NATを経由すると問題が発生する場合があります。
NAT-T(NAT Traversal)では、ESPパケットをUDPで包み、通常はUDP 4500として送信します。 NAT装置は一般的なUDP通信として変換・セッション管理できます。
NAT-T利用時のイメージ
ファイアウォール確認: NAT-Tを使用する構成ではUDP 500とUDP 4500を確認します。 NAT-Tを使用せずESPを直接通す構成では、IPプロトコル50の許可も必要です。
両拠点で一致させる主な設定
IPsec VPNは、両側が同じ方式で通信できることが前提です。 製品ごとに画面名や設定コマンドは異なりますが、確認する考え方は共通しています。
| 分類 | 主な項目 | 不一致時の代表的な症状 |
|---|---|---|
| 対向情報 | 対向IPアドレス、IKE ID、インターフェース | 相手へ到達しない、ID不一致、想定外の相手として拒否 |
| IKE条件 | IKEバージョン、暗号化、PRF/ハッシュ、DHグループ、有効期限 | 提案不一致、IKE_SA_INITで失敗 |
| 認証 | PSK、証明書、CA、証明書名、ID | IKE_AUTH/Phase 1認証失敗 |
| IPsec条件 | ESP暗号化、完全性、PFS、有効期限 | IKE SAはあるがChild SA/Phase 2が確立しない |
| 対象通信 | ローカルサブネット、リモートサブネット、トラフィックセレクター | 一部通信だけ暗号化されない、セレクター不一致 |
| 経路・ポリシー | ルーティング、FWポリシー、NAT除外、戻り経路 | SAは確立するが通信できない、片方向通信 |
新規設計で意識したい暗号方式
具体的な採用方式は組織のセキュリティ基準、製品対応、性能、接続相手との互換性で決めます。 一般に、AES-GCMのような認証付き暗号、またはAESとSHA-2を組み合わせた方式が候補になります。
DES、MD5、弱いDHグループなど、古い方式を新規構成へ安易に採用しないでください。 既存環境との互換性が必要な場合も、利用理由、期限、移行計画を明確にします。
障害切り分けの確認順序
IPsec VPN障害では、設定を最初から全部見直すのではなく、 「どの段階まで成功しているか」を順番に確認します。
対向へ到達できるか
- WANインターフェースは正常か
- 対向グローバルIPへ経路があるか
- 上位FWでUDP 500/4500またはESPが許可されているか
IKE SAが確立しているか
- IKEバージョンは一致しているか
- 暗号条件とDHグループは共通しているか
- PSK、証明書、IDは正しいか
IPsec SAが確立しているか
- ESPの提案は一致しているか
- ローカル/リモートのセレクターは逆向きに対応しているか
- PFSや有効期限の条件は一致しているか
暗号化カウンターが増えるか
- 送信側のencaps/encryptが増えるか
- 受信側のdecaps/decryptが増えるか
- 送信だけ増え、受信が増えない片方向状態ではないか
代表的な確認コマンド
次はCisco IOS/IOS XE系で見かける代表例です。 実際のコマンド、表示形式、利用可否は機種とソフトウェアバージョンによって異なります。
IKEv2 SAの確認
対向IP、状態、ロール、IKE SAが確立しているかを確認します。
IPsec SAとカウンターの確認
ローカル/リモートセレクター、SPI、encaps/decaps、encrypt/decryptを確認します。
VPNセッション全体の確認
IKEとIPsecの状態、インターフェース、対向、セッション状態をまとめて確認します。
ルーティングの確認
保護対象の通信が、VPNを適用する経路・インターフェースへ向かうかを確認します。
出力例の読み方
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote Status
1 203.0.113.10/500 198.51.100.20/500 READY
Crypto map tag: VPN-MAP, local addr 203.0.113.10
local ident (addr/mask/prot/port): (192.168.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.20.0/255.255.255.0/0/0)
#pkts encaps: 1250, #pkts encrypt: 1250
#pkts decaps: 1218, #pkts decrypt: 1218
- READY
- IKEv2 SAが確立していることを示す代表的な状態表示です。
- local ident
- 自拠点側の保護対象ネットワークです。
- remote ident
- 対向拠点側の保護対象ネットワークです。
- encaps/encrypt
- 自装置がIPsecで包み、暗号化して送信したパケット数です。
- decaps/decrypt
- 対向から受信し、IPsecを外して復号したパケット数です。
症状から切り分ける
| 症状 | 疑う場所 | 確認例 |
|---|---|---|
| IKE SAが作成されない | 到達性、UDP 500/4500、IKE提案、対向IP | WAN経路、FWログ、IKEログ |
| 認証で失敗する | PSK、証明書、ID、時刻 | 双方のPSK、証明書期限、NTP、ID設定 |
| IKE SAはあるがIPsec SAがない | ESP提案、セレクター、PFS | ローカル/リモートネットワークの対応 |
| encapsだけ増える | 対向受信、戻り経路、対向FW、セレクター | 対向のdecaps、上位FW、戻りルート |
| SAはあるがカウンターが増えない | ルーティング、対象通信、NAT、FWポリシー | 実際の送信元/宛先、経路、NAT除外 |
片方向通信では、両側のカウンターを並べて確認します。 A側のencapsが増えているなら、B側のdecapsが増えるはずです。 対応するカウンターが増えない区間に問題があると考えます。
IPsec VPNに関するよくある勘違い
IKE SAが確立していても、IPsec SA、ルーティング、FWポリシー、NAT除外、戻り経路などに問題があれば通信できません。
ESPの50はIPプロトコル番号です。TCP 50やUDP 50ではありません。
実際のパケットはインターネットなど既存のネットワークを通過します。 暗号化処理によって論理的に安全な経路として扱います。
IKEバージョン、認証、DHグループ、ESP条件、トラフィックセレクターなど、複数の条件が対応する必要があります。
IKE SA、IPsec SA、ESPカウンター、内部ルーティングの順に確認すると、失敗段階を切り分けやすくなります。
理解度チェック
記事の内容を確認するため、次の5問に答えてください。 解答を見る前に、一度自分で考えてみましょう。
問題1.IKEとESPの役割の組み合わせとして正しいものはどれですか。
- IKEは業務データを転送し、ESPはDNS名前解決を行う
- IKEは認証・鍵交換・SA確立を行い、ESPは実データを保護する
- IKEとESPはどちらもルーティングプロトコルである
- IKEは暗号化を行わず、ESPは相手を認証しない
解答を見る
IKEは安全な通信条件を準備し、ESPはその条件に従って実データを保護します。
問題2.IKEv2の初回接続で使用される代表的な2つの交換は何ですか。
解答を見る
IKE_SA_INITで暗号条件・DH・Nonceを交換し、IKE_AUTHで相互認証と最初のChild SA確立を行います。
問題3.ESPのIPプロトコル番号と、NAT-Tで使用するUDPポート番号を答えてください。
解答を見る
ESPの50はポート番号ではありません。
問題4.A側のencapsカウンターだけ増え、B側のdecapsカウンターが増えない場合、どの区間を疑いますか。
解答を見る
A側からB側までのインターネット経路、上位FW、NAT、B側WAN受信、対向SA不一致などを疑います。A側では暗号化送信できている一方、B側で正常に受信・復号できていません。
問題5.拠点間VPNで一般的に利用されるモードはどれですか。
- トンネルモード
- トランスポートモードのみ
- ブリッジモード
- アクセスポートモード
解答を見る
拠点間VPNでは、元のIPパケット全体を保護し、VPN装置間用の外側IPヘッダーを追加するトンネルモードが基本です。
実践演習:IPsec VPNの失敗段階を切り分けよう
次の拠点間VPNで、本社PCから支社サーバーへ通信できない状況を考えます。
演習構成
IPsec VPN
確認結果
【VPN装置A】
IKEv2 SA:READY
Local selector :10.10.10.0/24
Remote selector:10.20.20.0/24
encaps:350
decaps:0
【VPN装置B】
IKEv2 SA:READY
Local selector :10.20.20.0/24
Remote selector:10.10.10.0/24
encaps:0
decaps:0
【上位ファイアウォール】
UDP 500:許可
UDP 4500:拒否
課題1.どこまで成功していますか
課題1の解答を見る
IKEv2 SAは両側でREADYのため、IKEの認証と制御チャネルは確立しています。 A側のencapsが増えているため、A側では対象通信をIPsecで暗号化して送信しています。 一方、B側のdecapsが0のため、B側は暗号化パケットを正常受信・復号できていません。
課題2.最も疑わしい原因は何ですか
課題2の解答を見る
上位ファイアウォールでUDP 4500が拒否されていることが最も疑わしい原因です。 NAT-Tを利用している場合、ESPはUDP 4500でカプセル化されるため、 IKE開始後の暗号化データが通過できません。
課題3.修正後に確認する項目を挙げてください
課題3の解答例を見る
- UDP 4500が双方向に許可されていること
- A側のencapsとB側のdecapsが対応して増えること
- B側のencapsとA側のdecapsも増えること
- 本社PCから支社サーバーへ疎通できること
- 戻り通信が同じトンネルを通ること
- FWログに新たな拒否がないこと
自分の言葉で説明する課題
「IPsec VPNは、通信開始からどのように暗号化されるのですか」と質問されました。 IKE、SA、ESPの3語を使い、1分程度で説明してください。
説明例を見る
IPsec VPNでは、まずIKEを使ってVPN装置同士が暗号方式を交渉し、 事前共有鍵や証明書で相手を認証します。 次に、業務通信を保護するための暗号鍵や対象ネットワークをSAとして管理します。 SAが確立すると、ESPが元のIPパケットを暗号化し、完全性とシーケンス番号を確認できる形で対向装置へ送ります。 対向装置はSPIから利用するSAを特定し、検証・復号して内部ネットワークへ転送します。
まとめ
- IPsecはIP層の通信へ暗号化、完全性、認証、アンチリプレイなどを提供する仕組み
- IKEは暗号条件の交渉、相互認証、鍵交換、SA確立を担当する
- IKEv2ではIKE_SA_INITとIKE_AUTHでIKE SAと最初のChild SAを確立する
- IKE SAは制御通信を保護し、IPsec SA/Child SAは実データを保護する
- ESPは実際のIPパケットを暗号化し、完全性とアンチリプレイを提供する
- 拠点間VPNでは、元のIPパケット全体を保護するトンネルモードが基本
- ESPはIPプロトコル番号50、IKEはUDP 500、NAT-TはUDP 4500を使用する
- 障害時は、到達性→IKE SA→IPsec SA→暗号化カウンター→内部経路の順で確認する
IPsec VPNを理解する鍵は、「IKEで準備し、SAで条件を管理し、ESPで実データを保護する」と整理することです。
参考資料
- RFC 4301:Security Architecture for the Internet Protocol
- RFC 4303:IP Encapsulating Security Payload(ESP)
- RFC 7296:Internet Key Exchange Protocol Version 2(IKEv2)
- RFC 3947:Negotiation of NAT-Traversal in the IKE
- RFC 8247:IKEv2 Algorithm Implementation Requirements and Usage Guidance
コマンド、状態表示、暗号アルゴリズム、初期値、NAT-Tの動作、対応するIKEバージョンは、 製品・OS・ライセンス・ソフトウェアバージョンによって異なります。 本番環境へ設定する前に、対象製品の公式ドキュメント、組織のセキュリティ基準、対向装置の設定を確認してください。

コメント