# 設定例集#39: Pingポーリングトリガーによるメイン回線から移動体データ通信サービスVPNバックアップへの自動切り替え（CUGサービス＋移動体データ通信サービス～VRRP編～）

センター側にVRRPのマスター・バックアップルーターを1台ずつ設置した冗長構成の構築例です。
マスタールーターでは拠点間通信にCUG（Closed Users Group）サービスを利用し、バックアップルーターではバックアップ回線としてインターネットVPNを利用するネットワークを構築します。
また、拠点側では拠点間通信にCUGサービスを利用し、バックアップ回線として移動体データ通信サービスでのVPNを利用するネットワークを構築します。
Note

USB型データ通信端末はAT-AR4050S、AT-AR3050Sでのみサポートです。AT-AR4050S-5Gでは使用できません。

## 構成

| ルーターA | ルーターB | ルーターC
ISPから提供された情報
ISP接続用ユーザー名 |  | user@ispB | user@ispC
ISP接続用パスワード | isppasswdB | isppasswdC
アクセスポイント名（APN） |  | testname.alliedtelesis
WAN側IPアドレス | 10.1.1.1/32 | 動的割り当て（IPCP）
グループ管理者から提供された情報
CUG接続用ユーザー名 | userA@cug |  | userC@cug
CUG接続用パスワード | cugpasswdA | cugpasswdC
WAN側IPアドレス | 10.0.0.1/32 | 10.0.0.2/32
ルーターの基本設定
WAN側物理インターフェース(1) | eth1 | eth1 | eth1
WAN側物理インターフェース(2) |  |  | cellular0（USB型データ通信端末）
WAN側（ppp0）IPアドレス(1) | 10.0.0.1/32 | 10.1.1.1/32 | 10.0.0.2/32
WAN側（ppp1）IPアドレス(2) |  |  | 接続時にISPから取得
LAN側（vlan1）IPアドレス | 192.168.10.253/24 | 192.168.10.254/24 | 192.168.20.1/24
IPsecトンネル（tunnel0）IPアドレス(1) | 192.168.100.1/30 | 192.168.200.1/30 | 192.168.100.2/30
IPsecトンネル（tunnel1）IPアドレス(2) |  |  | 192.168.200.2/30

[IKEフェーズ1（ISAKMP）設定]

- ルーターA・C間
  - IKEバージョン・交換モード：IKEv1 Mainモード
  - アルゴリズム：AES128 / SHA1 / Group2
  - ローカルID：
    - ルーターA：始点アドレス（デフォルト）
    - ルーターC：始点アドレス（デフォルト）
  - SA有効期間：1時間
  - 事前共有鍵：secret1
- ルーターB・C間
  - IKEバージョン・交換モード：IKEv1 Aggressiveモード
  - アルゴリズム：AES128 / SHA1 / Group2
  - ローカルID：
    - ルーターB：始点アドレス（デフォルト）
    - ルーターC：RouterC
  - SA有効期間：1時間
  - 事前共有鍵：secret2

[IKEフェーズ2（IPsec）設定]

- ルーターA・C間
  - アルゴリズム：AES128 / SHA1
- ルーターB・C間
  - アルゴリズム：AES128 / SHA1

想定する環境は次のとおりです。

- ルーターCではUSB型データ通信端末が使用できる。
- センターと拠点間はIPsecで接続する。
- ルーターAとルーターC間で Pingポーリングトリガーを対向ルーターのインターフェースに向け、定期的に通信状況を確認し、障害発生時にはアクションを実行してバックアップ回線（移動体データ通信サービス）へ通信ルートを切り替える。

通常接続時の通信は以下のように行われます。

- センター/ISP間の通信ルート
  センターのLAN側からISP宛に送出されたパケットは、VRRPマスタールーターであるルーターAのLAN側インターフェース（vlan1）を通り、ルーターBのeth2に転送され、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.10.x/24）からルーターBのppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。
- センター/拠点間の通信ルート
  センターのLAN側から拠点のLAN側宛に送出されたパケットは、VRRPマスタールーターであるルーターAのLAN側インターフェース（vlan1）から、ppp0上のIPsecトンネルを通ってプライベートアドレス（192.168.10.x/24）のままルーターCのLAN側インターフェース（vlan1）へ届きます。
  同様に、ルーターCのLAN側からセンターのLAN側宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp0上のIPsecトンネルを通ってプライベートアドレス（192.168.20.x/24）のままルーターAのLAN側インターフェース（vlan1）へ届きます。
- 拠点/ISP間の通信ルート
  ルーターCのLAN側からISP宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp0上のIPsecトンネルを通ってプライベートアドレス（192.168.20.x/24）のままルーターBのeth2に転送され、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.20.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。

メイン回線で障害発生時の通信は以下のように行われます。

