FutureNet

NXR,WXRシリーズ

IPsec編

5. 冗長化設定

5-4. Route Based IPsec冗長化設定(BGPの利用)

この設定例ではセンタ側で回線と機器を、拠点側で回線の冗長化を行います。またメイン経路はBGPによる経路制御を行います。

 

【 構成図 】

<正常時>

<ルータNXR_A1 ppp0インタフェースリンクダウン時>

<ルータNXR_A1 ethernet0インタフェースリンクダウン時>

<ルータNXR_B ppp0インタフェースリンクダウン時>

fnw_ipsec_rb_redundancy_004-4

  • ルータNXR_A1とNXR_Bの間ではBGPによる経路交換を行います。
  • ルータNXR_A1のppp0インタフェースリンクダウン時、ネットイベント機能でVRRPの優先度を変更します。またWAN側での経路障害などIPsec SA未確立時にLAN_B宛のパケットをルータNXR_A2に転送するためのルートを設定します。その際ルートのディスタンス値はBGPのルートよりも大きい値を設定します。
  • ルータNXR_A1のethernet0インタフェースリンクダウン時、ネットイベント機能でIPsec ISAKMPポリシーの切断を行います。
  • ルータNXR_Bでは正常時PPPoE回線を使用してルータNXR_A1とIPsec SAを確立します。そしてネットイベント機能でルータNXR_A1とのBGPネイバーを監視し、障害検知後PPP(モバイル)接続を開始します。そしてPPP接続完了後ルータNXR_A2へのIPsec接続を開始します。
  • この設定例ではルータNXR_Bでipsec priority-ignore機能を使用します。この機能に対応していないファームウェアをご利用頂いている場合は、同じフェーズ2のIDを持つIPsec SAを同時に複数個確立することができません。そのため設定例のように同一のIPsecアクセスリストを複数のIPsecトンネルポリシーに適用した場合、IPsec SAを複数同時に確立することができませんので、各IPsecトンネルポリシー毎に異なるルールのIPsecアクセスリストを設定する必要があります。
  • ルータNXR_A2,NXR_BではIPsecルート無効時、カプセル化対象のパケットをルータから出力しないようにするためゲートウェイをnullインタフェースとしたルートを設定します。

 

【 設定データ 】

〔NXR_A1の設定〕

設定項目 設定内容
ホスト名 NXR_A1
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
IPリダイレクト 無効
VRRP グループ 1
IPアドレス 192.168.10.254
プライオリティ 254
プリエンプト 有効
送信間隔 5秒
ネットイベント No. 1
プライオリティ 50
WAN側インタフェース PPPoEクライアント(ethernet1) ppp0
ppp0のIPアドレス 10.10.10.1/32
IPマスカレード 有効
IPアクセスグループ in ppp0_in
SPIフィルタ 有効
TCP MSS自動調整 オート
ISP接続用ユーザID test1@example.jp
ISP接続用パスワード test1pass
IPsecローカルポリシー 1
loopbackインタフェース loopback0のIPアドレス 10.10.0.1/32
スタティックルート No.1 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(IPアドレス) 192.168.10.2
ディスタンス 30
No.2 宛先IPアドレス 10.10.0.2/32
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.3 宛先IPアドレス 10.10.0.2/32
ゲートウェイ(インタフェース) null
ディスタンス 254
No.4 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
BGP4 自AS番号 65000
ネットワーク 192.168.10.0/24
ネイバー 10.10.0.2 リモートAS番号 65100
ebgp-multihop 255
update-source loopback0
タイマー キープアライブタイマー 30秒
ホールドタイマー 90秒
IPフィルタ ルール名 ppp0_in
ppp0_in No.1 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル 50(ESP)
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
IPsec ISAKMPポリシー1 名前 NXR_B_M
認証方式 pre-share
認証鍵 ipseckey1
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス any
リモートID(FQDN) nxrb_m
DPD 再送間隔 30秒
リトライ回数 3回
動作 clear
 ローカルポリシー 1
ネットイベント No. 2
動作 disconnect
IPsecトンネルポリシー1 名前 NXR_B_M
ネゴシエーションモード レスポンダ
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
トラック No.1 インタフェース ppp0
イニシャルタイムアウト 30秒
No.2 インタフェース ethernet0
DNS サービス 有効
FastFowarding 有効

