投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


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

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

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

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日

2014年10月14日火曜日

【YAMAHA RTX1200】 「NAT」について勝手なまとめ

2017年4月12日 いくつか説明追加

YAMAHA ルーターの「NAT」について勝手なまとめ

以下、NATなどの定義のみを扱っている。
定義したNATは、意図される動作のために、しかるべきインターフェイスに掛けられる必要がある。
しかしここではインターフェイスへの掛け方については扱っていない。

一口にNATと言っても、いくつか種類がある。
以下では、各種類ごとに主な特徴などをまとめている。

また、静的NATの特徴を使うことで、
NAT処理を行わない例外も設定できる。(一番最後)

ヤマハ ギガアクセスVPNルーター RTX1210

新品価格
¥74,413から
(2018/3/19 23:52時点)


■ 静的/動的 NAT ■

静的NAT処理と動的NAT処理は同じNATで併用可能。
ただし、処理されるパケットの条件が両者で一致した場合は、静的NAT処理が優先される。


(1) 先ず、NAT定義でNATタイプを、nat に設定する。

nat descriptor type <NATディスクリプタ番号> nat

 <NATディスクリプタ番号>・・・ このNAT定義を表すための任意の番号


(2) 静的NAT、動的NAT処理はそれぞれ下記のように記述が異なる。


(静的処理の設定)※1

外側アドレスと内側アドレスの1対1にバインドする(=静的処理)ための設定を次のように一行で記述する。

nat descriptor static <NATディスクリプタ番号> <テーブル番号> <外側アドレス=内側アドレス> 

  <NATディスクリプタ番号>・・・(1)で定義済み

  <テーブル番号>・・・ 複数のバインド(下記)を設定可能なため、それらを識別するための番号
  <外側アドレス=内側アドレス>・・・ 機構の内側と外側とで通過するパケットのアドレスが相互変換される


〇この相互変換は下記のようなイメージである。

(外側ネットワーク)←→外側アドレス | 静的 NAT | ←→(内側アドレス)

上の図を説明すると次のようになる。

内側(ソース)アドレスからやってきたパケット「←(内側アドレス)」は、
外側(ソース)アドレスに変換「←外側アドレス」され、外側ネットワークに送られる。

外側ネットワークから、外側(宛先)アドレスにやってきたパケット「→外側アドレス 」は、
内側(宛先)アドレスに変換「→(内側アドレス)」されて配送される。



(動的処理の設定)

”アウターアドレス”かつ”インナーアドレス”を設定する。

内側から外側へ向うパケットについてインナーアドレスにマッチすれば、
動的NAT処理が行われ、アウターアドレスに変換される。
逆方向についても自動的に変換される。
下記に挙げるマスカレードとは異なり、アドレスは1対1に相互変換される


○アウターアドレス(外側アドレス)の設定

nat descriptor address outer <NATディスクリプタ番号> <値>

 <値>・・・ アウターアドレス(アドレス、アドレス範囲)

アドレスの記述例
→ 172.30.0.1
→ 172.30.0.1,172.30.0.2,172.30.0.3

アドレス範囲の記述例
→ 172.30.0.1-172.30.0.3
→ 172.30.0.1-172.30.0.3,172.30.0.5-172.30.0.10


○インナーアドレス(内側アドレス)の設定

nat descriptor address inner <NATディスクリプタ番号> <値>

 <値>・・・ インナーアドレス(アドレス、アドレス範囲)

特に指定しなければ、全範囲を指定する auto が暗黙的に設定される



■ マスカレード ■

 内側から外側へ向うパケットについてインナーアドレスにマッチすれば、
動的NAT処理が行われ、アウターアドレスに変換される。
 逆方向についても自動的に変換される。
 下記に挙げるマスカレードとは異なり、アドレスは1対多で相互変換される
(「多」を区別するために、マスカレードでは外側アドレス+ポート番号を利用する。)

 マスカレードでも、上記※1で記したNAT静的処理の併用が可能である。
このことは、同じ NATディスクリプタ番号で、static設定を記述できるということだ。
処理されるパケットの条件が両者で一致した場合は、静的NAT処理が優先される。

 また、マスカレードでは、外側の特定のポートを、内側の特定のアドレス(とポート)に静的バインドさせられる。 静的マスカレードと言うが、ここでは扱わない。


マスカレードの定義の仕方

(1) 先ず、NAT定義でNATタイプを、masquerade に設定する。

nat descriptor type <NATディスクリプタ番号> masquerade

 NATディスクリプタ番号・・・ このマスカレード定義を表すための任意の番号


(2) ”アウターアドレス”かつ”インナーアドレス”を設定する。

○アウターアドレス

nat descriptor address outer <NATディスクリプタ番号> <値>

 値・・・ アウターアドレス(アドレス、アドレス範囲)
ただし、マスカレードが使えるのはそのうちの8個のみ。

アドレスの記述例
→ 172.30.0.1
→ 172.30.0.1,172.30.0.2,172.30.0.3

アドレス範囲の記述例
→ 172.30.0.1-172.30.0.3
→ 172.30.0.1-172.30.0.3,172.30.0.5-172.30.0.10