- センター/ISP間の通信ルート
  センターのLAN側からISP宛に送出されたパケットは、VRRPマスタールーターであるルーターBのLAN側インターフェース（vlan1）を通り、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.10.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。
- センター/拠点間の通信ルート
  センターのLAN側から拠点のLAN側宛に送出されたパケットは、VRRPマスタールーターであるルーターBのLAN側インターフェース（vlan1）から、ppp0上のIPsecトンネルを通ってプライベートアドレス（192.168.10.x/24）のままルーターCのLAN側インターフェース（vlan1）へ届きます。
  同様に、ルーターCのLAN側からセンターのLAN側宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp1上のIPsecトンネルを通ってプライベートアドレス（192.168.20.x/24）のままルーターBのLAN側インターフェース（vlan1）へ届きます。
- 拠点/ISP間の通信ルート
  ルーターCのLAN側からISP宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp1上のIPsecトンネルを通ってプライベートアドレス（192.168.20.x/24）のままルーターBのWAN側インターフェース（ppp0）へ届き、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.20.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。

ルーターAのLAN側で障害発生時の通信は以下のように行われます。

- センター/ISP間の通信ルート
  センターのLAN側からISP宛に送出されたパケットは、VRRPマスタールーターであるルーターBのLAN側インターフェース（vlan1）を通り、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.10.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。
- センター/拠点間の通信ルート
  センターのLAN側から拠点のLAN側宛に送出されたパケットは、VRRPマスタールーターであるルーターBのLAN側インターフェース（vlan1）からルーターAのeth2に転送され、ルーターAのppp0上のIPsecトンネルを通ってプライベートアドレス（192.168.10.x/24）のままルーターCのLAN側インターフェース（vlan1）へ届きます。
  同様に、ルーターCのLAN側からセンターのLAN側宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp0上のIPsecトンネルを通ってルーターBのeth2に転送され、プライベートアドレス（192.168.20.x/24）のままルーターBのLAN側インターフェース（vlan1）へ届きます。
- 拠点/ISP間の通信ルート
  ルーターCのLAN側からISP宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）からppp0上のIPsecトンネルを通って、プライベートアドレス（192.168.20.x/24）のままルーターBのeth2に転送され、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.20.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。

ルーターA、ルーターB間のethインターフェースで障害発生時の通信は以下のように行われます。

- センター/ISP間の通信ルート
  センターのLAN側からISP宛に送出されたパケットは、VRRPマスタールーターであるルーターBのLAN側インターフェース（vlan1）を通り、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.10.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。
- センター/拠点間の通信ルート
  センターのLAN側から拠点のLAN側宛に送出されたパケットは、VRRPマスタールーターであるルーターBのLAN側インターフェース（vlan1）から、ppp0上のIPsecトンネルを通ってプライベートアドレス（192.168.10.x/24）のままルーターCのLAN側インターフェース（vlan1）へ届きます。
  同様に、ルーターCのLAN側からセンターのLAN側宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp1上のIPsecトンネルを通ってプライベートアドレス（192.168.20.x/24）のままルーターBのLAN側インターフェース（vlan1）へ届きます。
- 拠点/ISP間の通信ルート
  ルーターCのLAN側からISP宛に送出されたパケットは、ルーターCのLAN側インターフェース（vlan1）から、ppp1上のIPsecトンネルを通ってプライベートアドレス（192.168.20.x/24）のままルーターBのWAN側インターフェース（ppp0）へ届き、NAT機能によりルーターBのppp0でプライベートアドレス（192.168.20.x/24）からppp0のグローバルアドレス（10.1.1.1/32）に変換されてISPへ届きます。

## 設定開始前に

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

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

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

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

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

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

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

## ルーターAの設定

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

       no spanning-tree rstp enable

2. WANポートeth1上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface eth1
        encapsulation ppp 0

3. PPPインターフェースppp0に対し、PPPoE接続のための設定を行います。
   ・LCP EchoによるPPP接続状態の確認（keepalive）
   ・IPCPによるIPアドレスの取得要求（ip address negotiated）
   ・ユーザー名（ppp username）
   ・パスワード（ppp password）
   ・MSS書き換え（ip tcp adjust-mss）
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface ppp0
        keepalive
        ip address negotiated
        ppp username userA@cug
        ppp password cugpasswdA
        ip tcp adjust-mss pmtu

4. VRRPバックアップルーターとの接続に使うeth2にIPアドレスを設定します。これにはip addressコマンドを使います。
   IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。

       interface eth2
        ip address 172.16.100.1/24

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

       interface vlan1
        ip address 192.168.10.253/24

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

       crypto isakmp key secret1 address 10.0.0.2

