FutureNet

NXR,WXRシリーズ

IPsec編

5. 冗長化設定

5-5. Route Based IPsec冗長化設定(local policy changeの利用)

この設定例では拠点側で回線の冗長化を行います。正常時はルータ間でメインWAN回線を利用したIPsec通信を行います。そして拠点側でPing監視を行い障害検出時は拠点側ルータでバックアップWAN回線に切り替えて通信を行います。なおこの設定例では拠点側のバックアップ回線にモバイル回線を利用します。

 

【 構成図 】

<正常時>

<ルータNXR_B Ping監視NG時>

  • ルータNXR_BではPing監視NG時、ネットイベント機能でipsec local policyを1→2に変更します。
    (☞) これにより1つのIPsec設定で冗長化を実現します。
  • ルータNXR_AではPing監視を受け付けるため、WAN側インタフェースの入力フィルタでICMP Echo Request(Type8 Code0)を許可します。

 

【 設定データ 】

〔NXR_Aの設定〕

設定項目 設定内容
ホスト名 NXR_A
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
WAN側インタフェース ethernet1のIPアドレス 10.10.10.1/30
IPマスカレード 有効
IPアクセスグループ in eth1_in
SPIフィルタ 有効
IPsecローカルポリシー 1
スタティックルート No.1 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(IPアドレス) 10.10.10.2
IPフィルタ ルール名 eth1_in
eth1_in No.1 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル 50(ESP)
No.3 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル ICMP
タイプ 8
コード 0
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
IPsec ISAKMPポリシー1 名前 NXR_B
認証方式 pre-share
認証鍵 ipseckey
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス any
リモートID(FQDN) nxrb
DPD 再送間隔 30秒
リトライ回数 3回
動作 clear
 ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_B
ネゴシエーションモード レスポンダ
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
DNS サービス 有効
DNSサーバ プライマリ 10.10.10.2
FastFowarding 有効

 

〔NXR_Bの設定〕

設定項目 設定内容
ホスト名 NXR_B
LAN側インタフェース ethernet0のIPアドレス 192.168.20.1/24
WAN側インタフェース PPPoEクライアント(ethernet1) ppp0
ppp0インタフェース
(メイン側)
ppp0のIPアドレス 動的IPアドレス
IPマスカレード 有効
IPアクセスグループ in wan_in
SPIフィルタ 有効
TCP MSS自動調整 オート
ISP接続用ユーザID test2@example.jp
ISP接続用パスワード test2pass
IPsecローカルポリシー 1
mobile1 ppp1
ppp1インタフェース
(バックアップ側)
ppp1のIPアドレス 動的IPアドレス
IPマスカレード 有効
IPアクセスグループ in wan_in
SPIフィルタ 有効
TCP MSS自動調整 オート
ip send-source 有効
PPP接続用ユーザID ユーザID
PPP接続用パスワード パスワード
APN APN
CID CID
PDPタイプ PDPタイプ(IPまたはPPP)
発信用電話番号 *99***[CID]#
ダイアルタイムアウト 30秒
IPsecローカルポリシー 2
ネットイベント No. 1
動作 connect
モバイルエラーリカバリー リセット
モバイルターミネーションリカバリー リセット
スタティックルート No.1 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
ディスタンス 1
No.4 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp1
ディスタンス 10
IPフィルタ ルール名 wan_in
wan_in No.1 動作 許可
送信元IPアドレス 10.10.10.1
宛先IPアドレス any
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス 10.10.10.1
宛先IPアドレス any
プロトコル 50(ESP)
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
セルフID(FQDN) nxrb
IPsecローカルポリシー2 address ip
セルフID(FQDN) nxrb
IPsec ISAKMPポリシー1 名前 NXR_A
認証方式 pre-share
認証鍵 ipseckey
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス 10.10.10.1
DPD 再送間隔 30秒
リトライ回数 3回
動作 restart
ローカルポリシー 1
ネットイベント No. 1
動作 ローカルポリシーチェンジ 2
IPsecトンネルポリシー1 名前 NXR_A
ネゴシエーションモード オート
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
トラック No.1 監視方式 Ping監視
宛先IPアドレス 10.10.10.1
出力インタフェース ppp0
監視間隔 10秒
リトライ回数 4回
ディレイ 61秒
DNS サービス 有効
FastFowarding 有効

 

【 設定例 】

〔NXR_Aの設定〕

