[index] AT-AR2050V/AT-AR3050S/AT-AR4050S コマンドリファレンス 5.5.0

# 設定例集#91: ダイナミックDNSサービスを利用したホスト名（FQDN）によるIPv4 over IPv6 IPsec VPN（拠点側はIPv6モバイルデータ通信サービスを利用）

構成
設定開始前に
自動設定の確認と削除
システム時刻の設定
ルーターAの設定
ルーターBの設定
設定の保存
ファイアウォールログについて
ルーターAのコンフィグ
ルーターBのコンフィグ
ルーターAのトリガースクリプト
ルーターBのトリガースクリプト

本設定例では、ソフトイーサ社が提供する「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」サービスを利用して、フレッツ・光ネクスト網とIPv6モバイルデータ通信サービス網内のIPv6折り返し通信でIPv4 over IPv6 IPsec VPNを構築し、拠点間をレイヤー3で接続する手順を説明します。
IPv6ネットワーク上にVPNを構築するには接続先VPNルーターのグローバルIPv6アドレスを指定する必要がありますが、ダイナミックDNSサービスを利用すれば、VPNの接続先をIPv6アドレスではなく、ダイナミックDNSサービスサイトに登録したホスト名（FQDN）で指定できるようになります。これにより、すべての拠点が動的IPv6アドレスの場合でも、VPNを構築できるようになります。
ルーターは起動時に自身のWAN側インターフェース情報（IPv6アドレス）をダイナミックDNSサーバーに登録します。そして、その後IPv6アドレスが変更されたときには、自動的に登録アドレスを更新します。これにより、DNSサーバーはつねにルーターのホスト名に対応する最新のIPv6アドレスを保持することができます。

## 構成

| ルーターA （本社） | ルーターB （支社）
ルーターの基本設定
WAN側物理インターフェース | eth1 | cellular0（USB型データ通信端末）
WAN側（eth1/ppp0 over cellular0）IPv6アドレス | 自動設定（SLAAC） | 自動設定（SLAAC）
LAN側（vlan1）IPアドレス | 192.168.10.1/24 | 192.168.20.1/24
IKEフェーズ1（ISAKMP）設定
IKEバージョン | IKEv2
ダイナミックDNSサービス情報
専用更新ホスト名* | update-0123456789abcdefff.i.open.ad.jp | update-fffedcba9876543210.i.open.ad.jp
ホスト名（FQDN） | sample1.i.open.ad.jp | sample2.i.open.ad.jp
* ルーターが取得したIPv6アドレスを「OPEN IPv6 ダイナミック DNS for フレッツ・光ネクスト」サービスに登録したホスト名（FQDN）と関連付けるには、「専用更新ホスト名」を使用します。 * ルーターが使用するホスト名（FQDN）や専用更新ホスト名は、あらかじめ取得してあるものとします。

[事前共有鍵]

- ルーターA・B間: secret

■ ダイナミックDNSサーバーへのIPv6アドレス登録（更新）までの流れ：

1. ルーターA、Bは、ダイナミックDNSサーバーのIPv6アドレス情報を知るため、DHCPv6で取得したDNSサーバー宛に名前解決を行います。
2. 解決したIPv6アドレス宛にアップデートパケット（IPv6 Ping）を投げ、自身のIPv6アドレスをダイナミックDNSサーバーへ登録します。

■ IPsec通信開始までの流れ：

1. Pingポーリング機能による対向機器のLAN側IPアドレス宛のPing通信が発生すると、ルーターのトンネルインターフェースに設定されている宛先FQDNアドレスの名前解決をするため、DHCPv6で取得したDNSサーバー宛に問い合わせを行います。
2. 名前解決後、取得したIPv6アドレス情報でIPsecの接続を開始します。

■ 障害 復旧時：

1. ルーターA、BでPingポーリングがDOWNすると、トリガー20が追加され、tunnelインターフェースの終点IPv6アドレスの更新とISAKMP SAの削除を1分間隔で実行します。
2. ルーターA、BはダイナミックDNSサーバーにアップデートパケット（IPv6 Ping）を投げ、自身のIPv6アドレスをダイナミックDNSサーバーへ登録します。
3. ルーターのトンネルインターフェースに設定されている宛先FQDNアドレスの名前解決をするため、DHCPv6で取得したDNSサーバー宛に問い合わせを行います。
4. 名前解決後、取得したIPv6アドレス情報でIPsecの接続を開始します。
5. IPsec接続が完了すると、ルーターA、BでPingポーリングがUPし、トリガー20が削除されます。

