古河電工ネットワーク機器の総合ブランド ファイテルネット
古河電工
FITELnetトップ製品ラインナップイベント&セミナーセールス&サポート
Routing to the Future FITELnet
お問い合わせはこちら
 
設定例
L2TPv2 over IPsec機能設定例
概要
L2TPv2 over IPsec機能を使用してVPNクライアント端末からリモートアクセスする設定です。
各VPNクライアント端末の設定についてはこちら。
Android端末の設定
iOS端末の設定
Windows端末の設定

補足・注意点
本設定例では認証アルゴリズムとしてSHA1認証を使用しており、SHA2認証は敢えて使用しない設定としています。
FITELnetのSHA2認証はRFC4868に準拠していますがAndroid6.0のSHA2認証は標準と異なり互換性がないため、SHA2認証が使用可能な設定ではAndroid6.0の端末と接続できません。SHA1認証を使用する設定であればAndroid6.0の端末と問題なく接続できることを確認しています。

トンネルインタフェースの設定を追加/削除/変更する際はFITELnet装置の再起動が必要になります。
従来のSA毎に1つのcrypto mapの割当が必要な設定と併用する場合は、crypto mapの数とipsec dynamic-session limitの合計値が装置最大SA数を超えないように注意してください。
クライアント端末から送信されるPPPのコントロールパケットのうち、MRUに対する動作は未サポートとなりますので、送信データサイズの最大値は各トンネルインタフェースのmtu設定で調整してください。
複数のクライアントが同一user名とpasswordを使用してL2TP/IPsecの確立を行った場合、先に接続したクライアントのみ接続可能となります。
一部のクライアント端末では、L2TP/IPsecの切断時にサーバー装置に対してIPsecのDELETEメッセージを送信しないため、該当端末からの再接続がしばらくできなくなる場合があります。

本設定例では、VPNクライアント端末側の設定にて、全ての通信をL2TP/IPsec経由とした場合に、FITELnet装置経由でのインターネット接続をすることが出来ません。
FITELnet装置経由でインターネット接続を行う場合はこちらの設定を追加してください。

構成図
コマンド設定内容
設定モード コマンド 内容
基本設定モード ipsec dynamic-session limit 同時接続するモバイル端末数を指定
aaa authentication ppp PPP セッションの認証方式( 認証方式名、認証方式、認証グループ名) を設定
ip local pool PPP を利用して通知するアドレス範囲とアドレスプール名を設定
l2tp profile L2TP プロファイル設定モードに移行
aaa local group CLIENT- データベース設定モードに移行
l2tp-ppp-template L2TP-PPP テンプレート設定モードに移行
interface tunnel トンネルインタフェース設定モードに移行
mss TCP パケットのフラグメントを抑制する為に1300 を指定
L2TP プロファイル設定モード hostname local L2TP でセッションを識別するための自装置のホスト名を設定
protocol l2tpv2 を指定
ppp accept template L2TPv2 トンネル上で収容するPPP セッションを関連付ける
tunnel protection ipsec map L2TPv2 のパケットをIPsec により保護する際に使用する、VPN セレクタを指定
L2TP-PPP テンプレート設定モード keepalive PPP LCP ECHO REQUEST メッセージの送信間隔と再送回数を設定
ppp authentication PPP の認証タイプと認証方式名を設定
pool PPP で通知するIP アドレス範囲のアドレスプール名を設定
dns PPP で通知するDNS サーバアドレスを設定
CLIENT- データベース設定モード username PPP/L2TP 認証により接続する際に使用するusername password を設定
username interface tunnel PPP/L2TP 認証により接続する際に使用するインタフェースを設定
※ユーザ名とパスワードおよび、インタフェースの組み合わせは、
ipsec dynamic-session limit コマンドで指定した数と合わせてください
IPsec 各種設定モード isakmp-negotiation
negotiation
FITELnet 装置側からのrekey を抑制するために設定( ※ 1 が最低値)
トンネルインタフェース設定モード tunnel mode L2TPv2 を指定

コマンド設定の例
(!の行はコメントです。実際に入力する必要はありません。)
この設定を利用したい方は

FITELnet側の設定

!
!
! 特権ユーザモードに移行します。
!
Router> enable
Enter password: 

Router#
!
!
! 既存(工場出荷)の設定を初期化します。
!
Router# clear working.cfg
!
!
! 基本設定モードに移行します。
!
Router# configure terminal
!
!
! ホスト名を設定します。
!
Router(config)# hostname FITELnet
!
!
! PPPoE インタフェースの各種設定をします。
!
FITELnet(config)# interface pppoe 1
FITELnet(config-if pppoe 1)# ip address 192.0.2.1
FITELnet(config-if pppoe 1)# pppoe server hikari-next
FITELnet(config-if pppoe 1)# pppoe account user@xxxx.ne.jp secret
FITELnet(config-if pppoe 1)# pppoe type lan
FITELnet(config-if pppoe 1)# ip nat inside source list 99 interface
FITELnet(config-if pppoe 1)# exit
!
!
! LAN インタフェースの各種設定をします。
!
FITELnet(config)# interface lan 1
FITELnet(config-if lan 1)# ip address 192.168.1.1 255.255.255.0
FITELnet(config-if lan 1)# ip proxy-arp
!                                 ProxyARP を有効にする
FITELnet(config-if lan 1)# exit
!
!
! ループバックインタフェースの各種設定をします。
!
FITELnet(config)# interface loopback 1
FITELnet(config-if loopback 1)# ip address 10.0.0.1
FITELnet(config-if loopback 1)# exit
!
!
! トンネルインタフェースの各種設定をします。
!
FITELnet(config)# interface tunnel 1
FITELnet(config-if tunnel 1)# tunnel mode l2tpv2
FITELnet(config-if tunnel 1)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 1)# exit
FITELnet(config)# interface tunnel 2
FITELnet(config-if tunnel 2)# tunnel mode l2tpv2
FITELnet(config-if tunnel 2)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 2)# exit
FITELnet(config)# interface tunnel 3
FITELnet(config-if tunnel 3)# tunnel mode l2tpv2
FITELnet(config-if tunnel 3)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 3)# exit
FITELnet(config)# interface tunnel 4
FITELnet(config-if tunnel 4)# tunnel mode l2tpv2
FITELnet(config-if tunnel 4)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 4)# exit
FITELnet(config)# interface tunnel 5
FITELnet(config-if tunnel 5)# tunnel mode l2tpv2
FITELnet(config-if tunnel 5)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 5)# exit
FITELnet(config)# interface tunnel 6
FITELnet(config-if tunnel 6)# tunnel mode l2tpv2
FITELnet(config-if tunnel 6)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 6)# exit
FITELnet(config)# interface tunnel 7
FITELnet(config-if tunnel 7)# tunnel mode l2tpv2
FITELnet(config-if tunnel 7)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 7)# exit
FITELnet(config)# interface tunnel 8
FITELnet(config-if tunnel 8)# tunnel mode l2tpv2
FITELnet(config-if tunnel 8)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 8)# exit
FITELnet(config)# interface tunnel 9
FITELnet(config-if tunnel 9)# tunnel mode l2tpv2
FITELnet(config-if tunnel 9)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 9)# exit
FITELnet(config)# interface tunnel 10
FITELnet(config-if tunnel 10)# tunnel mode l2tpv2
FITELnet(config-if tunnel 10)# ip address unnumbered loopback 1
FITELnet(config-if tunnel 10)# exit
!
!
! 同時接続する端末の最大数を指定します。
!
FITELnet(config)# ipsec dynamic-session limit 10
!
!
! PPP セッションの認証グループ名を指定します。
!
FITELnet(config)# aaa authentication ppp LIST1 local-group 1
!
!
! 端末に払い出すアドレス範囲を指定します。
!
FITELnet(config)# ip local pool POOL1 192.168.1.192 255.255.255.224
!
!
! L2TP トンネル設定モードへ移行します。
!
FITELnet(config)# l2tp profile 1
FITELnet(config-l2tp-profile)# hostname local LNS1
FITELnet(config-l2tp-profile)# protocol l2tpv2
FITELnet(config-l2tp-profile)# ppp accept template PPP-TMP1
FITELnet(config-l2tp-profile)# tunnel protection ipsec map MAP1
!                                 L2TPv2 のパケットをIPsecによる暗号化対象とする場合にVPN セレクタを指定します。
FITELnet(config-l2tp-profile)# exit
!
!
! L2TP-PPP テンプレート設定モードへ移行します。
!
FITELnet(config)# l2tp-ppp-template PPP-TMP1
FITELnet(config-l2tp-ppp-tmp)# keepalive 60 5
!                                 PPP LCP ECHO REQUEST メッセージの送信間隔と送信回数を指定します。
FITELnet(config-l2tp-ppp-tmp)# ppp authentication auto LIST1
!                                 PPP の認証タイプと認証方式名を指定します。
FITELnet(config-l2tp-ppp-tmp)# pool POOL1
!                                 PPP で通知するアドレス範囲のアドレスプール名を指定します。
FITELnet(config-l2tp-ppp-tmp)# exit
!
!
! CLIENT- データベース設定モードへ移行します。
!
FITELnet(config)# aaa local group 1
FITELnet(config-lg_user)# username user-xxx1@xxxx.ne.jp password secretxxx1
!                                 モバイル端末から接続する際のユーザ名とパスワードを設定します。
FITELnet(config-lg_user)# username user-xxx1@xxxx.ne.jp interface tunnel 1
FITELnet(config-lg_user)# username user-xxx2@xxxx.ne.jp password secretxxx2
FITELnet(config-lg_user)# username user-xxx2@xxxx.ne.jp interface tunnel 2
FITELnet(config-lg_user)# username user-xxx3@xxxx.ne.jp password secretxxx3
FITELnet(config-lg_user)# username user-xxx3@xxxx.ne.jp interface tunnel 3
FITELnet(config-lg_user)# username user-xxx4@xxxx.ne.jp password secretxxx4
FITELnet(config-lg_user)# username user-xxx4@xxxx.ne.jp interface tunnel 4
FITELnet(config-lg_user)# username user-xxx5@xxxx.ne.jp password secretxxx5
FITELnet(config-lg_user)# username user-xxx5@xxxx.ne.jp interface tunnel 5
FITELnet(config-lg_user)# username user-xxx6@xxxx.ne.jp password secretxxx6
FITELnet(config-lg_user)# username user-xxx6@xxxx.ne.jp interface tunnel 6
FITELnet(config-lg_user)# username user-xxx7@xxxx.ne.jp password secretxxx7
FITELnet(config-lg_user)# username user-xxx7@xxxx.ne.jp interface tunnel 7
FITELnet(config-lg_user)# username user-xxx8@xxxx.ne.jp password secretxxx8
FITELnet(config-lg_user)# username user-xxx8@xxxx.ne.jp interface tunnel 8
FITELnet(config-lg_user)# username user-xxx9@xxxx.ne.jp password secretxxx9
FITELnet(config-lg_user)# username user-xxx9@xxxx.ne.jp interface tunnel 9
FITELnet(config-lg_user)# username user-xxx10@xxxx.ne.jp password secretxxx10
FITELnet(config-lg_user)# username user-xxx10@xxxx.ne.jp interface tunnel 10
FITELnet(config-lg_user)# exit
!
! VPN 機能を有効にします。
!
FITELnet(config)# vpn enable
!
!
! VPN 通信時のログの記録を有効にします。
!
FITELnet(config)# vpnlog enable
!
!
! Phase1 ポリシーの設定を行ないます。
!
FITELnet(config)# crypto isakmp policy 1
FITELnet(config-isakmp)# authentication prekey
FITELnet(config-isakmp)# key ascii secret
FITELnet(config-isakmp)# lifetime 90000
FITELnet(config-isakmp)# nat-traversal enable rfc3948-also
FITELnet(config-isakmp)# negotiation-mode main
FITELnet(config-isakmp)# exit
!
!
! Phase2 ポリシーの設定を行ないます。
!
FITELnet(config)# crypto map MAP1 1
FITELnet(config-crypto-map)# map-type-dynamic
!                                 map-type-dynamic を指定します。
FITELnet(config-crypto-map)# match address 1
FITELnet(config-crypto-map)# set peer isakmp-policy 1
FITELnet(config-crypto-map)# set security-association lifetime seconds 90000
FITELnet(config-crypto-map)# set transform-set P2-POLICY
FITELnet(config-crypto-map)# mode transport
FITELnet(config-crypto-map)# exit
FITELnet(config)# crypto security-association
FITELnet(config-crypto-sa)# isakmp-negotiation respond 1
!                                 Phase1 SA のrekey 開始時間をlifetime 満了の1秒前にします。
FITELnet(config-crypto-sa)# negotiation respond 1
FITELnet(config-crypto-sa)# exit
!
!
! ProxyDNSの設定を行います。
!
FITELnet(config)# proxydns mode v4
!
!
! TCP パケットのフラグメント抑制のために、各インタフェースのMSS値を1300 に設定します。
!
FITELnet(config)# mss lan 1 1300
FITELnet(config)# mss tunnel 1 1300
FITELnet(config)# mss tunnel 2 1300
FITELnet(config)# mss tunnel 3 1300
FITELnet(config)# mss tunnel 4 1300
FITELnet(config)# mss tunnel 5 1300
FITELnet(config)# mss tunnel 6 1300
FITELnet(config)# mss tunnel 7 1300
FITELnet(config)# mss tunnel 8 1300
FITELnet(config)# mss tunnel 9 1300
FITELnet(config)# mss tunnel 10 1300
!
!
! デフォルトルートの設定を行います。
!
FITELnet(config)# ip route 0.0.0.0 0.0.0.0 pppoe 1
!
!
! アクセスリストでNAT対象とするアドレス範囲を指定します。
!
FITELnet(config)# access-list 99 permit 192.168.1.0 0.0.0.191
FITELnet(config)# access-list 99 permit 192.168.1.224 0.0.0.31
FITELnet(config)# access-list 99 permit 10.0.0.1
!
!
! VPNセレクタの設定を行ないます。
!
FITELnet(config)# ipsec access-list 1 ipsec ip any any
FITELnet(config)# ipsec access-list 64 bypass ip any any
!
!
! Phase2ポリシーの設定を行ないます。
!
FITELnet(config)# ipsec transform-set P2-POLICY esp-aes-256 esp-aes-192 esp-aes-128 esp-3des esp-des
 esp-sha-hmac esp-md5-hmac
!
! 特権ユーザモードに戻ります。
!
FITELnet(config)# end
!
!
! 設定を保存します。
!
FITELnet# save SIDE-A.cfg
% saving working-config
% finished saving

FITELnet#
!
!
! 設定を有効にするために再起動します。
!
FITELnet# reset
Are you OK to cold start?(y/n) y
設定状態の確認

端末からL2TP/IPsec接続してSAが確立することを確認します。
Phase1 SAの情報を確認します。

確認内容 画面表示例
Phase1 SA の情報を表示



接続状態
FITELnet#show crypto isakmp sa
ISAKMP SA
       current sa : 1

[2001] 203.0.113.218/4500
         <--> 192.0.2.1/4500
     <R> Main Mode UP pre-shared key AES(256bits) SHA
     Lifetime : 28800secs
     Current  : 5secs,1kbytes
     mcfg config-mode: off
     mcfg addr: off
     mcfg apl-version:
     IKE Keepalive: dpd
     ICMP Keepalive: off
     release on addr-change: off

Phase2 SAの情報を確認します。

確認内容 画面表示例
Phase2 SA の情報を表示




接続状態
FITELnet#show crypto ipsec sa
IPSEC SA
       current insa : 1
       current outsa : 1

[ 1] 192.168.101.1,255.255.255.255 UDP ALL
                <--> 192.0.2.1,255.255.255.255 UDP 1701
     peer: 203.0.113.218/4500    ipsecif: 2001

     <R> UP UDP_CAPSULE Transport ESP AES(256bits) HMAC-SHA PFS:off
     Lifetime: 28800secs
     Anti-Replay: Enable
     O-SPI: 0x0d4c77a1        Current: 60secs,2kbytes
      out packet     : 14            error packet      : 0
     I-SPI: 0x7d2512d9        Current: 60secs,2kbytes
      in packet      : 13            auth packet       : 13
      decrypt packet : 13            discard packet    : 0
      replay packet  : 0             auth error packet : 0

L2TPv2のセッション情報を確認します。

確認内容 画面表示例
L2TPv2 セッション情報を表示
FITELnet#show l2tpv2 session

L2TP Session Information Total tunnels 1 sessions 1

LocID  RemID  Loc   Username        Tunnel  IPsec     State   Last Chg
              TunID                 I/F Num I/F Num
16514  53760  8953  --              1       2001      est     00:04:13

L2TPv2-PPPのユーザ情報を確認します。

確認内容 画面表示例
L2TPv2-PPP のユーザ情報を表示

接続端末のユーザ情報と割り当てアドレスを確認
FITELnet#show l2tpv2-ppp

TunnelIF IPsecIF RemoteIP         Username Uptime
2        2001    192.168.1.192    user-xxx1@xxxx.ne.jp  00:04:22

トンネルインタフェースの情報を確認します。

確認内容 画面表示例
トンネルインタフェースの情報を表示 FITELnet#show interface tunnel

TUNNEL1 is up
 Hardware is Tunnel
 IP address TUNNEL1 is 10.0.0.1 (LOOP1)
 Encapsulation TUNNEL, point-to-point link
 Tunnel source 192.0.2.1
 Tunnel destination 203.0.113.218
 Tunnel protocol/transport PPP/L2TPv2 over ipsecif 2001
 Last clearing of “show interface” packet counters never
 Statistics:
 0 packets input
   0 bytes input, 0 errors
   0 unicasts, 0 broadcasts, 0 multicasts
   0 discards, 0 unknown protocol
 0 packets output
   0 bytes output, 0 errors
   0 unicasts, 0 broadcasts, 0 multicasts
   0 discards

経路情報を確認します。

確認内容 画面表示例
経路情報を情報を表示













トンネルインタフェースの経路を確認
FITELnet#show ip route
Max entry: 60000 (Commonness in IPv4 and IPv6)
Active entry:6 (IPv4), 2 (IPv6) Peak:6

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF
       B - BGP, I - IKE, U - SA-UP, E - EventAction
       A - AutoConfig, P - l2tp-ppp
       > - selected route, * - FIB route, p - stale info.

S> * 0.0.0.0/0 [1/0] is directly connected, PPPoE1
C> * 10.0.0.1/32 is directly connected, LOOP1
C> * 198.51.100.242/32 is directly connected, PPPoE1
C> * 127.0.0.0/8 is directly connected, LOOP0
C> * 192.168.1.0/24 is directly connected, LAN
P> * 192.168.1.192/32 [1/0] is directly connected, TUNNEL1
K> * 224.0.0.0/4 via 127.0.0.1, LOOP0

vpnlog情報を確認します。

確認内容 画面表示例
ログ情報の表示




vpn enable 状態

isakmp 確立状態







ipsec 確立状態
FITELnet#show vpnlog

00000 0000:00:00.00 2016/02/08 (mon) 19:29:57 0 00000000 56a72780
  #BOOT[V01.02(00)-012916] SIDE-A.frm SIDE-A.cfg
00001 0000:00:02.60 2016/02/08 (mon) 19:30:01 16 10000002 00000000
  vpn enabled.
00002 0000:00:41.40 2016/02/08 (mon) 19:30:40 16 10000320 00000000
  IKE SA<R> 2001/- 203.0.113.218/4500
00003 0000:00:41.40 2016/02/08 (mon) 19:30:40 16 10000320 00000000
  72ad3b527d30a15b df0f9e6bd2000000
00004 0000:00:41.41 2016/02/08 (mon) 19:30:40 16 100003a7 00000000
  Recv INIT IKE SA 2001/- 203.0.113.218/4500
00005 0000:00:41.41 2016/02/08 (mon) 19:30:40 16 100003a7 00000000
  72ad3b527d30a15b df0f9e6bd2000000
00006 0000:00:42.42 2016/02/08 (mon) 19:30:41 16 10000220 00000000
  IPSEC SA<R> 2001/1 203.0.113.218/4500
00007 0000:00:42.42 2016/02/08 (mon) 19:30:41 16 10000220 00000000
  0d4c77a1 7d2512d9

slog情報を確認します。

確認内容 画面表示例
ログ情報の表示






PPPoE の接続

L2TP セッションの確立



L2TP PPP セッションの確立
FITELnet#show slog

00000 0000:00:00.00 2016/02/08 (mon) 19:29:57 0 00000000 56a72780
  #BOOT[V01.02(00)-012916] SIDE-A.frm SIDE-A.cfg
00001 0000:00:04.15 2016/02/08 (mon) 19:30:02 50 00000000 00000000
  ssh-server disabled.
00002 0000:00:34.96 2016/02/08 (mon) 19:30:33 5 03130003 08050a00
  PPPoE1 Connected
00003 0000:00:43.36 2016/02/08 (mon) 19:30:42 16 10000002 00000005
  L2TP CC(2/A/R) 203.0.113.218 P:1 ID:8953
00004 0000:00:43.38 2016/02/08 (mon) 19:30:42 16 10000002 00000005
  L2TP Se(2/A/R) 203.0.113.218 I:-/2001 ID:16514
00005 0000:00:43.54 2016/02/08 (mon) 19:30:42 16 10000000 00000005
  L2TP/PPP UP 192.168.1.192 I:2/2001 U:user-xxx1@xxxx.ne.jp
補足設定

VPNクライアント端末側の設定にて、全ての通信をL2TP/IPsec経由とした場合にFITELnet装置経由でインターネット接続したい場合は以下の設定を追加してください。

設定手順
!
! 基本設定モードに移行します。
configure terminal
!
! FITELnet装置経由のインターネット接続をする際にNAT対象を追加
access-list 99 permit 192.168.1.192 0.0.0.31
!
! FITELnet装置経由のインターネット接続をする際にDNSを追加
l2tp-ppp-template PPP-TMP1
 dns 10.0.0.1
exit
!
end
All Rights Reserved, Copyright(C) FURUKAWA ELECTRIC CO., LTD. 2016