【Cisco】IPsecの切り替え検証

CiscoIOS

はじめに

 過去に、現用で動いているIPsecを構成しているRTの片方を更改する作業を行いました。新しい機器に代わるものの、設定は引き継がれる設計だったため、予め設定を投入して電源を入れておき、ケーブルを振り替える方法で切り替えを行いました。
 この作業で重要なポイントは、「IPsecのピアはどの程度の時間で切り替わるか」ということ。機器を取り換えた後に再構成するまでの時間が、システムのダウン時間に直結することになります。切り替えの結果は、5~10分程度の時間を要しました。
 実際の切り替えの時にはPPPoEも再接続されたので、「機器の入れ替えを入れ替えとピアの再構成に時間がかかったのか」「PPPoEの再接続で時間を消費したのか」がハッキリしない状況になりました。なお、PPPoEは「show ppp all」でIPが取得できていることは確認できましたが、対向のグローバルIPアドレスに飛ぶはずのPingが飛ばないという事象が発生していました。「PPPoEのせいか?」という疑念はあるものの、前者の機器を入れ替えるとピア再構成に時間がかかる可能性もあるので、今回検証しました。

 なお、上記の切り替えの本番時には「clear crypto isakmp 」でピアのリセットを行い、IPsec通信を発生させるパケットをエンド同士で流し続けていました。リセットをかけた後、IPsecの該当パケットを投げることでピアを再構成することは検証で確認していましたが、本番前の検証時は機器を変えず同じRT同士で見ていたので、機器を変えるということを今回やろうと思いました。

検証

使用するルータはCisco 891fj です。IOSはversion 15.4です。

構成

切り替え前

元の状態の構成図は下記の通り。

切り替え後

切り替え後の構成図は下記。

RT02とRT03のIPsec設定は同じため、ケーブルを差し替えるだけでエンド同士の通信はできる想定。
切り替わりに必要な時間がどの程度必要か本検証で確認したい。

設定

※管理用(ログイン用)にVLAN99を作成しています。VLAN99はIPsecの設定には関係はありません。

流し込みConfig

以下、検証設定のために実行コマンドです。
RT03はRT02と同じものを使うので割愛します。

RT01 流し込みconfig
RT02 流し込みconfig
RT04 流し込みconfig

sh run

sh runの実行結果を載せておきます。

RT01 # sh run

RT01#sh run
Building configuration…

RT02 # sh run
RT04 # sh run

確認①(切り替え前)

まず、切り替え前の構成のときのステータス確認。「sh crypto isakmp sa」と「sh crypto ipsec sa」でIPsecが構成できている状態であることを確認します。

確認②(切り替え後)

ケーブルをRT02からRT03に振り替えます。以下のコマンドでIPsecをリセットします。

ケーブル自体は振り替わっていて、設定も入っているので、あとはどの程度の時間がかかるかを見ます。
対向に対してPingを行います。すると、すんなりPingが成功しました。

ステータス確認。IPsecができていますね。

結論

この後再度RT02に戻す、またRT03に変えるを繰り替えましたが、切り替えに5分以上かかるといったことはなかったです。ただ、対向のグローバル(今回は1.1.1.1、2.2.2.2)に行うことで切り替わりが起ったので、すぐにIPsecのstateを「QM_IDLE」にするには、対向への疎通性がキーになりそうです。既に書きましたが、PPPoEはできているように見えていましたが、実際に通信ができているようになったという確認まではできていなかったので、このあたりの疎通性をもう少し見れていれば良かったです。

とはいえ、この手の切り替えで学べたのは、すぐに切り替わるだろうという楽観は禁物ということです。