## 設定開始前に

### 自動設定の確認と削除

本設定例に掲載されているコマンドは、設定がまったく行われていない本製品の初期状態（スタートアップコンフィグなしで起動した状態）から入力することを前提としています。
そのため、通常は erase startup-config を実行し、スタートアップコンフィグが存在しない状態で起動してから、設定を始めてください。
ただし、本製品はスタートアップコンフィグなしで起動した場合でも、特定の条件を満たすと自動的な設定を行うことがあるため、その場合は設定例にしたがってコマンドを入力しても、コマンドがエラーになったり、全体として意図した動作にならない可能性があります。
これを避けるため、設定開始にあたっては次のいずれかの方法をとることをおすすめします。

- ネットワークケーブルを接続せずに起動する。
  起動時に自動設定が実行されるための条件の一つに、特定インターフェースのリンクアップがあります。
  ネットワークケーブルを接続しない状態で起動することにより、自動設定の適用を回避できます。
- 自動設定を手動で削除してから設定を行う。
  前記の方法を採用できず自動設定が適用されてしまった場合は、「自動的な設定内容の削除」にしたがって、これらを手動で削除してから設定を開始してください。

自動設定が行われる条件などの詳細については、AMF応用編のAMFネットワーク未検出時の拡張動作をご参照ください。

### システム時刻の設定

ログなどの記録日時を正確に保ち、各種機能を適切に動作させるため、システム時刻は正確にあわせて運用することをおすすめします。
ご使用の環境にあわせ、次のいずれかの方法でシステム時刻を設定してください。

- 手動で設定する方法 - 「運用・管理」/「システム」
- NTPで自動設定する方法 - 「運用・管理」/「NTP」

## ルーターAの設定

1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル（RSTP）を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
   スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。

       no spanning-tree rstp enable

2. WANポートeth1でIPv6のステートレスアドレス自動設定（SLAAC）を有効にします。これにはipv6 enableコマンドを使います。
   この設定により、ルーターから受信したRAのプレフィックス情報にもとづいてeth1のIPv6アドレスが自動設定されます。
   また、DNSサーバーアドレスもDHCPv6サーバーから自動取得します。
   IPv6インターフェースの詳細は「IPv6」/「IPv6インターフェース」をご覧ください。

       interface eth1
        ipv6 enable

3. LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
   IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。

       interface vlan1
        ip address 192.168.10.1/24

4. IPv6パケット転送機能を有効化します。これにはipv6 forwardingコマンドを使います。

       ipv6 forwarding

5. ファイアウォールやNATのルール作成時に使うエンティティー（通信主体）を定義します。
   エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
   外部ネットワークを表すゾーン「ipv6-internet」を作成します。
   これには、zone、network、ipv6 subnet、host、ipv6 addressの各コマンドを使います。

       zone ipv6-internet
        network wan
         ipv6 subnet ::/0 interface eth1
         host eth1
          ipv6 address dynamic interface eth1

6. 内部ネットワークを表すゾーン「ipv4-internal」を作成します。
   前記コマンドに加え、ここではip subnetコマンドも使います。

       zone ipv4-internal
        network lan
         ip subnet 172.16.0.0/30
         ip subnet 192.168.0.0/16

7. ファイアウォールのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
   これには、application、protocol、dportの各コマンドを使います。
   アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
   DHCPv6パケットを表すカスタムアプリケーション「dhcpv6」を定義します。

       application dhcpv6
        protocol udp
        dport 546 to 547

8. IPsecのESPパケットを表すカスタムアプリケーション「esp」を定義します。

       application esp
        protocol 50

9. ICMPv6パケットを表すカスタムアプリケーション「icmpv6」を定義します。

       application icmpv6
        protocol ipv6-icmp

10. ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。

        application isakmp
         protocol udp
         dport 500

11. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewall、rule、protectの各コマンドを使います。
    ・rule 10 - 本製品のWAN側インターフェースからのIPv6通信を許可します
    ・rule 20 - ISAKMPパケットを許可します
    ・rule 30 - IPsec（ESP）パケットを許可します
    ・rule 40 - DHCPv6パケットを許可します
    ・rule 50 - ICMPv6パケットを許可します
    ・rule 100 - 内部から内部へのIPv4通信を許可します
    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。

        firewall
         rule 10 permit any from ipv6-internet.wan.eth1 to ipv6-internet
         rule 20 permit isakmp from ipv6-internet to ipv6-internet.wan.eth1
         rule 30 permit esp from ipv6-internet to ipv6-internet.wan.eth1
         rule 40 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.eth1
         rule 50 permit icmpv6 from ipv6-internet to ipv6-internet.wan.eth1
         rule 100 permit any from ipv4-internal to ipv4-internal
         protect

12. 対向ルーターとの間で使用するISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。

        crypto isakmp key secret policy tunnel0

13. IPv4 over IPv6 IPsecトンネルインターフェースtunnel0を作成します。
    トンネルインターフェースはinterfaceコマンドで作成し、以下の設定を行います。
    ・トンネルインターフェースから送信するデリバリーパケットの始点（自装置）アドレス（tunnel source）
    ・トンネルインターフェースから送信するデリバリーパケットの終点（対向装置）アドレス（tunnel destination）
    ・保護対象パケット（トラフィックセレクター）のローカルアドレス（tunnel local selector）
    ・保護対象パケット（トラフィックセレクター）のリモートアドレス（tunnel remote selector）
    ・トンネルインターフェースに対するIPsec保護の適用（tunnel protection ipsec）
    ・トンネリング方式（tunnel mode ipsec）
    ・トンネルインターフェースのIPアドレス（ip address）
    ・トンネルインターフェースにおけるMSS書き換え設定（ip tcp adjust-mss）
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。

        interface tunnel0
         tunnel source eth1
         tunnel destination sample2.i.open.ad.jp
         tunnel local selector 1 0.0.0.0/0
         tunnel remote selector 1 0.0.0.0/0
         tunnel protection ipsec
         tunnel mode ipsec ipv6
         ip address 172.16.0.1/30
         ip tcp adjust-mss pmtu

14. トンネルインターフェース tunnel0 経由での対向ルーターへの接続性を監視するPingポーリング「1」を作成します。
    これには、ping-poll、ip、up-count、fail-count、sample-size、activeの各コマンドを使います。
    Pingポーリングの詳細は「IP付加機能」/「Pingポーリング」をご覧ください。

        ping-poll 1
         ip 172.16.0.2
         up-count 3
         fail-count 3
         sample-size 3
         active

15. 定期実行トリガーとPingポーリングトリガーを作成します。
    これには、trigger、type periodic、type ping-poll、scriptの各コマンドを使います。
    ・trigger 1 - 1分おきにダイナミックDNSサービスの更新専用ホスト宛てにアップデートパケット（IPv6 Ping）を送信し、自身のIPv6アドレスをダイナミックDNSサーバーに登録・更新するopen_ddns.scpスクリプトを実行する
    ・trigger 10 - tunnel0 経由での対向ルーターへの接続性が失われた場合に、trigger 20を作成することで 1分おきに FQDN での再接続を試みる periodic-update.scpスクリプトを実行する
    ・trigger 11 - tunnel0 経由での対向ルーターへの接続性が回復した場合に、trigger 20を削除することで 1分おきの再接続を停止する periodic-update-delete.scpスクリプトを実行する
    ・trigger 20 - ISAKMP SA を強制的に削除し、対向ルーターのFQDNを解決した上で再接続を試みる host-change.scpスクリプトを1分おきに実行する（trigger 10によって作成・起動され、trigger 11によって削除・停止される）
    トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。

        trigger 1
         type periodic 1
         script 1 open_ddns.scp
        trigger 10
         type ping-poll 1 down
         script 1 periodic-update.scp
        trigger 11
         type ping-poll 1 up
         script 1 periodic-update-delete.scp

16. ルーターBのLAN側（192.168.20.0/24）への経路を設定します。これにはip routeコマンドを使います。
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。

        ip route 192.168.20.0/24 tunnel0

17. 以上で設定は完了です。

        end

## ルーターBの設定

1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル（RSTP）を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
   スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。

       no spanning-tree rstp enable

2. USB型データ通信端末cellular0上にPPPインターフェースppp0を作成し、アクセスポイント名（APN）と呼ばれる接続先情報を設定します。
   また、USB型データ通信端末上でのIPv6通信を有効にします。これには、encapsulation ppp、apn、ipv6 enableコマンドを使います。
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface cellular0
        encapsulation ppp 0
        apn testname.alliedtelesis
        ipv6 enable