7. IPsecの通信方式を規定するIPsecプロファイルを作成します。
   IPsecプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
   ここでは、crypto ipsec profileコマンドでIPsecプロファイルを作成し、以下の情報を設定します。
   ・SA有効期間（lifetime）
   ・アルゴリズム（transform）

       crypto ipsec profile ipsec1
        lifetime seconds 3600
        transform 1 protocol esp integrity SHA1 encryption AES128

8. ISAKMPの通信方式を規定するISAKMPプロファイルを作成します。
   ISAKMPプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
   ここでは、crypto isakmp profileコマンドでISAKMPプロファイルを作成し、以下の情報を設定します。
   ・IKEバージョン（version）
   ・SA有効期間（lifetime）
   ・アルゴリズム（transform）

       crypto isakmp profile isakmp1
        version 1 mode main
        lifetime 3600
        transform 1 integrity SHA1 encryption AES128 group 2

9. 対向ルーターとの間で使用するISAKMPプロファイルを指定します。これにはcrypto isakmp peerコマンドを使います。

       crypto isakmp peer address 10.0.0.2 profile isakmp1

10. IPsecトンネルインターフェースtunnel0を作成します。
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。
    これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。
    ・トンネルインターフェースのMTU（mtu）
    ・トンネルインターフェースから送信するデリバリーパケットの始点（自装置）アドレス（tunnel source）
    ・トンネルインターフェースから送信するデリバリーパケットの終点（対向装置）アドレス（tunnel destination）
    ・トンネルインターフェースに対するIPsec保護の適用とIPsecプロファイルの指定（tunnel protection ipsec）
    ・トンネリング方式（tunnel mode ipsec）
    ・トンネルインターフェースのIPアドレス（ip address）
    ・トンネルインターフェースにおけるMSS書き換え設定（ip tcp adjust-mss）

        interface tunnel0
         mtu 1300
         tunnel source ppp0
         tunnel destination 10.0.0.2
         tunnel protection ipsec profile ipsec1
         tunnel mode ipsec ipv4
         ip address 192.168.100.1/30
         ip tcp adjust-mss 1260

11. vlan1に対してVRRPの設定を行います。
    これには、service vrrp、router vrrp、virtual-ip、priority、circuit-failover、enableの各コマンドを使います。
    ルーターAは初期状態でマスタールーターとするため、優先度を初期値の100より高い101に設定しています。
    また、ルーターA、B間（eth2）の接続が失われた場合は優先度を引き下げてバックアップルーターに移行するよう設定しています。
    VRRPの詳細は「IP」/「VRRP」をご覧ください。

        service vrrp
        router vrrp 1 vlan1
         virtual-ip 192.168.10.1 backup
         priority 101
         circuit-failover eth2 2
         enable

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

        ping-poll 1
         ip 10.0.0.2
         normal-interval 10
         up-count 5
         sample-size 10
         active

13. Pingポーリングトリガーを作成します。
    これには、trigger、type ping-poll、scriptの各コマンドを使います。
    ・trigger 1 - tunnel0 経由での対向ルーターへの接続性が失われた場合に、ISAKMP SAを削除し、eth2を無効にしてVRRPバックアップルーターに移行するpingdown.scpスクリプトを実行する
    ・trigger 2 - tunnel0 経由での対向ルーターへの接続性が回復した場合に、eth2を有効にしてVRRPのマスタールーターに復帰するpingup.scpスクリプトを実行する
    トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。

        trigger 1
         type ping-poll 1 down
         script 1 flash:/pingdown.scp
        trigger 2
         type ping-poll 1 up
         script 1 flash:/pingup.scp

14. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。
    ・IPsecトンネルの対向ルーターへは ppp0 経由で接続。ただし、ppp0 が有効になるまでは、この経路を使用できないように設定
    ・LAN側インターフェースがダウンした場合に備え、内部ネットワーク（192.168.10.0/24）宛てのパケットを eth2 経由でルーターBに転送するバックアップ経路を設定
    ・リモート側の内部ネットワーク（192.168.20.0/24）へはIPsecトンネル tunnel0 経由。ただし、tunnel0 が有効になるまでは、この経路を使用できないように設定
    ・その他（0.0.0.0/0）は eth2 経由でルーターBに転送（デフォルト経路）。
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。

        ip route 0.0.0.0/0 172.16.100.2
        ip route 10.0.0.2/32 ppp0
        ip route 10.0.0.2/32 Null 254
        ip route 192.168.10.0/24 172.16.100.2 10
        ip route 192.168.20.0/24 tunnel0
        ip route 192.168.20.0/24 Null 254

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

        end

## ルーターBの設定

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

       no spanning-tree rstp enable

2. WANポートeth1上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface eth1
        encapsulation ppp 0