〔NXR_A2の設定〕

設定項目 設定内容
ホスト名 NXR_A2
LAN側インタフェース ethernet0のIPアドレス 192.168.10.2/24
IPリダイレクト 無効
VRRP グループ 1
IPアドレス 192.168.10.254
プライオリティ 100
プリエンプト 有効
送信間隔 5秒
WAN側インタフェース ethernet1のIPアドレス 10.10.20.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.20.2
IPフィルタ ルール名 eth1_in
eth1_in No.1 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.20.1
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.20.1
プロトコル 50(ESP)
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
IPsec ISAKMPポリシー1 名前 NXR_B_B
認証方式 pre-share
認証鍵 ipseckey2
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス any
リモートID(FQDN) nxrb_b
DPD 再送間隔 30秒
リトライ回数 3回
動作 clear
 ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_B_B
ネゴシエーションモード レスポンダ
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
DNS サービス 有効
DNSサーバ プライマリ 10.10.20.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 ppp0_in
SPIフィルタ 有効
TCP MSS自動調整 オート
ISP接続用ユーザID test2@example.jp
ISP接続用パスワード test2pass
IPsecローカルポリシー 1
mobile1 ppp1
ppp1インタフェース
(バックアップ側)
ppp1のIPアドレス 動的IPアドレス
IPマスカレード 有効
IPアクセスグループ in ppp1_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
モバイルエラーリカバリー リセット
モバイルターミネーションリカバリー リセット
loopbackインタフェース loopback0のIPアドレス 10.10.0.2/32
スタティックルート No.1 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) tunnel2
ディスタンス 30
No.2 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
No.3 宛先IPアドレス 10.10.0.1/32
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.4 宛先IPアドレス 10.10.0.1/32
ゲートウェイ(インタフェース) null
ディスタンス 254
No.5 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
ディスタンス 1
No.6 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp1
ディスタンス 10
BGP4 自AS番号 65100
ネットワーク 192.168.20.0/24
ネイバー 10.10.0.1 リモートAS番号 65000
ebgp-multihop 255
update-source loopback0
タイマー キープアライブタイマー 30秒
ホールドタイマー 90秒
IPフィルタ ルール名 ppp0_in
ppp0_in No.1 動作 許可
送信元IPアドレス 10.10.10.1
宛先IPアドレス any
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス 10.10.10.1
宛先IPアドレス any
プロトコル 50(ESP)
ルール名 ppp1_in
ppp1_in No.1 動作 許可
送信元IPアドレス 10.10.20.1
宛先IPアドレス any
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス 10.10.20.1
宛先IPアドレス any
プロトコル 50(ESP)
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsec priority-ignore 有効
IPsecローカルポリシー1 address ip
セルフID(FQDN) nxrb_m
IPsecローカルポリシー2 address ip
セルフID(FQDN) nxrb_b
IPsec ISAKMPポリシー1 名前 NXR_A1
認証方式 pre-share
認証鍵 ipseckey1
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス 10.10.10.1
DPD 再送間隔 30秒
リトライ回数 3回
動作 restart
ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_A1
ネゴシエーションモード オート
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
IPsec ISAKMPポリシー2 名前 NXR_A2
認証方式 pre-share
認証鍵 ipseckey2
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス 10.10.20.1
DPD 再送間隔 30秒
リトライ回数 3回
動作 restart
ローカルポリシー 2
IPsecトンネルポリシー2 名前 NXR_A2
ネゴシエーションモード オート
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 2
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
トンネル2インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 2
TCP MSS自動調整 オート
トラック No.1 監視方式 BGP監視
ネイバーアドレス 10.10.0.1
イニシャルタイムアウト 30秒
ディレイ 60秒
DNS サービス 有効
FastFowarding 有効

 

【 設定例 】

〔NXR_A1の設定〕