3. PPPインターフェースppp0に対し、PPP接続のための設定を行います。
   ・IPCPによるDNSサーバーアドレスのネゴシエーション無効化（ppp ipcp dns）
   ・LCP EchoによるPPP接続状態の確認（keepalive）
   ・ユーザー名（ppp username）
   ・パスワード（ppp password）
   ・IPv6の有効化（ipv6 enable）
   ・MSS書き換え（ipv6 tcp adjust-mss）

       interface ppp0
        ppp ipcp dns reject
        keepalive
        ppp username user@isp
        ppp password isppasswd
        ipv6 enable
        ipv6 tcp adjust-mss pmtu

4. LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
   IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。

       interface vlan1
        ip address 192.168.20.1/24

5. IPv6パケット転送機能を有効化します。これにはipv6 forwardingコマンドを使います。

       ipv6 forwarding

6. ファイアウォールやNATのルール作成時に使うエンティティー（通信主体）を定義します。
   エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
   外部ネットワークを表すゾーン「ipv6-internet」を作成します。
   これには、zone、network、ipv6 subnet、host、ipv6 addressの各コマンドを使います。

       zone ipv6-internet
        network wan
         ipv6 subnet ::/0 interface ppp0
         host ppp0
          ipv6 address dynamic interface ppp0

7. 内部ネットワークを表すゾーン「ipv4-internal」を作成します。
   前記コマンドに加え、ここではip subnetコマンドも使います。

       zone ipv4-internal
        network lan
         ip subnet 172.16.0.0/30
         ip subnet 192.168.0.0/16

8. ファイアウォールのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
   これには、application、protocol、dportの各コマンドを使います。
   アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
   DHCPv6パケットを表すカスタムアプリケーション「dhcpv6」を定義します。

       application dhcpv6
        protocol udp
        dport 546 to 547

9. IPsecのESPパケットを表すカスタムアプリケーション「esp」を定義します。

       application esp
        protocol 50

10. ICMPv6パケットを表すカスタムアプリケーション「icmpv6」を定義します。

        application icmpv6
         protocol ipv6-icmp

11. ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。

        application isakmp
         protocol udp
         dport 500

12. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewall、rule、protectの各コマンドを使います。
    ・rule 10 - 本製品のWAN側インターフェースからのIPv6通信を許可します
    ・rule 20 - ISAKMPパケットを許可します
    ・rule 30 - IPsec（ESP）パケットを許可します
    ・rule 40 - DHCPv6パケットを許可します
    ・rule 50 - ICMPv6パケットを許可します
    ・rule 100 - 内部から内部へのIPv4通信を許可します
    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。

        firewall
         rule 10 permit any from ipv6-internet.wan.ppp0 to ipv6-internet
         rule 20 permit isakmp from ipv6-internet to ipv6-internet.wan.ppp0
         rule 30 permit esp from ipv6-internet to ipv6-internet.wan.ppp0
         rule 40 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.ppp0
         rule 50 permit icmpv6 from ipv6-internet to ipv6-internet.wan.ppp0
         rule 100 permit any from ipv4-internal to ipv4-internal
         protect

13. 対向ルーターとの間で使用するISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。

        crypto isakmp key secret policy tunnel0

14. IPv4 over IPv6 IPsecトンネルインターフェースtunnel0を作成します。
    トンネルインターフェースはinterfaceコマンドで作成し、以下の設定を行います。
    ・トンネルインターフェースから送信するデリバリーパケットの始点（自装置）アドレス（tunnel source）
    ・トンネルインターフェースから送信するデリバリーパケットの終点（対向装置）アドレス（tunnel destination）
    ・保護対象パケット（トラフィックセレクター）のローカルアドレス（tunnel local selector）
    ・保護対象パケット（トラフィックセレクター）のリモートアドレス（tunnel remote selector）
    ・トンネルインターフェースに対するIPsec保護の適用（tunnel protection ipsec）
    ・トンネリング方式（tunnel mode ipsec）
    ・トンネルインターフェースのIPアドレス（ip address）
    ・トンネルインターフェースにおけるMSS書き換え設定（ip tcp adjust-mss）
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。

        interface tunnel0
         tunnel source ppp0
         tunnel destination sample1.i.open.ad.jp
         tunnel local selector 1 0.0.0.0/0
         tunnel remote selector 1 0.0.0.0/0
         tunnel protection ipsec
         tunnel mode ipsec ipv6
         ip address 172.16.0.2/30
         ip tcp adjust-mss pmtu