3. PPPインターフェースppp0に対し、PPPoE接続のための設定を行います。
   ・IPCPによるDNSサーバーアドレスの取得要求（ppp ipcp dns）
   ・LCP EchoによるPPP接続状態の確認（keepalive）
   ・IPCPによるIPアドレスの取得要求（ip address negotiated）
   ・ユーザー名（ppp username）
   ・パスワード（ppp password）
   ・MSS書き換え（ip tcp adjust-mss）
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface ppp0
        ppp ipcp dns request
        keepalive
        ip address negotiated
        ppp username user@ispB
        ppp password isppasswdB
        ip tcp adjust-mss pmtu

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

       interface eth2
        ip address 172.16.100.2/24

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

       interface vlan1
        ip address 192.168.10.254/24

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

       zone private
        network lan
         ip subnet 172.16.100.0/24
         ip subnet 192.168.10.0/24
        network peer
         ip subnet 192.168.20.0/24
        network tunnel
         ip subnet 192.168.200.0/30
        network vrrp
         ip subnet 224.0.0.18/32

7. 外部ネットワークを表すゾーン「public」を作成します。
   前記コマンドに加え、ここではhost、ip addressの各コマンドも使います。

       zone public
        network wan
         ip subnet 0.0.0.0/0 interface ppp0
         host ppp0
          ip address 10.1.1.1

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

       application esp
        protocol 50

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

       application isakmp
        protocol udp
        sport 500
        dport 500

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

        firewall
         rule 10 permit any from private to private
         rule 20 permit any from private to public
         rule 30 permit isakmp from public.wan.ppp0 to public.wan
         rule 40 permit isakmp from public.wan to public.wan.ppp0
         rule 50 permit esp from public.wan.ppp0 to public.wan
         rule 60 permit esp from public.wan to public.wan.ppp0
         protect

11. LAN側ネットワークに接続されているすべてのコンピューターがダイナミックENAT機能を使用できるよう設定します。
    これには、nat、rule、enableの各コマンドを使います。
    NATの詳細は「UTM」/「NAT」をご覧ください。

        nat
         rule 10 masq any from private to public
         enable

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

        crypto isakmp key secret2 hostname RouterC

13. IPsecの通信方式を規定するIPsecプロファイルを作成します。
    IPsecプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
    ここでは、crypto ipsec profileコマンドでIPsecプロファイルを作成し、以下の情報を設定します。
    ・SA有効期間（lifetime）
    ・アルゴリズム（transform）

        crypto ipsec profile ipsec1
         lifetime seconds 3600
         transform 1 protocol esp integrity SHA1 encryption AES128

14. ISAKMPの通信方式を規定するISAKMPプロファイルを作成します。
    ISAKMPプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
    ここでは、crypto isakmp profileコマンドでISAKMPプロファイルを作成し、以下の情報を設定します。
    ・IKEバージョン（version）
    ・SA有効期間（lifetime）
    ・アルゴリズム（transform）

        crypto isakmp profile isakmp1
         version 1 mode aggressive
         lifetime 3600
         transform 1 integrity SHA1 encryption AES128 group 2

15. 対向ルーターとの間で使用するISAKMPプロファイルを指定します。これにはcrypto isakmp peerコマンドを使います。
    キーワードdynamicは、IPアドレスが不定なすべての対向ルーターを意味しています。

        crypto isakmp peer dynamic profile isakmp1

16. IPsecトンネルインターフェースtunnel0を作成します。
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。
    これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。
    ・トンネルインターフェースのMTU（mtu）
    ・トンネルインターフェースから送信するデリバリーパケットの始点（自装置）アドレス（tunnel source）
    ・トンネルインターフェースから送信するデリバリーパケットの終点（対向装置）アドレス（tunnel destination）
    ・トンネルインターフェースにおける対向装置ID（リモートID）（tunnel remote name）
    ・トンネルインターフェースに対するIPsec保護の適用とIPsecプロファイルの指定（tunnel protection ipsec）
    ・トンネリング方式（tunnel mode ipsec）
    ・トンネルインターフェースのIPアドレス（ip address）
    ・トンネルインターフェースにおけるMSS書き換え設定（ip tcp adjust-mss）

        interface tunnel0
         mtu 1300
         tunnel source ppp0
         tunnel destination dynamic
         tunnel remote name RouterC
         tunnel protection ipsec profile ipsec1
         tunnel mode ipsec ipv4
         ip address 192.168.200.1/30
         ip tcp adjust-mss 1260

17. vlan1に対してVRRPの設定を行います。
    これには、service vrrp、router vrrp、virtual-ip、enableの各コマンドを使います。
    ルーターBは初期状態でバックアップルーターとするため、優先度を初期値の100のままとします。
    VRRPの詳細は「IP」/「VRRP」をご覧ください。

        service vrrp
        router vrrp 1 vlan1
         virtual-ip 192.168.10.1 backup
         enable

18. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。
    ・リモート側の内部ネットワーク（192.168.20.0/24）へは通常 eth2 経由でルーターAに転送するが、ルーターAとの接続（eth2）がダウンした場合は、IPsecトンネル tunnel0 経由に切り替える。ただし、tunnel0 が有効になるまでは、この経路を使用できないように設定
    ・その他（0.0.0.0/0）は ppp0 経由（デフォルト経路）
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。

        ip route 0.0.0.0/0 ppp0
        ip route 192.168.20.0/24 172.16.100.1
        ip route 192.168.20.0/24 tunnel0 10
        ip route 192.168.20.0/24 Null 254

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

        end

## ルーターCの設定

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

       no spanning-tree rstp enable

2. WANポートeth1上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface eth1
        encapsulation ppp 0

3. PPPインターフェースppp0に対し、PPPoE接続のための設定を行います。
   ・LCP EchoによるPPP接続状態の確認（keepalive）
   ・IPCPによるIPアドレスの取得要求（ip address negotiated）
   ・ユーザー名（ppp username）
   ・パスワード（ppp password）
   ・MSS書き換え（ip tcp adjust-mss）
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface ppp0
        keepalive
        ip address negotiated
        ppp username userC@cug
        ppp password cugpasswdC
        ip tcp adjust-mss pmtu

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

       interface cellular0
        encapsulation ppp 1
        apn testname.alliedtelesis

5. PPPインターフェースppp1に対し、PPP接続のための設定を行います。
   ・LCP EchoによるPPP接続状態の確認（keepalive）
   ・IPCPによるIPアドレスの取得要求（ip address negotiated）
   ・ユーザー名（ppp username）
   ・パスワード（ppp password）
   ・無通信時の自動切断とオンデマンド接続の有効化（ppp timeout idle）
   ・MSS書き換え（ip tcp adjust-mss）
   PPPの詳細は「PPP」/「一般設定」をご覧ください。

       interface ppp1
        keepalive
        ip address negotiated
        ppp username user@ispC
        ppp password isppasswdC
        ppp timeout idle 300
        ip tcp adjust-mss pmtu

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

       interface vlan1
        ip address 192.168.20.1/24

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

       zone private
        network lan
         ip subnet 192.168.20.0/24
        network peer
         ip subnet 0.0.0.0/0 interface tunnel0
         ip subnet 0.0.0.0/0 interface tunnel1
         ip subnet 192.168.10.0/24

8. 外部ネットワークを表すゾーン「public」を作成します。
   前記コマンドに加え、ここではhost、ip addressの各コマンドも使います。

       zone public
        network wan
         ip subnet 0.0.0.0/0 interface ppp0
         ip subnet 0.0.0.0/0 interface ppp1
         host ppp0
          ip address 10.0.0.2
         host ppp1
          ip address dynamic interface ppp1
         host RouterA
          ip address 10.0.0.1

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

       application esp
        protocol 50

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

        application isakmp
         protocol udp
         sport 500
         dport 500

11. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewall、rule、protectの各コマンドを使います。
    ・rule 10 - 内部から内部への通信を許可します
    ・rule 20 - 内部から外部への通信を許可します
    ・rule 30, 40, 50, 60 - ISAKMPパケットを許可します
    ・rule 70, 80, 90, 100 - IPsec（ESP）パケットを許可します
    ・rule 110, 120 - Pingポーリングパケットを許可します
    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。

        firewall
         rule 10 permit any from private to private
         rule 20 permit any from private to public
         rule 30 permit isakmp from public.wan.ppp0 to public.wan
         rule 40 permit isakmp from public.wan to public.wan.ppp0
         rule 50 permit isakmp from public.wan.ppp1 to public.wan
         rule 60 permit isakmp from public.wan to public.wan.ppp1
         rule 70 permit esp from public.wan.ppp0 to public.wan
         rule 80 permit esp from public.wan to public.wan.ppp0
         rule 90 permit esp from public.wan.ppp1 to public.wan
         rule 100 permit esp from public.wan to public.wan.ppp1
         rule 110 permit ping from public.wan.ppp0 to public.wan.RouterA
         rule 120 permit ping from public.wan.RouterA to public.wan.ppp0
         protect

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

        crypto isakmp key secret1 address 10.0.0.1
        crypto isakmp key secret2 address 10.1.1.1

13. IPsecの通信方式を規定するIPsecプロファイルを作成します。
    IPsecプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
    ここでは、crypto ipsec profileコマンドでIPsecプロファイルを作成し、以下の情報を設定します。
    ・SA有効期間（lifetime）
    ・アルゴリズム（transform）

        crypto ipsec profile ipsec1
         lifetime seconds 3600
         transform 1 protocol esp integrity SHA1 encryption AES128

14. ISAKMPの通信方式を規定するISAKMPプロファイルを作成します。
    ISAKMPプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
    ここでは、crypto isakmp profileコマンドでISAKMPプロファイルを作成し、以下の情報を設定します。
    ・IKEバージョン（version）
    ・SA有効期間（lifetime）
    ・アルゴリズム（transform）
    ISAKMPプロファイル「isakmp1」では IKEv1 Mainモードを使うよう設定します。

        crypto isakmp profile isakmp1
         version 1 mode main
         lifetime 3600
         transform 1 integrity SHA1 encryption AES128 group 2

15. ISAKMPプロファイル「isakmp2」では IKEv1 Aggressiveモードを使うよう設定します。

        crypto isakmp profile isakmp2
         version 1 mode aggressive
         lifetime 3600
         transform 1 integrity SHA1 encryption AES128 group 2

16. 対向ルーターとの間で使用するISAKMPプロファイルを指定します。これにはcrypto isakmp peerコマンドを使います。

        crypto isakmp peer address 10.0.0.1 profile isakmp1
        crypto isakmp peer address 10.1.1.1 profile isakmp2

17. IPsecトンネルインターフェースtunnel0を作成します。
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。
    これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。
    ・トンネルインターフェースのMTU（mtu）
    ・トンネルインターフェースから送信するデリバリーパケットの始点（自装置）アドレス（tunnel source）
    ・トンネルインターフェースから送信するデリバリーパケットの終点（対向装置）アドレス（tunnel destination）
    ・トンネルインターフェースに対するIPsec保護の適用とIPsecプロファイルの指定（tunnel protection ipsec）
    ・トンネリング方式（tunnel mode ipsec）
    ・トンネルインターフェースのIPアドレス（ip address）
    ・トンネルインターフェースにおけるMSS書き換え設定（ip tcp adjust-mss）

        interface tunnel0
         mtu 1300
         tunnel source ppp0
         tunnel destination 10.0.0.1
         tunnel protection ipsec profile ipsec1
         tunnel mode ipsec ipv4
         ip address 192.168.100.2/30
         ip tcp adjust-mss 1260

18. 同様にしてIPsecトンネルインターフェースtunnel1を作成します。

        interface tunnel1
         mtu 1300
         tunnel source ppp1
         tunnel destination 10.1.1.1
         tunnel local name RouterC
         tunnel protection ipsec profile ipsec1
         tunnel mode ipsec ipv4
         ip address 192.168.200.2/30
         ip tcp adjust-mss 1260

19. トンネルインターフェース tunnel0 経由でルーターA・B間の eth2 接続を確認することにより、tunnel0 経由での対向ルーターへの接続性と、センター側のルーターAがVRRPマスタールーターとして動作しているかどうかを監視するPingポーリング「1」を作成します。
    これには、ping-poll、ip、source-ip、normal-interval、up-count、sample-size、activeの各コマンドを使います。
    Pingポーリングの詳細は「IP付加機能」/「Pingポーリング」をご覧ください。

        ping-poll 1
         ip 172.16.100.2
         source-ip 192.168.20.1
         normal-interval 10
         up-count 5
         sample-size 10
         active

20. 同様にトンネルインターフェース tunnel1 経由でルーターA・B間の eth2 接続を確認することにより、tunnel1 経由での対向ルーターへの接続性と、センター側のルーターAがVRRPマスタールーターに復帰したかどうかを監視するPingポーリング「2」を作成します。こちらは tunnel0 側の経路がダウンしたときにトリガー「1」によって自動的に有効化（active）されるため、初期状態では停止状態にしておきます。

        ping-poll 2
         ip 172.16.100.1
         source-ip 192.168.20.1
         normal-interval 10
         up-count 5
         sample-size 10

21. Pingポーリングトリガーを作成します。
    これには、trigger、type ping-poll、scriptの各コマンドを使います。
    ・trigger 1 - tunnel0 経由での対向ルーターへの接続性が失われた、あるいは、ルーターAがVRRPマスタールーターでなくなった場合に、tunnel1経由のルートに切り替えるpingdown.scpスクリプトを実行する
    ・trigger 2 - tunnel1 経由での対向ルーターへの接続性が失われた、あるいは、ルーターAがVRRPマスタールーターに復帰した場合に、tunnel0経由のルートに切り替えるpingup.scpスクリプトを実行する
    トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。

        trigger 1
         type ping-poll 1 down
         script 1 flash:/pingdown.scp
        trigger 2
         type ping-poll 2 up
         script 1 flash:/pingup.scp

22. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。
    ・IPsecトンネルtunnel0の対向ルーターへは ppp0 経由で接続。ただし、ppp0 が有効になるまでは、この経路を使用できないように設定
    ・IPsecトンネルtunnel1の対向ルーターへは、トリガーによって経路が登録されるまで通信できないように設定
    ・その他（0.0.0.0/0）は tunnel0 経由でルーターAに転送（デフォルト経路）。
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。

        ip route 0.0.0.0/0 tunnel0
        ip route 10.0.0.1/32 ppp0
        ip route 10.0.0.1/32 Null 254
        ip route 10.1.1.1/32 Null 254

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

        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 local5

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

    awplus# show log | include Firewall

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

    !
    no spanning-tree rstp enable
    !
    interface eth1
     encapsulation ppp 0
    !
    interface ppp0
     keepalive
     ip address negotiated
     ppp username userA@cug
     ppp password cugpasswdA
     ip tcp adjust-mss pmtu
    !
    interface eth2
     ip address 172.16.100.1/24
    !
    interface vlan1
     ip address 192.168.10.253/24
    !
    crypto isakmp key secret1 address 10.0.0.2
    !
    crypto ipsec profile ipsec1
     lifetime seconds 3600
     transform 1 protocol esp integrity SHA1 encryption AES128
    !
    crypto isakmp profile isakmp1
     version 1 mode main
     lifetime 3600
     transform 1 integrity SHA1 encryption AES128 group 2
    !
    crypto isakmp peer address 10.0.0.2 profile isakmp1
    !
    interface tunnel0
     mtu 1300
     tunnel source ppp0
     tunnel destination 10.0.0.2
     tunnel protection ipsec profile ipsec1
     tunnel mode ipsec ipv4
     ip address 192.168.100.1/30
     ip tcp adjust-mss 1260
    !
    service vrrp
    router vrrp 1 vlan1
     virtual-ip 192.168.10.1 backup
     priority 101
     circuit-failover eth2 2
     enable
    !
    ping-poll 1
     ip 10.0.0.2
     normal-interval 10
     up-count 5
     sample-size 10
     active
    !
    trigger 1
     type ping-poll 1 down
     script 1 flash:/pingdown.scp
    trigger 2
     type ping-poll 1 up
     script 1 flash:/pingup.scp
    !
    ip route 0.0.0.0/0 172.16.100.2
    ip route 10.0.0.2/32 ppp0
    ip route 10.0.0.2/32 Null 254
    ip route 192.168.10.0/24 172.16.100.2 10
    ip route 192.168.20.0/24 tunnel0
    ip route 192.168.20.0/24 Null 254
    !
    end

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

    !
    no spanning-tree rstp enable
    !
    interface eth1
     encapsulation ppp 0
    !
    interface ppp0
     ppp ipcp dns request
     keepalive
     ip address negotiated
     ppp username user@ispB
     ppp password isppasswdB
     ip tcp adjust-mss pmtu
    !
    interface eth2
     ip address 172.16.100.2/24
    !
    interface vlan1
     ip address 192.168.10.254/24
    !
    zone private
     network lan
      ip subnet 172.16.100.0/24
      ip subnet 192.168.10.0/24
     network peer
      ip subnet 192.168.20.0/24
     network tunnel
      ip subnet 192.168.200.0/30
     network vrrp
      ip subnet 224.0.0.18/32
    !
    zone public
     network wan
      ip subnet 0.0.0.0/0 interface ppp0
      host ppp0
       ip address 10.1.1.1
    !
    application esp
     protocol 50
    !
    application isakmp
     protocol udp
     sport 500
     dport 500
    !
    firewall
     rule 10 permit any from private to private
     rule 20 permit any from private to public
     rule 30 permit isakmp from public.wan.ppp0 to public.wan
     rule 40 permit isakmp from public.wan to public.wan.ppp0
     rule 50 permit esp from public.wan.ppp0 to public.wan
     rule 60 permit esp from public.wan to public.wan.ppp0
     protect
    !
    nat
     rule 10 masq any from private to public
     enable
    !
    crypto isakmp key secret2 hostname RouterC
    !
    crypto ipsec profile ipsec1
     lifetime seconds 3600
     transform 1 protocol esp integrity SHA1 encryption AES128
    !
    crypto isakmp profile isakmp1
     version 1 mode aggressive
     lifetime 3600
     transform 1 integrity SHA1 encryption AES128 group 2
    !
    crypto isakmp peer dynamic profile isakmp1
    !
    interface tunnel0
     mtu 1300
     tunnel source ppp0
     tunnel destination dynamic
     tunnel remote name RouterC
     tunnel protection ipsec profile ipsec1
     tunnel mode ipsec ipv4
     ip address 192.168.200.1/30
     ip tcp adjust-mss 1260
    !
    service vrrp
    router vrrp 1 vlan1
     virtual-ip 192.168.10.1 backup
     enable
    !
    ip route 0.0.0.0/0 ppp0
    ip route 192.168.20.0/24 172.16.100.1
    ip route 192.168.20.0/24 tunnel0 10
    ip route 192.168.20.0/24 Null 254
    !
    end

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

    !
    no spanning-tree rstp enable
    !
    interface eth1
     encapsulation ppp 0
    !
    interface ppp0
     keepalive
     ip address negotiated
     ppp username userC@cug
     ppp password cugpasswdC
     ip tcp adjust-mss pmtu
    !
    interface cellular0
     encapsulation ppp 1
     apn testname.alliedtelesis
    !
    interface ppp1
     keepalive
     ip address negotiated
     ppp username user@ispC
     ppp password isppasswdC
     ppp timeout idle 300
     ip tcp adjust-mss pmtu
    !
    interface vlan1
     ip address 192.168.20.1/24
    !
    zone private
     network lan
      ip subnet 192.168.20.0/24
     network peer
      ip subnet 0.0.0.0/0 interface tunnel0
      ip subnet 0.0.0.0/0 interface tunnel1
      ip subnet 192.168.10.0/24
    !
    zone public
     network wan
      ip subnet 0.0.0.0/0 interface ppp0
      ip subnet 0.0.0.0/0 interface ppp1
      host ppp0
       ip address 10.0.0.2
      host ppp1
       ip address dynamic interface ppp1
      host RouterA
       ip address 10.0.0.1
    !
    application esp
     protocol 50
    !
    application isakmp
     protocol udp
     sport 500
     dport 500
    !
    firewall
     rule 10 permit any from private to private
     rule 20 permit any from private to public
     rule 30 permit isakmp from public.wan.ppp0 to public.wan
     rule 40 permit isakmp from public.wan to public.wan.ppp0
     rule 50 permit isakmp from public.wan.ppp1 to public.wan
     rule 60 permit isakmp from public.wan to public.wan.ppp1
     rule 70 permit esp from public.wan.ppp0 to public.wan
     rule 80 permit esp from public.wan to public.wan.ppp0
     rule 90 permit esp from public.wan.ppp1 to public.wan
     rule 100 permit esp from public.wan to public.wan.ppp1
     rule 110 permit ping from public.wan.ppp0 to public.wan.RouterA
     rule 120 permit ping from public.wan.RouterA to public.wan.ppp0
     protect
    !
    crypto isakmp key secret1 address 10.0.0.1
    crypto isakmp key secret2 address 10.1.1.1
    !
    crypto ipsec profile ipsec1
     lifetime seconds 3600
     transform 1 protocol esp integrity SHA1 encryption AES128
    !
    crypto isakmp profile isakmp1
     version 1 mode main
     lifetime 3600
     transform 1 integrity SHA1 encryption AES128 group 2
    !
    crypto isakmp profile isakmp2
     version 1 mode aggressive
     lifetime 3600
     transform 1 integrity SHA1 encryption AES128 group 2
    !
    crypto isakmp peer address 10.0.0.1 profile isakmp1
    crypto isakmp peer address 10.1.1.1 profile isakmp2
    !
    interface tunnel0
     mtu 1300
     tunnel source ppp0
     tunnel destination 10.0.0.1
     tunnel protection ipsec profile ipsec1
     tunnel mode ipsec ipv4
     ip address 192.168.100.2/30
     ip tcp adjust-mss 1260
    !
    interface tunnel1
     mtu 1300
     tunnel source ppp1
     tunnel destination 10.1.1.1
     tunnel local name RouterC
     tunnel protection ipsec profile ipsec1
     tunnel mode ipsec ipv4
     ip address 192.168.200.2/30
     ip tcp adjust-mss 1260
    !
    ping-poll 1
     ip 172.16.100.2
     source-ip 192.168.20.1
     normal-interval 10
     up-count 5
     sample-size 10
     active
    !
    ping-poll 2
     ip 172.16.100.1
     source-ip 192.168.20.1
     normal-interval 10
     up-count 5
     sample-size 10
    !
    trigger 1
     type ping-poll 1 down
     script 1 flash:/pingdown.scp
    trigger 2
     type ping-poll 2 up
     script 1 flash:/pingup.scp
    !
    ip route 0.0.0.0/0 tunnel0
    ip route 10.0.0.1/32 ppp0
    ip route 10.0.0.1/32 Null 254
    ip route 10.1.1.1/32 Null 254
    !
    end

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

pingdown.scp

    enable
    clear isakmp sa
    configure terminal
    interface eth2
    shutdown
    end

pingup.scp

    enable
    configure terminal
    interface eth2
    no shutdown
    end

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

pingdown.scp

    enable
    configure terminal
    no ip route 0.0.0.0/0 tunnel0
    ip route 10.1.1.1/32 ppp1
    ip rou 0.0.0.0/0 tunnel1
    ping-poll 2
    active
    exit
    ping-poll 1
    no active
    end
    clear isakmp sa

pingup.scp

    enable
    configure terminal
    ip route 0.0.0.0/0 tunnel0
    no ip route 10.1.1.1/32 ppp1
    no ip rou 0.0.0.0/0 tunnel1
    ping-poll 1
    active
    ping-poll 2
    no active
    end
    clear isakmp sa