(無償) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

2014年10月23日木曜日

【YAMAHA RTX1200】 IPsecトンネルを冗長化し障害に備える方法について

IPsecトンネルを2本用意して、一方をメインとし、他方をバックアップとして、
障害時に自動的に切り替わるように設定する方法の概略

実験して試したところ、以下の設定でうまく切り替えることができたので肝心なところをメモしておく。



ここでは、次のような構成をイメージしている。

LAN----RTX1200(拠点1)=====The Internet=====RTX1200(拠点2)----LAN(192.168.100.0/24)

以下では、拠点1の設定のみを考えている。
同様に対称になるように、拠点2についても設定を行う必要がある。

以下では、仮に、拠点1のRTX1200において、
メイントンネルを、tunnel 30番、
バックアップトンネルを、tunnel 31番 としている。
また、トンネルを終端している対向ルーターのLANアドレスを、192.168.100.1 と想定している。



■ 経路とするIPsecトンネルを準備する(メイン経路と、バックアップ経路)

メイン経路とするIPsecトンネルを、tuunel 30番 として準備を完了させる。
バックアップ経路とするIPsecトンネルを、tunnel 31番 として準備を完了させる。 

(重要)
メイン経路とするIPsecトンネル(30番)の設定には、次のようにして ike keepalive の設定を加えておく。
(バックアップ経路とするIPsecトンネルには、この設定は必須でない。)

この設定がされたトンネルは、使用可能な場合には、常に接続されたままになる。(解説は※1へ)
tunnel select 30
(略)
  ipsec ike keepalive use 30 on
(略)



■ 対向ルーターへの疎通確認用の keepalive定義を行う

この設定は、ip route設定( 次項 )において、メイン経路の障害を探知するために用いられる。
(上で設定したトンネルのkeepaliveとは関係ない。混同しないこと。)

次のようにして、icmpによる到達確認用の設定を行っておく。(詳細は、†2)
(ただし、対向ルーター(RTX1200)のLANアドレスが、192.168.100.1 の場合)
ip keepalive 30 icmp-echo 2 5 192.168.100.1 upwait=10

(注)
上記の ip keepalive 30 について、「30」はキープアライブ定義番号である。
30番トンネル専用のキープアライブ設定としているので、トンネル番号と同じ番号にしている。)


■メイン経路の障害時にバックアップ経路に切り替わるように、経路設定を行う

ip route 設定で、経路としてメイントンネルとバックアップトンネルを重畳させ、
メイントンネルの障害発生時には自動的にバックアップトンネルに切り替えるようにする。

例では、通常はメイントンネル tunnel 30番 を用い、
その障害発生時には、バックアップトンネル tunnel 31番 を有効な経路として用いるようにしている。
次の設定でこの意図した動作になった。

メイントンネルの障害検知には、上ですでに定義した ip keepalive 30 icmp-echo を用いている

バックアップトンネルは、weight 0 の設定を加えることによって、通常は使用されないようにしている。
(メイントンネルが不通になった場合にのみ、仕方ないということでバックアップトンネルが使用されることになる。)

ip route 192.168.100.0/24 gateway tunnel 30 keepalive 30 hide gateway tunnel 31 weight 0




□どの経路が使用されているかをチェックする

次のコマンドを使って、ip keepalive icmp-echo による疎通チェック結果を一覧できる。

次のように疎通している場合には、
ip routeコマンドで gateway tunnel 30 keepalive 30 hide によって指定したメイン経路は有効になっているはずである。
(詳細は、†2)
# show status ip keepalive

 ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
  30   up  192.168.100.1                             yes     2     5




◎ 解説 ◎ (※1)

メイントンネルの設定項目として ipsec ike keepalive use on と、
経路設定で用いられる ip keepalive 30 icmp-echo が要である。

ipsec ike keepalive use onが設定されないIPsecトンネルは、
自身が経路となってパケットの通過する時にはじめて対向に接続され有効になる。
すなわち、経路とならない間は不通の状態が継続することになる。
(経路に指定されて初めて接続されるとういうことだ。 )

hideを用いた経路設定(gateway tunnel 30 keepalive 30 hide)は、
その接続が有効な場合のみ経路として用いられる意味である。(有効でなければ、隠されてしまう。)
このことは、先ずtunnel 30が有効な状態にならなければ経路にはならないということである。
(tunnel 30の接続が確認されてはじめて経路として使われる。)

上記2つの条件が満たされていなければ、メイントンネル tunnel 30 は経路として無効のままで、
ただ、バックアップトンネル tunnel 31だけが経路に使用される状態になってしまう。

そこで、メイントンネル tunnel 30 を最初から常に強制的に接続させておく必要がある。
そのために、次の設定を tunnel 30 の設定として追加しておくわけだ。

ipsec ike keepalive use 30 on

これによって、ルーターの始動時にも、自動的にメイントンネル tunnel 30 は対向に接続される。
gateway tunnel 30 keepalive 30 hideで、hide指定されているこのtunnel 30が最初からメイン経路として有効になる。
 このメイン経路は”keepalive 30”設定に基づいて、対向ルーターへのicmpによる疎通が確認される限り用いられることになる。

もし、icmpによる疎通が確認できなくなれば、hide経路(tunnel 30)は無効になり、
gateway tunnel 31 weight 0 に基づいて、バックアップ経路として tunnel 31 が有効になる。

しかし、メイントンネル tunnel 30 は、自身に設定された ipsec ike keepalive use 30 on 設定によって、復活が試みられていて、
再び接続がなされれば、 メイン経路として再び有効になる。




(参考)

(1) 9.1.7 IP の静的経路情報の設定
< http://www.rtpro.yamaha.co.jp/RT/manual/Ver.1.00/ip/ip_route.html > 2014年10月22日

(2) ネットワークバックアップ機能
< http://www.rtpro.yamaha.co.jp/RT/docs/backup/network-backup.html > 2014年10月22日

(3) IKEキープアライブの設定
< http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/command.html#ipsec.ike.keepalive.use > 2014年10月22日

(4) IKEを常時接続するか否かの設定
< http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/command.html#ipsec.ike.always-on > 2014年10月22日

(5) IPsec コマンドリファレンス
< http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/command.html > 2014年10月22日