15. トンネルインターフェース tunnel0 経由での対向ルーターへの接続性を監視するPingポーリング「1」を作成します。
    これには、ping-poll、ip、up-count、fail-count、sample-size、activeの各コマンドを使います。
    Pingポーリングの詳細は「IP付加機能」/「Pingポーリング」をご覧ください。

        ping-poll 1
         ip 172.16.0.1
         up-count 3
         fail-count 3
         sample-size 3
         active

16. 定期実行トリガーとPingポーリングトリガーを作成します。
    これには、trigger、type periodic、type ping-poll、scriptの各コマンドを使います。
    ・trigger 1 - 1分おきにダイナミックDNSサービスの更新専用ホスト宛てにアップデートパケット（IPv6 Ping）を送信し、自身のIPv6アドレスをダイナミックDNSサーバーに登録・更新するopen_ddns.scpスクリプトを実行する
    ・trigger 10 - tunnel0 経由での対向ルーターへの接続性が失われた場合に、trigger 20を作成することで 1分おきに FQDN での再接続を試みる periodic-update.scpスクリプトを実行する
    ・trigger 11 - tunnel0 経由での対向ルーターへの接続性が回復した場合に、trigger 20を削除することで 1分おきの再接続を停止する periodic-update-delete.scpスクリプトを実行する
    ・trigger 20 - ISAKMP SA を強制的に削除し、対向ルーターのFQDNを解決した上で再接続を試みる host-change.scpスクリプトを1分おきに実行する（trigger 10によって作成・起動され、trigger 11によって削除・停止される）
    トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。

        trigger 1
         type periodic 1
         script 1 open_ddns.scp
        trigger 10
         type ping-poll 1 down
         script 1 periodic-update.scp
        trigger 11
         type ping-poll 1 up
         script 1 periodic-update-delete.scp

17. ルーターAのLAN側（192.168.10.0/24）への経路を設定します。これにはip routeコマンドを使います。
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。

        ip route 192.168.10.0/24 tunnel0

18. 以上で設定は完了です。

        end

## 設定の保存

■ 設定が完了したら、現在の設定内容を起動時コンフィグとして保存してください。これには、copyコマンドを「`copy running-config startup-config`」の書式で実行します。

    awplus# copy running-config startup-config ↓
    Building configuration...
    [OK]

また、write fileコマンド、write memoryコマンドでも同じことができます。

    awplus# write memory ↓
    Building configuration...
    [OK]

その他、設定保存の詳細については「運用・管理」/「コンフィグレーション」をご覧ください。

## ファイアウォールログについて

■ ファイアウォールのログをとるには、次のコマンド（log(filter)）を実行します。

    awplus(config)# log buffered level informational facility kern msgtext Firewall ↓

■ 記録されたログを見るには、次のコマンド（show log）を実行します。ここでは、ファイアウォールが出力したログメッセージだけを表示させています。

    awplus# show log | include Firewall ↓

## ルーターAのコンフィグ

    !
    no spanning-tree rstp enable
    !
    interface eth1
     ipv6 enable
    !
    interface vlan1
     ip address 192.168.10.1/24
    !
    ipv6 forwarding
    !
    zone ipv6-internet
     network wan
      ipv6 subnet ::/0 interface eth1
      host eth1
       ipv6 address dynamic interface eth1
    !
    zone ipv4-internal
     network lan
      ip subnet 172.16.0.0/30
      ip subnet 192.168.0.0/16
    !
    application dhcpv6
     protocol udp
     dport 546 to 547
    !
    application esp
     protocol 50
    !
    application icmpv6
     protocol ipv6-icmp
    !
    application isakmp
     protocol udp
     dport 500
    !
    firewall
     rule 10 permit any from ipv6-internet.wan.eth1 to ipv6-internet
     rule 20 permit isakmp from ipv6-internet to ipv6-internet.wan.eth1
     rule 30 permit esp from ipv6-internet to ipv6-internet.wan.eth1
     rule 40 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.eth1
     rule 50 permit icmpv6 from ipv6-internet to ipv6-internet.wan.eth1
     rule 100 permit any from ipv4-internal to ipv4-internal
     protect
    !
    crypto isakmp key secret policy tunnel0
    !
    interface tunnel0
     tunnel source eth1
     tunnel destination sample2.i.open.ad.jp
     tunnel local selector 1 0.0.0.0/0
     tunnel remote selector 1 0.0.0.0/0
     tunnel protection ipsec
     tunnel mode ipsec ipv6
     ip address 172.16.0.1/30
     ip tcp adjust-mss pmtu
    !
    ping-poll 1
     ip 172.16.0.2
     up-count 3
     fail-count 3
     sample-size 3
     active
    !
    trigger 1
     type periodic 1
     script 1 open_ddns.scp
    trigger 10
     type ping-poll 1 down
     script 1 periodic-update.scp
    trigger 11
     type ping-poll 1 up
     script 1 periodic-update-delete.scp
    !
    ip route 192.168.20.0/24 tunnel0
    !
    end