nxr230#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr230(config)#hostname NXR_A
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24
NXR_A(config-if)#exit
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254
NXR_A(config)#ip route 0.0.0.0/0 10.10.10.2
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 udp 500 500
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 50
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 icmp 8 0
NXR_A(config)#ipsec access-list ipsec_acl ip any any
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip
NXR_A(config-ipsec-local)#exit
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 10800
NXR_A(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_A(config-ipsec-isakmp)#remote address ip any
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 1
NXR_A(config-ipsec-isakmp)#exit
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode responder
NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 3600
NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl
NXR_A(config-ipsec-tunnel)#exit
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto
NXR_A(config-tunnel)#exit
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 10.10.10.1/30
NXR_A(config-if)#ip masquerade
NXR_A(config-if)#ip access-group in eth1_in
NXR_A(config-if)#ip spi-filter
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#exit
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#address 10.10.10.2
NXR_A(config-dns)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config

〔NXR_Bの設定〕

nxrg100#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg100(config)#hostname NXR_B
NXR_B(config)#track 1 ip reachability 10.10.10.1 interface ppp 0 10 4 delay 61
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24
NXR_B(config-if)#exit
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254
NXR_B(config)#ip route 0.0.0.0/0 ppp 0 1
NXR_B(config)#ip route 0.0.0.0/0 ppp 1 10
NXR_B(config)#ip access-list wan_in permit 10.10.10.1 any udp 500 500
NXR_B(config)#ip access-list wan_in permit 10.10.10.1 any 50
NXR_B(config)#ipsec access-list ipsec_acl ip any any
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec local policy 2
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 10800
NXR_B(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_B(config-ipsec-isakmp)#remote address ip 10.10.10.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 1 netevent 1 change 2
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto
NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 3600
NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl
NXR_B(config-ipsec-tunnel)#exit
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto
NXR_B(config-tunnel)#exit
NXR_B(config)#ppp account username test2@example.jp password test2pass
NXR_B(config)#ppp account username [ユーザID] password [パスワード]
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address negotiated
NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip access-group in wan_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto
NXR_B(config-ppp)#ppp username test2@example.jp
NXR_B(config-ppp)#ipsec policy 1
NXR_B(config-ppp)#exit
NXR_B(config)#interface ppp 1
NXR_B(config-ppp)#ip address negotiated
NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip access-group in wan_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto
NXR_B(config-ppp)#ip send-source
NXR_B(config-ppp)#ppp username [ユーザID]
NXR_B(config-ppp)#mobile apn [APN] cid [CID] pdp-type [PDPタイプ]
NXR_B(config-ppp)#dial-up string *99***[CID]#
NXR_B(config-ppp)#dial-up timeout 30
NXR_B(config-ppp)#ipsec policy 2
NXR_B(config-ppp)#netevent 1 connect
NXR_B(config-ppp)#exit
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#no ip address
NXR_B(config-if)#pppoe-client ppp 0
NXR_B(config-if)#exit
NXR_B(config)#mobile error-recovery-reset
NXR_B(config)#mobile termination-recovery reset
NXR_B(config)#mobile 1 ppp 1
NXR_B(config)#dns
NXR_B(config-dns)#service enable
NXR_B(config-dns)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

 

【 設定例解説 】

〔NXR_Aの設定〕

1. <ホスト名の設定>
nxr230(config)#hostname NXR_A

ホスト名を設定します。

 

2. <LAN側(ethernet0)インタフェース設定>
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

3. <スタティックルート設定>
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254

LAN_B向けのルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。
(☞) nullインタフェースが出力インタフェースとして有効な場合、パケットが出力されることはありません(ドロップされます)。

NXR_A(config)#ip route 0.0.0.0/0 10.10.10.2

デフォルトルートを設定します。

 

4. <IPアクセスリスト設定>
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 udp 500 500
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 50

IPアクセスリスト名をeth1_inとし、WAN側IPアドレス10.10.10.1宛のIKEパケット(UDPポート500番)、ESPパケット(プロトコル番号50)を許可します。
なおこのIPアクセスリスト設定はethernet1インタフェース設定で登録します。
(☞) IPアクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングしたいインタフェースでの登録が必要になります。

NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 icmp 8 0

宛先IPアドレス10.10.10.1,ICMP Type8 Code0(ICMP Echo Request)のパケットを許可します。
(☞) ルータNXR_BのPing監視用のフィルタになります。

 

5. <IPsecアクセスリスト設定>
NXR_A(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

6. <IPsecローカルポリシー設定>
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。

 

7. <IPsec ISAKMPポリシー設定>
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey

ISAKMPポリシーの説明としてNXR_B、認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵ipseckeyを設定します。なお事前共有鍵はルータNXR_Bと共通の値を設定します。

NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 10800
NXR_A(config-ipsec-isakmp)#isakmp-mode aggressive

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒、フェーズ1のネゴシエーションモードとしてアグレッシブモードを設定します。

NXR_A(config-ipsec-isakmp)#remote address ip any
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 1

ルータNXR_Bのppp0,ppp1インタフェースからの接続を受け付けるため、リモートアドレスにanyを設定します。またリモートIDをFQDN方式でnxrbとし、ルータNXR_BのセルフIDと同じIDを設定します。そしてIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除するように設定します。さらにIPsecローカルポリシー1と関連づけを行います。

 

8. <IPsecトンネルポリシー設定>
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode responder

IPsecトンネルポリシーの説明としてNXR_B、ネゴシエーションモードとしてresponderを設定します。

NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

9. <トンネル1インタフェース設定>
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するトンネルポリシーとして1を設定します。またTCP MSSの調整機能をオートに設定します。

 

10. <WAN側(ethernet1)インタフェース設定>
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 10.10.10.1/30

ethernet1インタフェースのIPアドレスを設定します。

NXR_A(config-if)#ip masquerade
NXR_A(config-if)#ip access-group in eth1_in
NXR_A(config-if)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストeth1_inをinフィルタに適用します。

NXR_A(config-if)#ipsec policy 1

IPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

11. <DNS設定>
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#address 10.10.10.2

DNSサービスを有効にします。またプライマリDNSサーバアドレスを設定します。

 

12. <ファストフォワーディングの有効化>
NXR_A(config)#fast-forwarding enable

ファストフォワーディングを有効にします。ファストフォワーディングを設定することによりパケット転送の高速化を行うことができます。
(☞) ファストフォワーディングの詳細および利用時の制約については、NXR,WXRシリーズのユーザーズガイド(CLI版)に記載されているファストフォワーディングの解説をご参照ください。

 

〔NXR_Bの設定〕

1. <ホスト名の設定>
nxrg100(config)#hostname NXR_B

ホスト名を設定します。

 

2. <トラック設定(Ping監視)>
NXR_B(config)#track 1 ip reachability 10.10.10.1 interface ppp 0 10 4 delay 61

Ping監視設定をトラックNo.1に登録します。指定回数リトライ後、応答が得られない場合はダウン状態に遷移します。
(☞) インタフェース名を指定した場合はそのインタフェースのIPアドレスが監視パケットの送信元IPアドレスとなります。
(☞) ディレイは復旧時(ステータスをアップと認識した場合)から実際にアップ時の動作を実行するまでの遅延時間となります。そしてディレイタイマが動作している間はダウン状態が維持され、この間もPing監視は行われます。なおディレイタイマ中にダウンイベントを検知した場合は、ディレイタイマはキャンセルされます。そしてディレイタイマがタイムアウトするとアップ状態に遷移します。このときディレイタイマ中にカウントしたPing監視の失敗回数は0クリアされ、再びPing監視が開始されます。

 

3. <LAN側(ethernet0)インタフェース設定>
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

4. <スタティックルート設定>
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254

LAN_A向けのルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。
(☞) nullインタフェースが出力インタフェースとして有効な場合、パケットが出力されることはありません(ドロップされます)。

NXR_B(config)#ip route 0.0.0.0/0 ppp 0 1
NXR_B(config)#ip route 0.0.0.0/0 ppp 1 10

デフォルトルートを設定します。なおこのルートのディスタンス値としてppp0インタフェースは1,ppp1インタフェースは10を設定します。

 

5. <IPアクセスリスト設定>
NXR_B(config)#ip access-list wan_in permit 10.10.10.1 any udp 500 500
NXR_B(config)#ip access-list wan_in permit 10.10.10.1 any 50

IPアクセスリスト名をwan_inとし、送信元がルータNXR_AのWAN側IPアドレス10.10.10.1のIKEパケット(UDPポート500番)、ESPパケット(プロトコル番号50)を許可します。なおこのIPアクセスリスト設定はppp0,ppp1インタフェース設定で登録します。

 

6. <IPsecアクセスリスト設定>
NXR_B(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

7. <IPsecローカルポリシー1設定>
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrbとし、ルータNXR_AのリモートIDと同じIDを設定します。
(☞) このIPsecローカルポリシー設定はppp0インタフェースに登録します。
(☞) identityはIPsecローカルポリシー2と同じ値を設定します。

 

8. <IPsecローカルポリシー2設定>
NXR_B(config)#ipsec local policy 2
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrbとし、ルータNXR_AのリモートIDと同じIDを設定します。
(☞) このIPsecローカルポリシー設定はppp1インタフェースに登録します。
(☞) identityはIPsecローカルポリシー1と同じ値を設定します。

 

9. <IPsec ISAKMPポリシー設定>
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey

ISAKMPポリシーの説明としてNXR_A、認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵ipseckeyを設定します。なお事前共有鍵はNXR_Aと共通の値を設定します。

NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 10800
NXR_B(config-ipsec-isakmp)#isakmp-mode aggressive

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒、フェーズ1のネゴシエーションモードとしてアグレッシブモードを設定します。

NXR_B(config-ipsec-isakmp)#remote address ip 10.10.10.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart

リモートアドレスにルータNXR_AのWAN側IPアドレスを設定します。またIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。

NXR_B(config-ipsec-isakmp)#local policy 1 netevent 1 change 2

IPsecローカルポリシー1と関連づけを行います。またtrack 1コマンドで指定したPing監視で障害を検知した場合、IPsecローカルポリシーを1から2に変更するように設定します。

 

10. <IPsec トンネルポリシー設定>
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto

IPsecトンネルポリシーの説明としてNXR_A、ネゴシエーションモードとしてautoを設定します。

NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

11. <トンネル1インタフェース設定>
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するトンネルポリシーとして1を設定します。またTCP MSSの調整機能をオートに設定します。

 

12. <PPPアカウント設定>
NXR_B(config)#ppp account username test2@example.jp password test2pass

ppp0インタフェースで使用するISP接続用ユーザID,パスワードを設定します。

NXR_B(config)#ppp account username [ユーザID] password [パスワード]

ppp1インタフェースで使用するPPP接続用ユーザID,パスワードを設定します。

 

13. <WANメイン側(ppp0)インタフェース設定>
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address negotiated

ppp0インタフェースのIPアドレスが動的IPアドレスのためnegotiatedを設定します。

NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip access-group in wan_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストwan_inをinフィルタに適用します。そしてTCP MSSの調整機能をオートに設定します。

NXR_B(config-ppp)#ppp username test2@example.jp
NXR_B(config-ppp)#ipsec policy 1

ISP接続用ユーザIDを設定します。またIPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

14. <WANバックアップ側(ppp1)インタフェース設定>
NXR_B(config)#interface ppp 1
NXR_B(config-ppp)#ip address negotiated

ppp1インタフェースのIPアドレスが動的IPアドレスのためnegotiatedを設定します。

NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip access-group in wan_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストwan_inをinフィルタに適用します。そしてTCP MSSの調整機能をオートに設定します。

NXR_B(config-ppp)#ip send-source

ip send-sourceを有効に設定します。
(☞) ip send-source機能はPPPインタフェースに設定されているIPアドレスを送信元IPアドレスとするパケットを送信する際、必ずIPアドレスの所有者であるPPPインタフェースから出力する機能です。

NXR_B(config-ppp)#ppp username [ユーザID]
NXR_B(config-ppp)#mobile apn [APN] cid [CID] pdp-type [PDPタイプ]

PPP接続用ユーザIDを設定します。またAPN,CID,PDPタイプを設定します。

NXR_B(config-ppp)#dial-up string *99***[CID]#
NXR_B(config-ppp)#dial-up timeout 30

発信用の電話番号およびダイアルタイムアウトを設定します。
(☞) ここで設定する電話番号はSIMカードの電話番号ではありません。

NXR_B(config-ppp)#ipsec policy 2

IPsecトンネルのエンドポイントとなるためIPsecローカルポリシー2を設定します。

NXR_B(config-ppp)#netevent 1 connect

ネットイベントを設定します。
trackコマンドで指定した監視方式で障害を検知した場合に実行する動作を指定します。
ここではtrack 1コマンドで指定したPing監視で障害(宛先IPアドレスへの疎通不可)を検知した場合、ppp1インタフェースでPPP接続を開始します。

 

15. <ethernet1インタフェース設定>
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#no ip address
NXR_B(config-if)#pppoe-client ppp 0

PPPoEクライアントとしてppp0インタフェースを使用できるように設定します。

 

16. <モバイルエラーリカバリー設定>
NXR_B(config)#mobile error-recovery-reset

通信モジュールとの通信に重大な問題が発生する可能性が高いと判断した場合、通信モジュールのリセットを行うように設定します。

 

17. <モバイルターミネーションリカバリー設定>
NXR_B(config)#mobile termination-recovery reset

PPP接続時に網側から切断された場合、通信モジュールのリセットを行うように設定します。

 

18. <モバイル割り当て設定>
NXR_B(config)#mobile 1 ppp 1

mobile1と認識されている通信モジュールとppp1インタフェースの関連づけを行います。
通信モジュールをPPPインタフェースで使用する場合は、mobileコマンドによるPPPインタフェースへの関連付けが必要になります。

 

19. <DNS設定>
NXR_B(config)#dns
NXR_B(config-dns)#service enable

DNSサービスを有効にします。

 

20. <ファストフォワーディングの有効化>
NXR_B(config)#fast-forwarding enable

ファストフォワーディングを有効にします。

 

【 端末の設定例 】

LAN_Aの端末 LAN_Bの端末
IPアドレス 192.168.10.100 192.168.20.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1 192.168.20.1
DNSサーバ