nxr230#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr230(config)#hostname NXR_A1
NXR_A1(config)#track 1 interface ppp 0 initial-timeout 30
NXR_A1(config)#track 2 interface ethernet 0
NXR_A1(config)#interface loopback 0
NXR_A1(config-loopback)#ip address 10.10.0.1/32
NXR_A1(config-loopback)#exit
NXR_A1(config)#interface ethernet 0
NXR_A1(config-if)#ip address 192.168.10.1/24
NXR_A1(config-if)#no ip redirects
NXR_A1(config-if)#vrrp ip 1 address 192.168.10.254
NXR_A1(config-if)#vrrp ip 1 priority 254
NXR_A1(config-if)#vrrp ip 1 preempt
NXR_A1(config-if)#vrrp ip 1 timers advertise 5
NXR_A1(config-if)#vrrp ip 1 netevent 1 priority 50
NXR_A1(config-if)#exit
NXR_A1(config)#ip route 192.168.20.0/24 192.168.10.2 30
NXR_A1(config)#ip route 10.10.0.2/32 tunnel 1 1
NXR_A1(config)#ip route 10.10.0.2/32 null 254
NXR_A1(config)#ip route 0.0.0.0/0 ppp 0
NXR_A1(config)#ip access-list ppp0_in permit any 10.10.10.1 udp 500 500
NXR_A1(config)#ip access-list ppp0_in permit any 10.10.10.1 50
NXR_A1(config)#ipsec access-list ipsec_acl ip any any
NXR_A1(config)#ipsec local policy 1
NXR_A1(config-ipsec-local)#address ip
NXR_A1(config-ipsec-local)#exit
NXR_A1(config)#ipsec isakmp policy 1
NXR_A1(config-ipsec-isakmp)#description NXR_B_M
NXR_A1(config-ipsec-isakmp)#authentication pre-share ipseckey1
NXR_A1(config-ipsec-isakmp)#hash sha256
NXR_A1(config-ipsec-isakmp)#encryption aes128
NXR_A1(config-ipsec-isakmp)#group 5
NXR_A1(config-ipsec-isakmp)#lifetime 10800
NXR_A1(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_A1(config-ipsec-isakmp)#remote address ip any
NXR_A1(config-ipsec-isakmp)#remote identity fqdn nxrb_m
NXR_A1(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A1(config-ipsec-isakmp)#local policy 1
NXR_A1(config-ipsec-isakmp)#netevent 2 disconnect
NXR_A1(config-ipsec-isakmp)#exit
NXR_A1(config)#ipsec tunnel policy 1
NXR_A1(config-ipsec-tunnel)#description NXR_B_M
NXR_A1(config-ipsec-tunnel)#negotiation-mode responder
NXR_A1(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A1(config-ipsec-tunnel)#set pfs group5
NXR_A1(config-ipsec-tunnel)#set sa lifetime 3600
NXR_A1(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A1(config-ipsec-tunnel)#match address ipsec_acl
NXR_A1(config-ipsec-tunnel)#exit
NXR_A1(config)#interface tunnel 1
NXR_A1(config-tunnel)#tunnel mode ipsec ipv4
NXR_A1(config-tunnel)#tunnel protection ipsec policy 1
NXR_A1(config-tunnel)#ip tcp adjust-mss auto
NXR_A1(config-tunnel)#exit
NXR_A1(config)#ppp account username test1@example.jp password test1pass
NXR_A1(config)#interface ppp 0
NXR_A1(config-ppp)#ip address 10.10.10.1/32
NXR_A1(config-ppp)#ip masquerade
NXR_A1(config-ppp)#ip access-group in ppp0_in
NXR_A1(config-ppp)#ip spi-filter
NXR_A1(config-ppp)#ip tcp adjust-mss auto
NXR_A1(config-ppp)#ppp username test1@example.jp
NXR_A1(config-ppp)#ipsec policy 1
NXR_A1(config-ppp)#exit
NXR_A1(config)#interface ethernet 1
NXR_A1(config-if)#no ip address
NXR_A1(config-if)#pppoe-client ppp 0
NXR_A1(config-if)#exit
NXR_A1(config)#router bgp 65000
NXR_A1(config-router)#network 192.168.10.0/24
NXR_A1(config-router)#neighbor 10.10.0.2 remote-as 65100
NXR_A1(config-router)#neighbor 10.10.0.2 ebgp-multihop 255
NXR_A1(config-router)#neighbor 10.10.0.2 update-source loopback 0
NXR_A1(config-router)#neighbor 10.10.0.2 timers 30 90
NXR_A1(config-router)#exit
NXR_A1(config)#dns
NXR_A1(config-dns)#service enable
NXR_A1(config-dns)#exit
NXR_A1(config)#fast-forwarding enable
NXR_A1(config)#exit
NXR_A1#save config

〔NXR_A2の設定〕

nxr230#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr230(config)#hostname NXR_A2
NXR_A2(config)#interface ethernet 0
NXR_A2(config-if)#ip address 192.168.10.2/24
NXR_A2(config-if)#no ip redirects
NXR_A2(config-if)#vrrp ip 1 address 192.168.10.254
NXR_A2(config-if)#vrrp ip 1 priority 100
NXR_A2(config-if)#vrrp ip 1 preempt
NXR_A2(config-if)#vrrp ip 1 timers advertise 5
NXR_A2(config-if)#exit
NXR_A2(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A2(config)#ip route 192.168.20.0/24 null 254
NXR_A2(config)#ip route 0.0.0.0/0 10.10.20.2
NXR_A2(config)#ip access-list eth1_in permit any 10.10.20.1 udp 500 500
NXR_A2(config)#ip access-list eth1_in permit any 10.10.20.1 50
NXR_A2(config)#ipsec access-list ipsec_acl ip any any
NXR_A2(config)#ipsec local policy 1
NXR_A2(config-ipsec-local)#address ip
NXR_A2(config-ipsec-local)#exit
NXR_A2(config)#ipsec isakmp policy 1
NXR_A2(config-ipsec-isakmp)#description NXR_B_B
NXR_A2(config-ipsec-isakmp)#authentication pre-share ipseckey2
NXR_A2(config-ipsec-isakmp)#hash sha256
NXR_A2(config-ipsec-isakmp)#encryption aes128
NXR_A2(config-ipsec-isakmp)#group 5
NXR_A2(config-ipsec-isakmp)#lifetime 10800
NXR_A2(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_A2(config-ipsec-isakmp)#remote address ip any
NXR_A2(config-ipsec-isakmp)#remote identity fqdn nxrb_b
NXR_A2(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A2(config-ipsec-isakmp)#local policy 1
NXR_A2(config-ipsec-isakmp)#exit
NXR_A2(config)#ipsec tunnel policy 1
NXR_A2(config-ipsec-tunnel)#description NXR_B_B
NXR_A2(config-ipsec-tunnel)#negotiation-mode responder
NXR_A2(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A2(config-ipsec-tunnel)#set pfs group5
NXR_A2(config-ipsec-tunnel)#set sa lifetime 3600
NXR_A2(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A2(config-ipsec-tunnel)#match address ipsec_acl
NXR_A2(config-ipsec-tunnel)#exit
NXR_A2(config)#interface tunnel 1
NXR_A2(config-tunnel)#tunnel mode ipsec ipv4
NXR_A2(config-tunnel)#tunnel protection ipsec policy 1
NXR_A2(config-tunnel)#ip tcp adjust-mss auto
NXR_A2(config-tunnel)#exit
NXR_A2(config)#interface ethernet 1
NXR_A2(config-if)#ip address 10.10.20.1/30
NXR_A2(config-if)#ip masquerade
NXR_A2(config-if)#ip access-group in eth1_in
NXR_A2(config-if)#ip spi-filter
NXR_A2(config-if)#ipsec policy 1
NXR_A2(config-if)#exit
NXR_A2(config)#dns
NXR_A2(config-dns)#service enable
NXR_A2(config-dns)#address 10.10.20.2
NXR_A2(config-dns)#exit
NXR_A2(config)#fast-forwarding enable
NXR_A2(config)#exit
NXR_A2#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 bgp neighbor 10.10.0.1 initial-timeout 30 delay 60
NXR_B(config)#interface loopback 0
NXR_B(config-loopback)#ip address 10.10.0.2/32
NXR_B(config-loopback)#exit
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 2 30
NXR_B(config)#ip route 192.168.10.0/24 null 254
NXR_B(config)#ip route 10.10.0.1/32 tunnel 1 1
NXR_B(config)#ip route 10.10.0.1/32 null 254
NXR_B(config)#ip route 0.0.0.0/0 ppp 0
NXR_B(config)#ip route 0.0.0.0/0 ppp 1 10
NXR_B(config)#ip access-list ppp0_in permit 10.10.10.1 any udp 500 500
NXR_B(config)#ip access-list ppp0_in permit 10.10.10.1 any 50
NXR_B(config)#ip access-list ppp1_in permit 10.10.20.1 any udp 500 500
NXR_B(config)#ip access-list ppp1_in permit 10.10.20.1 any 50
NXR_B(config)#ipsec access-list ipsec_acl ip any any
NXR_B(config)#ipsec priority-ignore enable
% restart ipsec service to take affect.
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb_m
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_b
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A1
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey1
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
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A1
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)#ipsec isakmp policy 2
NXR_B(config-ipsec-isakmp)#description NXR_A2
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey2
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.20.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 2
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#ipsec tunnel policy 2
NXR_B(config-ipsec-tunnel)#description NXR_A2
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 2
NXR_B(config-ipsec-tunnel)#match address ipsec_acl
NXR_B(config-ipsec-tunnel)#exit
NXR_B(config)#interface tunnel 2
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 2
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 ppp0_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 ppp1_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)#router bgp 65100
NXR_B(config-router)#network 192.168.20.0/24
NXR_B(config-router)#neighbor 10.10.0.1 remote-as 65000
NXR_B(config-router)#neighbor 10.10.0.1 ebgp-multihop 255
NXR_B(config-router)#neighbor 10.10.0.1 update-source loopback 0
NXR_B(config-router)#neighbor 10.10.0.1 timers 30 90
NXR_B(config-router)#exit
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_A1の設定〕

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

ホスト名を設定します。

 

2. <トラック設定(リンク監視)>
NXR_A1(config)#track 1 interface ppp 0 initial-timeout 30

ppp0インタフェースのリンク監視設定をトラックNo.1に登録します。
(☞) インタフェースのリンク監視設定時、初期のトラック状態はイニット(init)でppp0インタフェースのリンクアップ後、トラックはアップ状態になります。またppp0インタフェースがリンクダウン状態の場合、すぐにトラックはダウン状態にはなりません。そのため設定したタイムアウト時間経過後、トラックをダウン状態にするためにイニシャルタイムアウトを設定します。

NXR_A1(config)#track 2 interface ethernet 0

ethernet0インタフェースのリンク監視設定をトラックNo.2に登録します。

 

3. <loopback0インタフェース設定>
NXR_A1(config)#interface loopback 0
NXR_A1(config-loopback)#ip address 10.10.0.1/32

loopback0インタフェースのIPアドレスを設定します。
(☞) loopback0インタフェースはBGPで使用します。

 

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

ethernet0インタフェースのIPアドレスを設定します。またICMPリダイレクト機能を無効に設定します。

NXR_A1(config-if)#vrrp ip 1 address 192.168.10.254
NXR_A1(config-if)#vrrp ip 1 priority 254
NXR_A1(config-if)#vrrp ip 1 preempt
NXR_A1(config-if)#vrrp ip 1 timers advertise 5

VRRPの仮想IPアドレス、プライオリティを設定します。またプリエンプトを有効にします。
そしてアドバタイズの送信間隔を設定します。
(☞) トラフィックが多いネットワークの場合、VRRPアドバタイズの送信間隔を大きい値に設定することで動作が安定する場合があります。

NXR_A1(config-if)#vrrp ip 1 netevent 1 priority 50

ネットイベントを設定します。
ここではtrack 1コマンドで指定したppp0インタフェースのリンク監視で障害(リンクダウン)を検知した場合、VRRPのプライオリティを50に変更します。

 

5. <スタティックルート設定>
NXR_A1(config)#ip route 192.168.20.0/24 192.168.10.2 30

LAN_B向けのルートを設定します。ゲートウェイアドレスは192.168.10.2を設定します。またこのルートのディスタンス値はeBGPよりも大きい値を設定します。
(☞) この設定はIPsec SA未確立時にルータNXR_A1で受信した宛先IPアドレス192.168.20.0/24のパケットをルータNXR_A2経由で対向側に転送するためのものです。
(☞) デフォルトのeBGPのディスタンス値は20になります。

NXR_A1(config)#ip route 10.10.0.2/32 tunnel 1 1
NXR_A1(config)#ip route 10.10.0.2/32 null 254

BGPピア向けのルートを設定します。なおIPsec SA未確立時はnullインタフェースのルートを有効にしBGPパケットを出力しないようにします。

NXR_A1(config)#ip route 0.0.0.0/0 ppp 0

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

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

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

NXR_A1(config-ipsec-isakmp)#netevent 2 disconnect

ネットイベントを設定します。
ここではtrack 2コマンドで指定したethernet0インタフェースのリンク監視で障害(リンクダウン)を検知した場合、IPsec ISAKMPポリシー1の切断を行います。

 

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

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

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

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

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

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

 

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

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

 

12. <PPPアカウント設定>
NXR_A1(config)#ppp account username test1@example.jp password test1pass

ppp0インタフェースで使用するISP接続用ユーザID,パスワードを設定します。
(☞) ここで設定したアカウントはppp0インタフェースの設定で利用します。

 

13. <WAN側(ppp0)インタフェース設定>
NXR_A1(config)#interface ppp 0
NXR_A1(config-ppp)#ip address 10.10.10.1/32

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

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

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

NXR_A1(config-ppp)#ppp username test1@example.jp
NXR_A1(config-ppp)#ipsec policy 1

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

 

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

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

 

15. <BGP4設定>
NXR_A1(config)#router bgp 65000
NXR_A1(config-router)#network 192.168.10.0/24

BGP4を有効にし、自AS番号を65000に設定します。
またBGPでアドバタイズするネットワークアドレスを設定します。

NXR_A1(config-router)#neighbor 10.10.0.2 remote-as 65100

BGPピア(ルータNXR_B)のIPアドレスおよびAS番号を設定します。

NXR_A1(config-router)#neighbor 10.10.0.2 ebgp-multihop 255

BGPピア(ルータNXR_B)と直接接続されていないため、TTL値を変更します。

NXR_A1(config-router)#neighbor 10.10.0.2 update-source loopback 0

BGPピア(ルータNXR_B)宛のパケットの送信元IPアドレスをループバックインタフェースに設定します。

NXR_A1(config-router)#neighbor 10.10.0.2 timers 30 90

BGPピア(ルータNXR_B)とのキープアライブタイマーを30秒、ホールドタイマーを90秒に設定します。

 

16. <DNS設定>
NXR_A1(config)#dns
NXR_A1(config-dns)#service enable

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

 

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

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

 

〔NXR_A2の設定〕

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

ホスト名を設定します。

 

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

ethernet0インタフェースのIPアドレスを設定します。またICMPリダイレクト機能を無効に設定します。

NXR_A2(config-if)#vrrp ip 1 address 192.168.10.254
NXR_A2(config-if)#vrrp ip 1 priority 100
NXR_A2(config-if)#vrrp ip 1 preempt
NXR_A2(config-if)#vrrp ip 1 timers advertise 5

VRRPの仮想IPアドレス、プライオリティを設定します。またプリエンプトを有効にします。
そしてアドバタイズの送信間隔を設定します。

 

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

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

NXR_A2(config)#ip route 0.0.0.0/0 10.10.20.2

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

 

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

IPアクセスリスト名をeth1_inとし、WAN側IPアドレス10.10.20.1宛のIKEパケット(UDPポート500番)、ESPパケット(プロトコル番号50)を許可します。
なおこのIPアクセスリスト設定はethernet1インタフェース設定で登録します。

 

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

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

 

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

 

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

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

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

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

NXR_A2(config-if)#ipsec policy 1

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

 

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

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

 

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

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

 

〔NXR_Bの設定〕

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

ホスト名を設定します。

 

2. <トラック設定(BGP監視)>
NXR_B(config)#track 1 bgp neighbor 10.10.0.1 initial-timeout 30 delay 60

BGP監視設定をトラックNo.1に登録します。指定したBGPピアとのネイバー確立後、他のステートへ変化した場合トラックはダウン状態へと遷移します。またイニシャルタイムアウトとディレイも合わせて設定します。
(☞) BGP監視設定時、初期のトラック状態はイニット(init)でBGPピアとのネイバーが確立するとトラック はアップ状態になります。しかしBGPピアとのネイバーが確立していない場合、すぐにトラックはダウン状態にはなりません。そのため設定したタイムアウト時間経過後トラックをダウン状態にするために、イニシャルタイムアウトを設定します。
(☞) ディレイを設定することでBGPピアとのネイバーが確立して指定時間経過後トラックをアップ状態へと遷移します。

 

3. <loopback0インタフェース設定>
NXR_B(config)#interface loopback 0
NXR_B(config-loopback)#ip address 10.10.0.2/32

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

 

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

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

 

5. <スタティックルート設定>
NXR_B(config)#ip route 192.168.10.0/24 tunnel 2 30

LAN_A向けのルートを設定します。BGPの経路がなくバックアップのIPsec SA確立時はトンネル2インタフェースのルートを利用するように設定します。またこのルートのディスタンス値はeBGPよりも大きい値を設定します。

NXR_B(config)#ip route 192.168.10.0/24 null 254

LAN_A向けのルートを設定します。なおゲートウェイインタフェースはnullを設定します。またこのルートのディスタンス値として254を設定します。

NXR_B(config)#ip route 10.10.0.1/32 tunnel 1 1
NXR_B(config)#ip route 10.10.0.1/32 null 254

BGPピア向けのルートを設定します。なおメインのIPsec SA未確立時はnullインタフェースのルートを有効にしBGPパケットを出力しないようにします。

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

デフォルトルートを設定します。なおゲートウェイがppp0インタフェースのルートをメイン、ppp1インタフェースのルートをバックアップとします。

 

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

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

NXR_B(config)#ip access-list ppp1_in permit 10.10.20.1 any udp 500 500
NXR_B(config)#ip access-list ppp1_in permit 10.10.20.1 any 50

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

 

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

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

 

8. <IPsec priority-ignore設定>
NXR_B(config)#ipsec priority-ignore enable

ipsec priority-ignoreを有効に設定します。

 

9. <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_m

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrb_mとし、ルータNXR_A1のリモートIDと同じIDを設定します。

 

10. <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_b

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrb_bとし、ルータNXR_A2のリモートIDと同じIDを設定します。

 

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

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

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_B(config-ipsec-isakmp)#local policy 1

リモートアドレスにルータNXR_A1のWAN側IPアドレスを設定します。またIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。そしてIPsecローカルポリシー1と関連づけを行います。

 

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

IPsecトンネルポリシーの説明としてNXR_A1、ネゴシエーションモードとして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を設定します。

 

13. <トンネル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の調整機能をオートに設定します。

 

14. <IPsec ISAKMPポリシー2設定>
NXR_B(config)#ipsec isakmp policy 2
NXR_B(config-ipsec-isakmp)#description NXR_A2
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey2

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

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.20.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 2

リモートアドレスにルータNXR_A2のWAN側IPアドレスを設定します。またIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。そしてIPsecローカルポリシー2と関連づけを行います。

 

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

IPsecトンネルポリシーの説明としてNXR_A2、ネゴシエーションモードとして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 2
NXR_B(config-ipsec-tunnel)#match address ipsec_acl

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

 

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

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

 

17. <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,パスワードを設定します。

 

18. <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 ppp0_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストppp0_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を設定します。

 

19. <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 ppp1_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストppp1_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コマンドで指定したBGP監視で障害(他のステートへの変化)を検知した場合、ppp1インタフェースでPPP接続を開始します。

 

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

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

 

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

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

 

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

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

 

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

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

 

24. <BGP4設定>
NXR_B(config)#router bgp 65100
NXR_B(config-router)#network 192.168.20.0/24

BGP4を有効にし、自AS番号を65100に設定します。
またBGPでアドバタイズするネットワークアドレスを設定します。

NXR_B(config-router)#neighbor 10.10.0.1 remote-as 65000

BGPピア(ルータNXR_A1)のIPアドレスおよびAS番号を設定します。

NXR_B(config-router)#neighbor 10.10.0.1 ebgp-multihop 255

BGPピア(ルータNXR_A)と直接接続されていないため、TTL値を変更します。

NXR_B(config-router)#neighbor 10.10.0.1 update-source loopback 0

BGPピア(ルータNXR_A)宛のパケットの送信元IPアドレスをループバックインタフェースに設定します。

NXR_B(config-router)#neighbor 10.10.0.1 timers 30 90

BGPピア(ルータNXR_A)とのキープアライブタイマーを30秒、ホールドタイマーを90秒に設定します。

 

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

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

 

26. <ファストフォワーディングの有効化>
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.254 192.168.20.1
DNSサーバ 192.168.10.1
192.168.10.2