○インナーアドレス

nat descriptor address inner <NATディスクリプタ番号> <値>

 値・・・ インナーアドレス(アドレス、アドレス範囲)
全範囲を指定する場合は、auto を設定する。



■ NAT-MASQERADE ■

動的NAT処理と、動的マスカレード処理とを組み合わせることができる。
この処理では、動的NAT処理が優先的に行われるが、外側アドレスが残り1つになったとき、
このアドレスを用いて動的マスカレード処理に自動的に切り替わる
(マスカレード処理なので、残りアドレスが1個でも、1対多で相互変換が可能である。)

上記※1で記したNAT静的処理の併用も可能である。
同じ NATディスクリプタ番号で、static設定を記述できるということだ。
ただし、処理されるパケットの条件が両者で一致した場合は、静的NAT処理が優先される。

また、静的マスカレード処理のための記述も可能である。


(1) 先ず、NAT定義でNATタイプを、nat-masquerade に設定する。

nat descriptor type <NATディスクリプタ番号> nat-masquerade

 NATディスクリプタ番号・・・ このマスカレード定義を表すための任意の番号


(2) ”アウターアドレス”かつ”インナーアドレス”を設定する。

上記参照(NATあるいはマスカレードのinnerとouterの設定方法を参照)



[NAT処理を行わない例外を設定する方法]

 たとえば下のようにして定義する。
マスカレードのNATディスクリプタ番号が99であるとする。
例外とするパケットのソースアドレスが、192.168.10.5と、192.168.10.6だとすると、
これらのアドレスを内側アドレスとし、外側アドレスと一致させた静的NAT定義を作成する。
nat descriptor static 99 1 192.168.10.5=192.168.10.5 1
nat descriptor static 99 2 192.168.10.6=192.168.10.6 1
内側からやってきたソースアドレスが192.168.10.5のパケットは、
静的NAT定義の内側アドレスに一致して静的NATでソースアドレスが書き換えられるものの、
定義された外側アドレスに変換後も、同じ192.168.10.5がソースアドレスのパケットのままである。
 逆に、外側からやってきたパケット(あて先アドレスが192.168.10.5)は、
静的NAT定義の外側アドレスに一致して静的NATであて先アドレスが書き換えられるものの、
定義された内側アドレスに変換後も、同じ192.168.10.5があて先アドレスのパケットのままである。

 静的NAT定義はマスカレード処理より優先して処理されるので、
内側⇔外側のどちらの方向へ通過してもパケットのアドレスが変化させないこういう仕組みを定義することで、
マスカレード処理しない例外として設定できるわけだ。



(参考)
・ NATディスクリプタ機能 概要
< http://www.rtpro.yamaha.co.jp/RT/docs/nat-descriptor/nat-abstruct.html > 2014年10月14日


v6プラスで、IPv4接続

v6プラスで、IPv4接続


■ 想像図

[IPv4サイト]---(IPv4グローバルアドレス)---[センタ?]⇔(IPv6)⇔[HGW]---(IPv4プライベートアドレス)---[PC]

 PCがインターネット上のIPv4専用サイトへアクセスする際は、
PCとHGWの間ではIPv4プライベートアドレスで通信が行われるようだ。
(PCで、IPv4スタックをオフにしていると通信できなかった。)
 ということは、現状ではv6プラスを使ったとしても、
インターネット上のアクセスしたいサイトがIPv4のみを使っている限りは、
LAN内でもIPv4(プライベートアドレス)を使えるようにしている必要があるということだ。
 IPv6が使われるのは、おそらく、HGWとセンター間のIPoE通信だろうと思う。


 ところで、上記の通信において注意が必要なのは、
HGWとPCは同一IPv4サブネットに存在する必要があること。
PCがHGWとは異なるIPv4サブネットに存在する場合は、HGWで静的ルーティングの設定をするか、
PCとHGWとの間に設置されることになるルーターでNATの設定を行う必要がある。

 ちなみに、そのHGWの静的ルーティング設定は、HGW自身へのアクセスには無効である。
HGW自身へのアクセスと、HGWを超えてIPv4インターネットへのアクセスとを、
異なるサブネットにあるPCから行うには、後者のNATの設定を行う必要がある。

⇔[HGW]--(IPv4プライベートサブネットA)--[<NAT|ROUTER]==(IPv4プライベートサブネットB)==[PC]



■ 使用されるIPv4グローバルアドレス

 診断君によると、次のようなアドレスが使われていることがわかった。
(x印はIPアドレスの10進数表記)

REMOTE_HOST     Mxxxxxxxxxxxx.v4.enabler.ne.jp

 契約者固有のIPv6アドレスがこの特殊なIPv4アドレスとポートにバインドされる仕組みになっているようだ。
 したがって、TCPやUDP以外のポート番号を使わないプロトコルの通信は利用できないのだろうと思われる。



(参考)
 ・迷惑行為に対する対応
< http://www.jpne.co.jp/faq/abuse/ > 2014年10月14日

・IPアドレスからISP情報を検索する
< http://abuse.jpne.co.jp/ > 2014年10月14日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad