# 19. L2TPv2/IPsec設定

## 19.1. L2TPv2/IPsecを使用する

L2TP/IPsecを使用してパソコンやスマートフォンなどのスマートデバイスから直接VPN接続する例です。
※Android 12以降ではL2TP/IPsecを利用することはできません。

### 19.1.1. 設定

#### 19.1.1.1. 本装置の設定

    Router# configure
    Router(config)# ip route default GigaEthernet0.1
    Router(config)# ike nat-traversal
    Router(config)# ike proposal ike-proposal-a encryption aes-256 hash sha2-512 group 3072-bit
    Router(config)# ike proposal ike-proposal-b encryption aes-192 hash sha2-384 group 2048-bit
    Router(config)# ike proposal ike-proposal-c encryption aes hash sha group 1024-bit
    Router(config)# ike policy ike-policy peer any key psk mode aggressive ike-proposal-a,ike-proposal-b,ike-proposal-c
    Router(config)# ipsec autokey-proposal ipsec-proposal-a esp-aes-256 esp-sha2-512
    Router(config)# ipsec autokey-proposal ipsec-proposal-b esp-aes-192 esp-sha2-384
    Router(config)# ipsec autokey-proposal ipsec-proposal-c esp-aes esp-sha
    Router(config)# ipsec dynamic-map ipsec-policy ipv4 ipsec-proposal-a,ipsec-proposal-b,ipsec-proposal-c
    Router(config)# proxy-dns server 198.51.100.1 priority 110
    Router(config)# proxy-dns server 198.51.100.2 priority 90
    Router(config)# ppp profile ppp-profile
    Router(config-ppp-ppp-profile)# authentication myname user@example.com
    Router(config-ppp-ppp-profile)# authentication password user@example.com ppp-password
    Router(config-ppp-ppp-profile)# exit
    Router(config)# ppp profile lns
    Router(config-ppp-lns)# authentication request chap
    Router(config-ppp-lns)# authentication password vpn-name vpn-password
    Router(config-ppp-lns)# lcp pfc
    Router(config-ppp-lns)# lcp acfc
    Router(config-ppp-lns)# ipcp provide-remote-dns 192.168.0.254
    Router(config-ppp-lns)# ipcp provide-ip-address range 192.168.0.201 192.168.0.250
    Router(config-ppp-lns)# exit
    Router(config)# ip dhcp profile dhcp-profile
    Router(config-dhcp-dhcp-profile)# dns-server 192.168.0.254
    Router(config-dhcp-dhcp-profile)# exit
    Router(config)# interface GigaEthernet2.0
    Router(config-GigaEthernet2.0)# ip address 192.168.0.254/24
    Router(config-GigaEthernet2.0)# ip proxy-arp
    Router(config-GigaEthernet2.0)# ip dhcp enable
    Router(config-GigaEthernet2.0)# ip dhcp binding dhcp-profile
    Router(config-GigaEthernet2.0)# proxy-dns ip enable
    Router(config-GigaEthernet2.0)# no shutdown
    Router(config-GigaEthernet2.0)# exit
    Router(config)# interface GigaEthernet0.1
    Router(config-GigaEthernet0.1)# encapsulation pppoe
    Router(config-GigaEthernet0.1)# ppp binding ppp-profile
    Router(config-GigaEthernet0.1)# ip address 203.0.113.1/32
    Router(config-GigaEthernet0.1)# ip napt enable
    Router(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 udp 500
    Router(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 50
    Router(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 udp 4500
    Router(config-GigaEthernet0.1)# no shutdown
    Router(config-GigaEthernet0.1)# exit
    Router(config)# interface Tunnel0.0
    Router(config-Tunnel0.0)# ppp binding lns
    Router(config-Tunnel0.0)# tunnel mode l2tp-lns ipsec
    Router(config-Tunnel0.0)# ip unnumbered GigaEthernet2.0
    Router(config-Tunnel0.0)# ip tcp adjust-mss auto
    Router(config-Tunnel0.0)# ipsec policy transport ipsec-policy
    Router(config-Tunnel0.0)# proxy-dns ip enable
    Router(config-Tunnel0.0)# no shutdown
    Router(config-Tunnel0.0)# exit
    Router(config)# interface Tunnel1.0
    Router(config-Tunnel1.0)# ppp binding lns
    Router(config-Tunnel1.0)# tunnel mode l2tp-lns ipsec
    Router(config-Tunnel1.0)# ip unnumbered GigaEthernet2.0
    Router(config-Tunnel1.0)# ip tcp adjust-mss auto
    Router(config-Tunnel1.0)# ipsec policy transport ipsec-policy
    Router(config-Tunnel1.0)# proxy-dns ip enable
    Router(config-Tunnel1.0)# no shutdown
    Router(config-Tunnel1.0)# exit
    Router(config)#

### 19.1.2. 解説

    ip route default GigaEthernet0.1

デフォルトルートをPPPoEインタフェースに設定します。

    ike nat-traversal

NATトラバーサル機能を有効化します。

    ike proposal ike-proposal-a encryption aes-256 hash sha2-512 group 3072-bit
    ike proposal ike-proposal-b encryption aes-192 hash sha2-384 group 2048-bit
    ike proposal ike-proposal-c encryption aes hash sha group 1024-bit
    ike policy ike-policy peer any key psk mode aggressive ike-proposal-a,ike-proposal-b,ike-proposal-c

ISAKMP SA確立に使用するプロポーザルを指定します。
プロポーザルの設定はクライアントによってサポートが異なるため、複数の設定を用意します。

    ipsec autokey-proposal ipsec-proposal-a esp-aes-256 esp-sha2-512
    ipsec autokey-proposal ipsec-proposal-b esp-aes-192 esp-sha2-384
    ipsec autokey-proposal ipsec-proposal-c esp-aes esp-sha
    ipsec dynamic-map ipsec-policy ipv4 ipsec-proposal-a,ipsec-proposal-b,ipsec-proposal-c

IPsec SA確立に使用するプロポーザルを指定します。
IKEプロポーザルと同様に複数の設定を用意します。

    ppp profile lns
      authentication request chap
      authentication password vpn-name vpn-password
      ipcp provide-remote-dns 192.168.0.254
      ipcp provide-ip-address range 192.168.0.201 192.168.0.250
    interface Tunnel0.0
      ppp binding lns
    interface Tunnel1.0
      ppp binding lns

L2TP接続に必要なユーザー名とパスワードをPPPプロファイルに設定します。
このプロファイルはリモートクライアントからの接続用にトンネルインタフェースへ関連付けします。
接続するリモートクライアント分トンネルインタフェースを作成する必要があります。
リモートクライアントからVPN接続する際のユーザー名とパスワードを、"authentication password"コマンドから設定します。
リモートクライアント側へ割り当てるDNSサーバーのアドレスとIPアドレスの範囲も設定できます。

    ppp profile lns
      lcp pfc
      lcp acfc

LCP(リンク制御プロトコル)のPFC(Protocol-Field-Compression)とACFC(Address-and-Control-Field-Compression)を有効にします。

    interface Tunnel0.0
      tunnel mode l2tp-lns ipsec
      ipsec policy transport ipsec-policy

トンネルモードをL2TP-LNS IPsecに設定します。
トンネルインタフェースにIPsecのポリシー名を関連付けます。

## 19.2. ダイナミックDNSを使用したL2TPv2/IPsec接続

L2TP/IPsecを使用してパソコンやスマートフォンなどのスマートデバイスから直接VPN接続する例です。
※Android 12以降ではL2TP/IPsecを利用することはできません。
NetMeisterのダイナミックDNSを利用して接続することもできます。
グループIDとグループパスワードは、事前に以下の内容でNetMeisterに登録済みとします。

### 19.2.1. 設定

#### 19.2.1.1. 本装置の設定

    Router# configure
    Router(config)#hostname IX-R2520
    IX-R2520(config)# ip route default GigaEthernet0.1
    IX-R2520(config)# ike nat-traversal
    IX-R2520(config)# ike proposal ike-proposal-a encryption aes-256 hash sha2-512 group 3072-bit
    IX-R2520(config)# ike proposal ike-proposal-b encryption aes-192 hash sha2-384 group 2048-bit
    IX-R2520(config)# ike proposal ike-proposal-c encryption aes hash sha group 1024-bit
    IX-R2520(config)# ike policy ike-policy peer any key psk mode aggressive ike-proposal-a,ike-proposal-b,ike-proposal-c
    IX-R2520(config)# ipsec autokey-proposal ipsec-proposal-a esp-aes-256 esp-sha2-512
    IX-R2520(config)# ipsec autokey-proposal ipsec-proposal-b esp-aes-192 esp-sha2-384
    IX-R2520(config)# ipsec autokey-proposal ipsec-proposal-c esp-aes esp-sha
    IX-R2520(config)# ipsec dynamic-map ipsec-policy ipv4 ipsec-proposal-a,ipsec-proposal-b,ipsec-proposal-c
    IX-R2520(config)# nm ip enable
    IX-R2520(config)# nm account sample-group password plain sample-password
    IX-R2520(config)# nm sitename tokyo
    IX-R2520(config)# ppp profile ppp-profile
    IX-R2520(config-ppp-ppp-profile)# authentication myname user@example.com
    IX-R2520(config-ppp-ppp-profile)# authentication password user@example.com ppp-password
    IX-R2520(config-ppp-ppp-profile)# exit
    IX-R2520(config)# ppp profile lns
    IX-R2520(config-ppp-lns)# authentication request chap
    IX-R2520(config-ppp-lns)# authentication password vpn-name vpn-password
    IX-R2520(config-ppp-lns)# lcp pfc
    IX-R2520(config-ppp-lns)# lcp acfc
    IX-R2520(config-ppp-lns)# ipcp provide-remote-dns 192.168.0.254
    IX-R2520(config-ppp-lns)# ipcp provide-ip-address range 192.168.0.201 192.168.0.250
    IX-R2520(config-ppp-lns)# exit
    IX-R2520(config)# ip dhcp profile dhcp-profile
    IX-R2520(config-dhcp-dhcp-profile)# dns-server 192.168.0.254
    IX-R2520(config-dhcp-dhcp-profile)# exit
    IX-R2520(config)# interface GigaEthernet2.0
    IX-R2520(config-GigaEthernet2.0)# ip address 192.168.0.254/24
    IX-R2520(config-GigaEthernet2.0)# ip proxy-arp
    IX-R2520(config-GigaEthernet2.0)# ip dhcp enable
    IX-R2520(config-GigaEthernet2.0)# ip dhcp binding dhcp-profile
    IX-R2520(config-GigaEthernet2.0)# proxy-dns ip enable
    IX-R2520(config-GigaEthernet2.0)# no shutdown
    IX-R2520(config-GigaEthernet2.0)# exit
    IX-R2520(config)# interface GigaEthernet0.1
    IX-R2520(config-GigaEthernet0.1)# encapsulation pppoe
    IX-R2520(config-GigaEthernet0.1)# ppp binding ppp-profile
    IX-R2520(config-GigaEthernet0.1)# ip address ipcp
    IX-R2520(config-GigaEthernet0.1)# ip napt enable
    IX-R2520(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 udp 500
    IX-R2520(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 50
    IX-R2520(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 udp 4500
    IX-R2520(config-GigaEthernet0.1)# no shutdown
    IX-R2520(config-GigaEthernet0.1)# exit
    IX-R2520(config)# interface Tunnel0.0
    IX-R2520(config-Tunnel0.0)# ppp binding lns
    IX-R2520(config-Tunnel0.0)# tunnel mode l2tp-lns ipsec
    IX-R2520(config-Tunnel0.0)# ip unnumbered GigaEthernet2.0
    IX-R2520(config-Tunnel0.0)# ip tcp adjust-mss auto
    IX-R2520(config-Tunnel0.0)# ipsec policy transport ipsec-policy
    IX-R2520(config-Tunnel0.0)# proxy-dns ip enable
    IX-R2520(config-Tunnel0.0)# no shutdown
    IX-R2520(config-Tunnel0.0)# exit
    IX-R2520(config)# interface Tunnel1.0
    IX-R2520(config-Tunnel1.0)# ppp binding lns
    IX-R2520(config-Tunnel1.0)# tunnel mode l2tp-lns ipsec
    IX-R2520(config-Tunnel1.0)# ip unnumbered GigaEthernet2.0
    IX-R2520(config-Tunnel1.0)# ip tcp adjust-mss auto
    IX-R2520(config-Tunnel1.0)# ipsec policy transport ipsec-policy
    IX-R2520(config-Tunnel1.0)# proxy-dns ip enable
    IX-R2520(config-Tunnel1.0)# no shutdown
    IX-R2520(config-Tunnel1.0)# exit
    IX-R2520(config)#

### 19.2.2. 解説

    ip route default GigaEthernet0.1

デフォルトルートをPPPoEインタフェースに設定します。

    ike nat-traversal

NATトラバーサル機能を有効化します。

    ike proposal ike-proposal-a encryption aes-256 hash sha2-512 group 3072-bit
    ike proposal ike-proposal-b encryption aes-192 hash sha2-384 group 2048-bit
    ike proposal ike-proposal-c encryption aes hash sha group 1024-bit
    ike policy ike-policy peer any key psk mode aggressive ike-proposal-a,ike-proposal-b,ike-proposal-c

ISAKMP SA確立に使用するプロポーザルを指定します。
プロポーザルの設定はクライアントによってサポートが異なるため、複数の設定を用意します。

    ipsec autokey-proposal ipsec-proposal-a esp-aes-256 esp-sha2-512
    ipsec autokey-proposal ipsec-proposal-b esp-aes-192 esp-sha2-384
    ipsec autokey-proposal ipsec-proposal-c esp-aes esp-sha
    ipsec dynamic-map ipsec-policy ipv4 ipsec-proposal-a,ipsec-proposal-b,ipsec-proposal-c

IPsec SA確立に使用するプロポーザルを指定します。
IKEプロポーザルと同様に複数の設定を用意します。

    ppp profile lns
      authentication request chap
      authentication password vpn-name vpn-password
      ipcp provide-remote-dns 192.168.0.254
      ipcp provide-ip-address range 192.168.0.201 192.168.0.250
    interface Tunnel0.0
      ppp binding lns
    interface Tunnel1.0
      ppp binding lns

L2TP接続に必要なユーザー名とパスワードをPPPプロファイルに設定します。
このプロファイルはリモートクライアントからの接続用にトンネルインタフェースへ関連付けします。
接続するリモートクライアント分トンネルインタフェースを作成する必要があります。
リモートクライアントからVPN接続する際のユーザー名とパスワードを、"authentication password"コマンドから設定します。
リモートクライアント側へ割り当てるDNSサーバーのアドレスとIPアドレスの範囲も設定できます。

    ppp profile lns
      lcp pfc
      lcp acfc

LCP(リンク制御プロトコル)のPFC(Protocol-Field-Compression)とACFC(Address-and-Control-Field-Compression)を有効にします。

    interface Tunnel0.0
      tunnel mode l2tp-lns ipsec
      ipsec policy transport ipsec-policy

トンネルモードをL2TP-LNS IPsecに設定します。
トンネルインタフェースにIPsecのポリシー名を関連付けます。