## ルーターBのコンフィグ

    !
    no spanning-tree rstp enable
    !
    interface cellular0
     encapsulation ppp 0
     apn testname.alliedtelesis
     ipv6 enable
    !
    interface ppp0
     ppp ipcp dns reject
     keepalive
     ppp username user@isp
     ppp password isppasswd
     ipv6 enable
     ipv6 tcp adjust-mss pmtu
    !
    interface vlan1
     ip address 192.168.20.1/24
    !
    ipv6 forwarding
    !
    zone ipv6-internet
     network wan
      ipv6 subnet ::/0 interface ppp0
      host ppp0
       ipv6 address dynamic interface ppp0
    !
    zone ipv4-internal
     network lan
      ip subnet 172.16.0.0/30
      ip subnet 192.168.0.0/16
    !
    application dhcpv6
     protocol udp
     dport 546 to 547
    !
    application esp
     protocol 50
    !
    application icmpv6
     protocol ipv6-icmp
    !
    application isakmp
     protocol udp
     dport 500
    !
    firewall
     rule 10 permit any from ipv6-internet.wan.ppp0 to ipv6-internet
     rule 20 permit isakmp from ipv6-internet to ipv6-internet.wan.ppp0
     rule 30 permit esp from ipv6-internet to ipv6-internet.wan.ppp0
     rule 40 permit dhcpv6 from ipv6-internet to ipv6-internet.wan.ppp0
     rule 50 permit icmpv6 from ipv6-internet to ipv6-internet.wan.ppp0
     rule 100 permit any from ipv4-internal to ipv4-internal
     protect
    !
    crypto isakmp key secret policy tunnel0
    !
    interface tunnel0
     tunnel source ppp0
     tunnel destination sample1.i.open.ad.jp
     tunnel local selector 1 0.0.0.0/0
     tunnel remote selector 1 0.0.0.0/0
     tunnel protection ipsec
     tunnel mode ipsec ipv6
     ip address 172.16.0.2/30
     ip tcp adjust-mss pmtu
    !
    ping-poll 1
     ip 172.16.0.1
     up-count 3
     fail-count 3
     sample-size 3
     active
    !
    trigger 1
     type periodic 1
     script 1 open_ddns.scp
    trigger 10
     type ping-poll 1 down
     script 1 periodic-update.scp
    trigger 11
     type ping-poll 1 up
     script 1 periodic-update-delete.scp
    !
    ip route 192.168.10.0/24 tunnel0
    !
    end

## ルーターAのトリガースクリプト

■ open_ddns.scp

    enable
    ping ipv6 update-0123456789abcdefff.i.open.ad.jp repeat 2

■ periodic-update.scp

    enable
    conf t
    trigger 20
    type periodic 1
    script 1 host-change.scp

■ periodic-update-delete.scp

    enable
    conf t
    no trigger 20

■ host-change.scp

    enable
    clear isakmp sa force
    conf t
    int tunnel0
    tunnel dest sample2.i.open.ad.jp

## ルーターBのトリガースクリプト

■ open_ddns.scp

    enable
    ping ipv6 update-fffedcba9876543210.i.open.ad.jp repeat 2

■ periodic-update.scp

    enable
    conf t
    trigger 20
    type periodic 1
    script 1 host-change.scp

■ periodic-update-delete.scp

    enable
    conf t
    no trigger 20

■ host-change.scp

    enable
    clear isakmp sa force
    conf t
    int tunnel0
    tunnel dest sample1.i.open.ad.jp

(C) 2015 - 2020 アライドテレシスホールディングス株式会社

PN: 613-002107 Rev.AK_1