＜前頁 次頁＞ ＜＜ ＞＞ ↓ 目次 （番号順 (詳細)・ 回線別 (詳細)・ 機能別 (詳細)）

CentreCOM AR550S 設定例集 2.9 #169

# Pingポーリングによるメイン回線からインターネットVPNバックアップへの自動切り替え（ISP接続＋フレッツグループアクセス〜アドレスLAN型編〜）

PPPoEセッションを2本使い、拠点間通信にフレッツグループアクセス（以下「FGA」と省略します）を利用し、バックアップ回線としてインターネットVPNを利用するネットワークを構築します。

この例では、ルーターとして本製品をセンター側（ルーターA）、拠点側（ルーターB）に設置するネットワーク構成を例に解説します。
ここでは、それぞれの拠点ルーターのインターフェースに次の接続を想定して説明します。

表 1：インターフェース
インターフェース名 | 接続
ppp0 | PPPoE、ISP接続、インターネットVPN接続、バックアップ回線
ppp1 | PPPoE、FGA接続

インターネットサービスプロバイダー（ISP）、およびFGAのグループ管理者からは、次の情報を提供されているものとします。

表 2：ISPおよびFGAグループ管理者から提供された情報
| ルーターA（センター側） | ルーターB（拠点側）
インターフェース | ppp0 | ppp1 | ppp0 | ppp1
PPPユーザー名 | center@isp | center@flets | branch@isp | branch@flets
PPPパスワード | centpass | fletsa | brapass | fletsb
PPPoEサービス名 | 指定なし | 指定なし | 指定なし | 指定なし
IPアドレス | 200.100.10.1/32 | 192.168.1.0/24（LAN型） | - | 192.168.2.0/24（LAN型）
グローバルアドレス1個（固定） | - | グローバルアドレス1個（不定） | -
DNSサーバー | 接続時に通知される | 接続時に通知される | 接続時に通知される | 接続時に通知される

以下、ルーターA、ルーターBの基本設定についてまとめます。

表 3：ルーターの基本設定
| ルーターA | ルーターB
WAN側物理インターフェース | eth0 | eth0
WAN側（ppp0）IPアドレス(1) | 200.100.10.1(固定) | 接続時にISPから取得する
WAN側（ppp1）IPアドレス(2) | Unnumbered | Unnumbered
LAN側（vlan1）IPアドレス | 192.168.1.254/24(vlan1) | 192.168.2.254/24(vlan1)

また、次のような環境を想定しています。

- FGAと各ルーター間、ISPとルーター間をPPPoE接続する
- インターネット向けの通信はそれぞれの拠点で契約しているISPを利用し、拠点間通信はFGA経由で行う
- 拠点間通信では、FGAにてLAN型で払い出されたアドレスをそのまま使用して通信を行う（NATは使用しない）
- ルーターAでは、WAN側（ppp1）インターフェースをマルチホーミングし、そのうちの一方（ppp1-1）にグローバルアドレスの1つを設定する
  - ルーターAが送信するIPsecパケットの始点アドレスにはこのアドレスがセットされる
  - このような設定をするのは、PPPoEのLAN型接続ではWAN側（ppp1）インターフェースにネットワークアドレス（ホスト部が0のアドレス。始点アドレスとしては使用できないため事実上のUnnumbered）が割り当てられるため
  - 詳細は章末の「メモ」を参照
- インターネットVPNでは、拠点側ルーターのWANアドレスが不定のため、拠点側からのみ通信を開始することができる
- Pingポーリングを対向ルーターのLAN側インターフェースに向け、定期的に通信状況を確認し、障害発生時にはトリガーを起動してバックアップ回線（PPPoE+インターネットVPN）へ通信ルートを切り替える
- それぞれの拠点からインターネット通信を行うために、ルーターのISP接続インターフェース（ppp0）にENATを設定する

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

- センター/拠点からのインターネット向けの通信ルート
  ルーターAのLAN側からISP宛に送出されたパケットは、ルーターAのLAN側インターフェース（vlan1）からルーターAのppp0に転送され、プライベートアドレス（192.168.1.x/24）からppp0のグローバルアドレス（200.100.10.1/32）にENAT変換されてパケットが転送されます。同様に、ルーターBのLAN側からISP宛に送出されたパケットは、ルーターBのLAN側インターフェース（vlan1）からルーターBのppp0に転送され、プライベートアドレス（192.168.2.x/24）からppp0のグローバルアドレス（200.100.20.1/32）にENAT変換されてパケットが転送されます。
- センター/拠点間の通信ルート
  ルーターAのLAN側から拠点（ルーターB）宛に送出されたパケットは、ppp1インターフェースから、LAN型で払い出されたアドレス（192.168.1.x/24）を使用してそのままルーターBのvlan1へ届きます。同様に、ルーターBのLAN側からセンター（ルーターA）宛に送出されたパケットは、ppp1インターフェースからLAN型で払い出されたアドレス（192.168.2.x/24）を使用してそのままルーターAのvlan1へ届きます。

■ 障害発生時（バックアップ回線使用時）の通信は以下のように行われます。

- センター/拠点からのインターネット向けの通信ルート
  通常接続時と同様、ルーターAのLAN側からISP宛に送出されたパケットは、ルーターAのLAN側インターフェース（vlan1）からルーターAのppp0に転送され、プライベートアドレス（192.168.1.x/24）からppp0のグローバルアドレス（200.100.10.1/32）にENAT変換されてパケットが転送されます。同様に、ルーターBのLAN側からISP宛に送出されたパケットは、ルーターBのLAN側インターフェース（vlan1）からルーターBのppp0に転送され、プライベートアドレス（192.168.2.x/24）からppp0のグローバルアドレス（200.100.20.1/32）にENAT変換されてパケットが転送されます。
- センター/拠点間の通信ルート
  ルーターAのLAN側から拠点（ルーターB）宛に送出されたパケットは、ルーターAのLAN側インターフェース（vlan1）からルーターAのppp0に転送されます。その後、インターネットVPNを経由してルーターBのppp0へ届き、ルーターBのLAN側インターフェース（vlan1）に転送されます。
  同様に、ルーターBのLAN側からセンター（ルーターA）宛に送出されたパケットはルーターBのppp0インターフェースへ転送されます。その後、インターネットVPNを経由してルーターAのppp0へ届き、ルーターAのLAN側インターフェース（vlan1）に転送されます。このとき、IPsecを経由した通信が未確立の場合は、拠点間通信を開始する側（拠点側）から通信を開始します。

ルーターAの設定

1. セキュリティーモードで管理設定を行うことができるSecurity Officerレベルのユーザーを作成します。

   `ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓`

   > Note - Security Officerレベルのユーザーを作成しておかないと、セキュリティーモードに移行できませんのでご注意ください。

2. eth0インターフェース上にppp0インターフェースを作成します。ここでは、サービス名に「ANY」を設定しています。ISPから通知されたPPPoE認証のユーザー名とパスワードを指定します。ここでは、BAPを「OFF」、ユーザー名に「center@isp」、パスワードに「centpass」を設定しています。リンク状態の監視にLCP Echoパケットを使用するため、LQRを「OFF」、ECHOを「ON」に設定します。

   `CREATE PPP=0 OVER=eth0-ANY ↓
   SET PPP=0 BAP=OFF USERNAME=center@isp PASSWORD=centpass ↓
   SET PPP=0 OVER=eth0-ANY LQR=OFF ECHO=ON ↓
   `
3. 2.と同様にeth0インターフェース上にppp1インターフェースを作成します。ユーザー名に「center@flets」、パスワードに「fletsa」を設定しています。

   `CREATE PPP=1 OVER=eth0-ANY ↓
   SET PPP=1 BAP=OFF USERNAME=center@flets PASSWORD=fletsa ↓
   SET PPP=1 OVER=eth0-ANY LQR=OFF ECHO=ON ↓
   `
4. IPモジュールを有効にします。

   `ENABLE IP ↓`
5. IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。

   `ENABLE IP REMOTEASSIGN ↓`
6. LAN側インターフェース（vlan1）にFGAから割り当てられたグローバルアドレスのうちの1つ「192.168.1.254/24」を設定します。

   `ADD IP INTERFACE=vlan1 IPADDRESS=192.168.1.254 MASK=255.255.255.0 ↓`
7. ISPから通知されたIPアドレス「200.100.10.1/32」をppp0インターフェースに設定します。

   `ADD IP INTERFACE=ppp0 IPADDRESS=200.100.10.1 MASK=255.255.255.255 ↓`
8. FGA側（ppp1）インターフェースをマルチホーミングし、ppp1-0をUnnumberedに設定します。

   `ADD IP INTERFACE=ppp1-0 IPADDRESS=0.0.0.0 ↓`
9. マルチホーミングしているもう1つのインターフェース（ppp1-1）にISPから割り当てられたグローバルアドレスの先頭アドレス「192.168.1.1」を32ビットマスクで割り当てます。デフォルトルートをこのインターフェースに向けることで、pingポーリングパケットの始点アドレスとしてこのアドレスが使われるようにします。

   `ADD IP INTERFACE=ppp1-1 IPADDRESS=192.168.1.1 MASK=255.255.255.255 ↓`
10. スタティックルートを設定します。この設定で、ルーターBのLAN側インターフェース（vlan1）にPingポーリングのICMPパケットをルーティングします。これは、ルーターAが送信するPingポーリングパケットの始点アドレスとして、ppp1-1のアドレスが使われるようにするためです（通常、本製品自身がパケットを送信するときは、送出インターフェース（ppp1-0）のアドレスを始点アドレスとして使います）。

    `ADD IP ROUTE=192.168.2.1 MASK=255.255.255.255 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓`

    > Note - 後述のとおり、192.168.2.0のルートは回線切断時にトリガーによりIPsec(ppp0)側に書き換わってしまうため、デフォルトルートとは別々に設定を行います。

11. スタティックルートを設定します。この設定で、ルーターBのLAN側宛のパケットをFGA側へ送出させます。

    `ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓`
12. デフォルトルートを設定します。この設定で、インターネット向けの通信をルーティングします。

    `ADD IP ROUTE=0.0.0.0 MASK=0.0.0.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓`
13. ファイアウォール機能を有効にします。

    `ENABLE FIREWALL ↓`
14. ファイアウォールポリシーを作成します。ここでは、ポリシー名を「net」としています。

    `CREATE FIREWALL POLICY=net ↓`
15. ICMPパケットはPing（Echo/EchoReply）とUnreachableのみ通過させるように設定します。

    `ENABLE FIREWALL POLICY=net ICMP_FORWARDING=PING,UNREACH ↓`
16. identプロキシー機能を無効にします。identプロキシーは、FIREWALL有効時に、外部から内部へのident要求に対して代理応答する機能です。無効に設定した場合、ident接続要求に対してRSTを返し、TCPコネクションをただちに終了させます。

    `DISABLE FIREWALL POLICY=net IDENTPROXY ↓`
17. ファイアウォール適用対象の各インターフェースを設定します。

    `ADD FIREWALL POLICY=net INTERFACE=vlan1 TYPE=PRIVATE ↓
    ADD FIREWALL POLICY=net INTERFACE=ppp0 TYPE=PUBLIC ↓
    ADD FIREWALL POLICY=net INTERFACE=ppp1-0 TYPE=PUBLIC ↓
    ADD FIREWALL POLICY=net INTERFACE=ppp1-1 TYPE=PUBLIC ↓
    `
18. LAN側インターフェース（vlan1）にENATの設定をします。

    `ADD FIREWALL POLICY=net NAT=ENHANCED INTERFACE=vlan1 GBLINTERFACE=ppp0 GBLIP=200.100.10.1 ↓`
19. 相手ルーターから受信したIKEパケット（UDP500番）がファイアウォールを通過できるように設定します。

    `ADD FIREWALL POLICY=net RULE=1 ACTION=ALLOW INTERFACE=ppp0 PROTOCOL=UDP GBLPORT=500 GBLIP=200.100.10.1 PORT=500 IP=200.100.10.1 ↓`
20. IPsec通信を行う際、ローカルLANからリモートLANへのパケットにはNATをかけないように設定します。

    `ADD FIREWALL POLICY=net RULE=2 ACTION=NON INTERFACE=vlan1 PROTOCOL=ALL IP=192.168.1.1-192.168.1.254 ↓
    SET FIREWALL POLICY=net RULE=2 REMOTEIP=192.168.2.1-192.168.2.254 ↓
    `
21. 基本ルールのままではIPsecパケットが遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットの終点が192.168.1.1〜192.168.1.254、つまり、ローカル側LANならばNATの対象外とする」の意味になります。

    `ADD FIREWALL POLICY=net RULE=3 ACTION=NON INTERFACE=ppp0 PROTOCOL=ALL IP=192.168.1.1-192.168.1.254 ENCAP=IPSEC ↓`
22. 基本ルールのままではFGA経由の拠点側からのパケット（送信元アドレスが192.168.2.0/24のパケット）がFirewallにより遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。

    `ADD FIREWALL POLICY=net RULE=4 ACTION=ALLOW INTERFACE=ppp1-1 PROTOCOL=ALL ↓
    SET FIREWALL POLICY=net RULE=4 REMOTE=192.168.2.1-192.168.2.254 ↓
    `
23. ルーターBのLAN側インターフェース（vlan1）を監視対象としてPingポーリングの設定をします。ここでは、PingポーリングIDを「1」に設定しています。NORMALINTERVALは監視対象機器がUPのときのポーリング間隔（秒）、UPCOUNTは機器の状態が「Down」「Critical Down」から「UP」に戻るのに必要な連続した「応答あり」の数です。SAMPLESIZEは、到達性判断のために保持しておくPingパケットの数です。ここではNORMALINTERVALを「10」、UPCOUNTを「5」、SAMPLESIZEを「10」に設定しています。

    `ADD PING POLL=1 IPADDRESS=192.168.2.1 NORMALINTERVAL=10 UPCOUNT=5 SAMPLESIZE=10 ↓`
24. Pingポーリングを有効にします。

    `ENABLE PING POLL=1 ↓`
25. ISAKMP用の事前共有鍵（pre-shared key）を作成します。ここでは鍵番号を「1」番とし、鍵の値は「secret」という文字列で指定します（ルーターBと同じに設定）。

    `CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓`

    > Note - CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド（内蔵スクリーンエディター）などで設定スクリプトファイル（.CFG）にこのコマンドを記述しても無効になりますのでご注意ください。

    > Note - CREATE ENCO KEYコマンドで作成された鍵は、ノーマルモードでは、ルーターの再起動によって消去されます。暗号鍵を使用する場合は、必ずセキュリティーモードに移行して鍵が保存されるようにしてください。

26. ルーターBとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。KEYには、前の手順で作成した事前共有鍵（鍵番号「1」）を指定し、HEARTBEATMODEにBOTHを指定して、ISAKMPハートビートを使用します。また、この例では相手のアドレスが不定なため、PEERにANYを、REMOTEIDで相手の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。

    `CREATE ISAKMP POLICY="i" PEER=ANY KEY=1 SENDN=TRUE HEARTBEATMODE=BOTH REMOTEID="client" MODE=AGGRESSIVE ↓`
27. IPsec通信の仕様を定義するSAスペック「1」を作成します。トンネルモード（デフォルト）、鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。

    `CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓`
28. SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。

    `CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓`
29. ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット（ISAKMP）に設定します。

    `CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓`
30. 実際のIPsec通信に使用するIPsecポリシー「vpn」を、PPPインターフェース「0」に対して作成します。鍵管理方式には「ISAKMP」を、BUNDLEにはSAバンドルスペック「1」を指定します。相手のIPアドレスが不定なので、ISAKMPの認証をパスしたものだけを指定する意味で、PEERにDYNAMICを指定します。

    `CREATE IPSEC POLICY="vpn" INTERFACE=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓`
31. IPsecポリシー「vpn」に対して実際にIPsec通信を行うIPアドレスの範囲を指定します。コマンドが長くなるため、できるだけ省略形を用いてください。

    `SET IPSEC POLICY="vpn" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.2.0 RMA=255.255.255.0 ↓`
32. インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。

    `CREATE IPSEC POLICY="inet" INTERFACE=ppp0 ACTION=PERMIT ↓`

    > Note - インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。

33. Security Officerレベルのユーザーでログインしなおします。

    `LOGIN secoff ↓`
34. 動作モードをセキュリティーモードに切り替えます。

    `ENABLE SYSTEM SECURITY_MODE ↓`

    > Note - セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO（Remote Security Officer）の設定を行っておいてください（ENABLE USER RSOコマンド）。

35. pingポーリングでFGA上の経路ステータスが変化した場合のスクリプトを作成します。
    ルーターAのFGA側（ppp1側）インターフェースでのpingポーリングステートが「down」になった場合に、ppp0側にあらかじめ設定されているIPsec設定を有効にし、FGA経由の拠点間通信パケットのスタティックルートを削除し、IPsec（ppp0）を経由するスタティックルートを追加するスクリプト「pingd.scp」を作成します。

    `ADD SCRIPT=pingd.scp TEXT="ENABLE ISAKMP" ↓
    ADD SCRIPT=pingd.scp TEXT="ENABLE IPSEC" ↓
    ADD SCRIPT=pingd.scp TEXT="DELETE IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    ADD SCRIPT=pingd.scp TEXT="ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0" ↓
    `

    > Note - ADD SCRIPTコマンドは、コンソールなどからログインした状態で、コマンドラインから実行するコマンドです。そのため、EDITコマンド（内蔵フルスクリーンエディター）などを使って設定スクリプトファイル（.CFG）にこのコマンドを記述しても意図した結果にならない場合がありますのでご注意ください。

    > Note - このスクリプトが作動すると192.168.2.0/24宛のルートはppp0へ経由になりますが、pingポーリング用のルートはスタティックルートで別に設定しているため、pingポーリングのルートが変わることはありません。

    > Note - IPsecを経由するスタティックルートは追加しなくても、デフォルトルートであるppp0へ送信されますが、切り替えをスムーズに行う目的であえて追加しています。

36. ルーターAのFGA側（ppp1側）インターフェースでのpingポーリングステートが「up」になった場合に、ルーターBのLAN側アドレス宛に送出される拠点間通信パケットをFGA経由で送出するスタティックルートを追加し、IPsec（ppp0）を経由するスタティックルートを削除し、ppp0側で有効になっているIPsec設定を無効にするスクリプト「pingu.scp」を作成します。（このスタティックルートの追加により、拠点間通信のパケットが再びFGA経由で送出されるようになります。）

    `ADD SCRIPT=pingu.scp TEXT="DELETE IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓
    ADD SCRIPT=pingu.scp TEXT="ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    ADD SCRIPT=pingu.scp TEXT="DISABLE IPSEC" ↓
    ADD SCRIPT=pingu.scp TEXT="DISABLE ISAKMP" ↓
    `
37. ppp1インターフェースのステータス変化を検知した場合のスクリプトを作成します。
    インターフェーストリガーを併用することにより、インターフェースがダウンした場合にpingポーリングよりも早くステータスの変化を検知させることができます。ここでは、インターフェースがダウンした場合に、FGA経由のスタティックルートを削除し、あらかじめ設定されているIPsec設定をenableにするスクリプト「down.scp」を作成します。またインターフェースのダウンの場合、経路が変わるとL2TPパケットがIPsec側に回り込んでしまうことがあるため、経路を変更すると同時にpingポーリングをdisableにします。

    `ADD SCRIPT=down.scp TEXT="ENABLE ISAKMP" ↓
    ADD SCRIPT=down.scp TEXT="ENABLE IPSEC" ↓
    ADD SCRIPT=down.scp TEXT="DISABLE PING POL=1" ↓
    ADD SCRIPT=down.scp TEXT="DELETE IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    `
38. FGA(ppp1)インターフェースが復旧した場合に、FGA経由のスタティックルートを追加し、disableになっていたpingポーリングをenableにするスクリプト「up.scp」を作成します。

    `ADD SCRIPT=up.scp TEXT=" ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    ADD SCRIPT=up.scp TEXT=" ENA PING POL=1" ↓
    ADD SCRIPT=up.scp TEXT=" DISABLE IPSEC" ↓
    ADD SCRIPT=up.scp TEXT=" DISABLE ISAKMP" ↓
    `
39. トリガー機能を有効にします。

    `ENABLE TRIGGER ↓`
40. PingポーリングによりデバイスのUPを検出すると、先に作成したスクリプト「pingu.scp」を実行するトリガー「1」を作成します。

    `CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=pingu.scp ↓`
41. PingポーリングによりデバイスのDOWNを検出すると、先に作成したスクリプト「pingd.scp」を実行するトリガー「2」を作成します。

    `CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=pingd.scp ↓`
42. インターフェースイベント「UP」を検出すると、先に作成したスクリプト「up.scp」を実行するトリガー「3」を作成します。

    `CREATE TRIGGER=3 INTERFACE=ppp1 EVENT=UP CP=LCP SCRIPT=up.scp ↓`
43. インターフェースイベント「DOWN」を検出すると、先に作成したスクリプト「down.scp」を実行するトリガー「4」を作成します。

    `CREATE TRIGGER=4 INTERFACE=ppp1 EVENT=DOWN CP=LCP SCRIPT=down.scp ↓`
44. 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。

    `CREATE CONFIG=router.cfg ↓
    SET CONFIG=router.cfg ↓
    `

ルーターBの設定

1. セキュリティーモードで管理設定を行うことができるSecurity Officerレベルのユーザーを作成します。

   `ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓`

   > Note - Security Officerレベルのユーザーを作成しておかないと、セキュリティーモードに移行できませんのでご注意ください。

2. eth0インターフェース上にppp0インターフェースを作成します。ここでは、サービス名に「ANY」を設定しています。ISPから通知されたPPPoE認証のユーザー名とパスワードを指定します。ここでは、BAPを「OFF」、ユーザー名に「branch@isp」、パスワードに「brapass」を設定しています。リンク状態の監視にLCP Echoパケットを使用するため、LQRを「OFF」、ECHOを「ON」に設定します。

   `CREATE PPP=0 OVER=eth0-ANY ↓
   SET PPP=0 BAP=OFF USERNAME=branch@isp PASSWORD=brapass ↓
   SET PPP=0 OVER=eth0-ANY LQR=OFF ECHO=ON ↓
   `
3. 2.と同様にeth0インターフェース上にppp1インターフェースを作成します。ユーザー名に「branch@flets」、パスワードに「fletsb」を設定しています。

   `CREATE PPP=1 OVER=eth0-ANY ↓
   SET PPP=1 BAP=OFF USERNAME=branch@flets PASSWORD=fletsb ↓
   SET PPP=1 OVER=eth0-ANY LQR=OFF ECHO=ON ↓
   `
4. IPモジュールを有効にします。

   `ENABLE IP ↓`
5. IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。

   `ENABLE IP REMOTEASSIGN ↓`
6. LAN側インターフェース（vlan1）にFGAから割り当てられたグローバルアドレスのうちの1つ「192.168.2.254/24」を設定します。

   `ADD IP INTERFACE=vlan1 IPADDRESS=192.168.2.254 MASK=255.255.255.0 ↓`
7. ppp0のインターフェースにIPアドレス「0.0.0.0」を設定します。ISPとの接続が確立するまでIPアドレスは確定しません。

   `ADD IP INTERFACE=ppp0 IPADDRESS=0.0.0.0 ↓`
8. FGA側（ppp1）インターフェースをマルチホーミングし、ppp1-0をUnnumberedに設定します。

   `ADD IP INTERFACE=ppp1-0 IPADDRESS=0.0.0.0 ↓`
9. マルチホーミングしているもう1つのインターフェース（ppp1-1）にISPから割り当てられたグローバルアドレスの先頭アドレス「192.168.1.1」を32ビットマスクで割り当てます。デフォルトルートをこのインターフェースに向けることで、IPsecパケットの始点アドレスとしてこのアドレスが使われるようにします。

   `ADD IP INTERFACE=ppp1-1 IPADDRESS=192.168.2.1 MASK=255.255.255.255 ↓`
10. スタティックルートを設定します。この設定で、ルーターAのLAN側インターフェース（vlan1）にPingポーリングのICMPパケットをルーティングします。これは、ルーターBが送信するPingポーリングパケットの始点アドレスとして、ppp1-1のアドレスが使われるようにするためです（通常、本製品自身がパケットを送信するときは、送出インターフェース（ppp1-0）のアドレスを始点アドレスとして使います）。

    `ADD IP ROUTE=192.168.1.1 MASK=255.255.255.255 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓`

    > Note - 後述のとおり、192.168.1.0のルートは回線切断時にトリガーによりIPsec(ppp0)側に書き換わってしまうため、デフォルトルートとは別々に設定を行います。

11. スタティックルートを設定します。この設定で、ルーターAのLAN側宛のパケットをFGA側へ送出させます。

    `ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓`
12. デフォルトルートを設定します。この設定で、インターネット向けの通信をルーティングします。

    `ADD IP ROUTE=0.0.0.0 MASK=0.0.0.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓`
13. ファイアウォール機能を有効にします。

    `ENABLE FIREWALL ↓`
14. ファイアウォールポリシーを作成します。ここでは、ポリシー名を「net」としています。

    `CREATE FIREWALL POLICY=net ↓`
15. ICMPパケットはPing（Echo/EchoReply）とUnreachableのみ通過させるように設定します。

    `ENABLE FIREWALL POLICY=net ICMP_FORWARDING=PING,UNREACH ↓`
16. identプロキシー機能を無効にします。identプロキシーは、FIREWALL有効時に、外部から内部へのident要求に対して代理応答する機能です。無効に設定した場合、ident接続要求に対してRSTを返し、TCPコネクションをただちに終了させます。

    `DISABLE FIREWALL POLICY=net IDENTPROXY ↓`
17. ファイアウォール適用対象の各インターフェースを設定します。

    `ADD FIREWALL POLICY=net INTERFACE=vlan1 TYPE=PRIVATE ↓
    ADD FIREWALL POLICY=net INTERFACE=ppp0 TYPE=PUBLIC ↓
    ADD FIREWALL POLICY=net INTERFACE=ppp1-0 TYPE=PUBLIC ↓
    ADD FIREWALL POLICY=net INTERFACE=ppp1-1 TYPE=PUBLIC ↓
    `
18. LAN側インターフェース（vlan1）にENATの設定をします。

    `ADD FIREWALL POLICY=net NAT=ENHANCED INTERFACE=vlan1 GBLINTERFACE=ppp0 ↓`
19. IPsec通信を行う際、ローカルLANからリモートLANへのパケットにはNATをかけないように設定します。

    `ADD FIREWALL POLICY=net RULE=1 ACTION=NON INTERFACE=vlan1 PROTOCOL=ALL IP=192.168.2.1-192.168.2.254 ↓
    SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.1.1-192.168.1.254 ↓
    `
20. 基本ルールのままではIPsecパケットが遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットの終点が192.168.2.1〜192.168.2.254、つまり、ローカル側LANならばNATの対象外とする」の意味になります。

    `ADD FIREWALL POLICY=net RULE=2 ACTION=NON INTERFACE=ppp0 PROTOCOL=ALL IP=192.168.2.1-192.168.2.254 ENCAP=IPSEC ↓`
21. 基本ルールのままではFGA経由の拠点側からのパケット（送信元アドレスが192.168.1.0/24のパケット）がFirewallにより遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。

    `ADD FIREWALL POLICY=net RULE=3 ACTION=ALLOW INTERFACE=ppp1-1 PROTOCOL=ALL ↓
    SET FIREWALL POLICY=net RULE=3 REMOTE=192.168.1.1-192.168.1.254 ↓
    `
22. ルーターAのLAN側インターフェース（vlan1）を監視対象としてPingポーリングの設定をします。ここでは、PingポーリングIDを「1」に設定しています。NORMALINTERVALは監視対象機器がUPのときのポーリング間隔（秒）、UPCOUNTは機器の状態が「Down」「Critical Down」から「UP」に戻るのに必要な連続した「応答あり」の数です。SAMPLESIZEは、到達性判断のために保持しておくPingパケットの数です。ここではNORMALINTERVALを「10」、UPCOUNTを「5」、SAMPLESIZEを「10」に設定しています。

    `ADD PING POLL=1 IPADDRESS=192.168.1.1 NORMALINTERVAL=10 UPCOUNT=5 SAMPLESIZE=10 ↓`
23. Pingポーリングを有効にします。

    `ENABLE PING POLL=1 ↓`
24. ISAKMP用の事前共有鍵（pre-shared key）を作成します。ここでは鍵番号を「1」番とし、鍵の値は「secret」という文字列で指定します（ルーターBと同じに設定）。

    `CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓`

    > Note - CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド（内蔵スクリーンエディター）などで設定スクリプトファイル（.CFG）にこのコマンドを記述しても無効になりますのでご注意ください。

    > Note - CREATE ENCO KEYコマンドで作成された鍵は、ノーマルモードでは、ルーターの再起動によって消去されます。暗号鍵を使用する場合は、必ずセキュリティーモードに移行して鍵が保存されるようにしてください。

25. ルーターAとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。KEYには、前の手順で作成した事前共有鍵（鍵番号「1」）を指定し、HEARTBEATMODEにBOTHを指定して、ISAKMPハートビートを使用します。PEERには相手のIPアドレス「200.100.10.1」を指定します。また自分のアドレスが不定なため、LOCALIDで自分の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。

    `CREATE ISAKMP POLICY="i" PEER=200.100.10.1 KEY=1 HEARTBEATMODE=BOTH SENDN=TRUE LOCALID="client" MODE=AGGRESSIVE ↓`
26. IPsec通信の仕様を定義するSAスペック「1」を作成します。トンネルモード（デフォルト）、鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。

    `CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓`
27. SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。

    `CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓`
28. ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット（ISAKMP）に設定します。

    `CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓`
29. 実際のIPsec通信に使用するIPsecポリシー「vpn」を、PPPインターフェース「0」に対して作成します。鍵管理方式には「ISAKMP」を、PEERにはルーターAのIPアドレスを、BUNDLEにはSAバンドルスペック「1」を指定します。

    `CREATE IPSEC POLICY="vpn" INTERFACE=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=200.100.10.1 ↓`
30. IPsecポリシー「vpn」に対して実際にIPsec通信を行うIPアドレスの範囲を指定します。コマンドが長くなるため、できるだけ省略形を用いてください。

    `SET IPSEC POLICY="vpn" LAD=192.168.2.0 LMA=255.255.255.0 RAD=192.168.1.0 RMA=255.255.255.0 ↓`
31. インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。

    `CREATE IPSEC POLICY="inet" INTERFACE=ppp0 ACTION=PERMIT ↓`

    > Note - インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。

32. Security Officerレベルのユーザーでログインしなおします。

    `LOGIN secoff ↓`
33. 動作モードをセキュリティーモードに切り替えます。

    `ENABLE SYSTEM SECURITY_MODE ↓`

    > Note - セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO（Remote Security Officer）の設定を行っておいてください（ENABLE USER RSOコマンド）。

34. pingポーリングでFGA上の経路ステータスが変化した場合のスクリプトを作成します。
    ルーターBのFGA側（ppp1側）インターフェースでのpingポーリングステートが「down」になった場合に、ppp0側にあらかじめ設定されているIPsec設定を有効にし、FGA経由の拠点間通信パケットのスタティックルートを削除し、IPsec（ppp0）を経由するスタティックルートを追加するスクリプト「pingd.scp」を作成します。

    `ADD SCRIPT=pingd.scp TEXT="ENABLE ISAKMP" ↓
    ADD SCRIPT=pingd.scp TEXT="ENABLE IPSEC" ↓
    ADD SCRIPT=pingd.scp TEXT=" DELETE IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    ADD SCRIPT=pingd.scp TEXT=" ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0" ↓
    `

    > Note - ADD SCRIPTコマンドは、コンソールなどからログインした状態で、コマンドラインから実行するコマンドです。そのため、EDITコマンド（内蔵フルスクリーンエディター）などを使って設定スクリプトファイル（.CFG）にこのコマンドを記述しても意図した結果にならない場合がありますのでご注意ください。

    > Note - このスクリプトが作動すると192.168.1.0/24宛のルートはppp0へ経由になりますが、pingポーリング用のルートはスタティックルートで別に設定しているため、pingポーリングのルートが変わることはありません。

    > Note - IPsecを経由するスタティックルートは追加しなくても、デフォルトルートであるppp0へ送信されますが、切り替えをスムーズに行う目的であえて追加しています。

35. ルーターAのFGA側（ppp1側）インターフェースでのpingポーリングステートが「up」になった場合に、ルーターBのLAN側アドレス宛に送出される拠点間通信パケットをFGA経由で送出するスタティックルートを追加し、IPsec（ppp0）を経由するスタティックルートを削除し、ppp0側で有効になっているIPsec設定を無効にするスクリプト「pingu.scp」を作成します。（このスタティックルートの追加により、拠点間通信のパケットが再びFGA経由で送出されるようになります。）

    `ADD SCRIPT=pingu.scp TEXT=" DELETE IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0" ↓
    ADD SCRIPT=pingu.scp TEXT=" ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    ADD SCRIPT=pingu.scp TEXT="DISABLE IPSEC" ↓
    ADD SCRIPT=pingu.scp TEXT="DISABLE ISAKMP" ↓
    `
36. ppp1インターフェースのステータス変化を検知した場合のスクリプトを作成します。
    インターフェーストリガーを併用することにより、インターフェースがダウンした場合にpingポーリングよりも早くステータスの変化を検知させることができます。ここでは、インターフェースがダウンした場合に、FGA経由のスタティックルートを削除し、あらかじめ設定されているIPsec設定をenableにするスクリプト「down.scp」を作成します。またインターフェースのダウンの場合、経路が変わるとL2TPパケットがIPsec側に回り込んでしまうことがあるため、経路を変更すると同時にpingポーリングをdisableにします。

    `ADD SCRIPT=down.scp TEXT="ENABLE ISAKMP" ↓`

    `ADD SCRIPT=down.scp TEXT="ENABLE IPSEC" ↓`

    `ADD SCRIPT=down.scp TEXT="DISABLE PING POL=1" ↓`

    `ADD SCRIPT=down.scp TEXT=" DELETE IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓`
37. FGA(ppp1)インターフェースが復旧した場合に、FGA経由のスタティックルートを追加し、disableになっていたpingポーリングをenableにするスクリプト「up.scp」を作成します。

    `ADD SCRIPT=up.scp TEXT=" ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0" ↓
    ADD SCRIPT=up.scp TEXT=" ENA PING POL=1" ↓
    ADD SCRIPT=up.scp TEXT=" DISABLE IPSEC" ↓
    ADD SCRIPT=up.scp TEXT=" DISABLE ISAKMP" ↓
    `
38. トリガー機能を有効にします。

    `ENABLE TRIGGER ↓`
39. PingポーリングによりデバイスのUPを検出すると、先に作成したスクリプト「pingu.scp」を実行するトリガー「1」を作成します。

    `CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=pingu.scp ↓`
40. PingポーリングによりデバイスのDOWNを検出すると、先に作成したスクリプト「pingd.scp」を実行するトリガー「2」を作成します。

    `CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=pingd.scp ↓`
41. インターフェースイベント「UP」を検出すると、先に作成したスクリプト「up.scp」を実行するトリガー「3」を作成します。

    `CREATE TRIGGER=3 INTERFACE=ppp1 EVENT=UP CP=LCP SCRIPT=up.scp ↓`
42. インターフェースイベント「DOWN」を検出すると、先に作成したスクリプト「down.scp」を実行するトリガー「4」を作成します。

    `CREATE TRIGGER=4 INTERFACE=ppp1 EVENT=DOWN CP=LCP SCRIPT=down.scp ↓`
43. 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。

    `CREATE CONFIG=router.cfg ↓
    SET CONFIG=router.cfg ↓
    `

メモ

PPPoEのLAN型接続では、IPCPネゴシエーションによって、WAN側（PPP）インターフェースにネットワークアドレス（ホスト部が0のアドレス）が割り当てられます。ネットワークアドレスはホストアドレスとしては使用できないため事実上Unnumberedと同じですが、厳密に言うと専用線接続などで使用するUnnumberedとは異なります。
ルーター自身がWAN側インターフェースからIPパケットを送出する場合を考えます。純粋なUnnumberedでは、送出インターフェースにアドレスが設定されていないため、他のインターフェースのアドレスを使用します。しかし、PPPoE LAN 型の場合は、WAN 側インターフェースにネットワークアドレスがアサインされるため、パケットの始点としては本来使用すべきでないこのネットワークアドレスがそのまま使用されることになります。
通常は、ルーター自身がパケットを送信することがないため、このことを意識する必要はありません。しかし、IPsecやpingポーリングといったルーター自身がパケットを送出する機能を使用するときは、始点アドレスに有効なアドレスが使われるよう注意が必要です。これには、WAN側インターフェースをマルチホーミングし、一方に有効なアドレスを設定した上で、デフォルトルートをそちらに向ける必要があります。ここでは、ISPから192.168.1.0/24のアドレスを割り当てられているものと仮定します。

`ADD IP INT=vlan1-0 IP=192.168.1.254 ↓
ADD IP INT=ppp0-0 IP=0.0.0.0 MASK=0.0.0.0 ↓
ADD IP INT=ppp0-1 IP=192.168.1.1 MASK=255.255.255.255 ↓
ADD IP ROU=0.0.0.0 MASK=0.0.0.0 INT=ppp0-1 NEXT=0.0.0.0 ↓
`

これにより、ルーター自身が送出するWAN側へのパケットはppp0-1にルーティングされ、始点アドレスとして192.168.1.1が使用されるようになります。

まとめ

ルーターAのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル（.cfg）に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。

`ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓ CREATE PPP=0 OVER=eth0-ANY ↓ SET PPP=0 BAP=OFF USERNAME=center@isp PASSWORD=centpass ↓ SET PPP=0 OVER=eth0-ANY LQR=OFF ECHO=ON ↓ CREATE PPP=1 OVER=eth0-ANY ↓ SET PPP=1 BAP=OFF USERNAME=center@flets PASSWORD=fletsa ↓ SET PPP=1 OVER=eth0-ANY LQR=OFF ECHO=ON ↓ ENABLE IP ↓ ENABLE IP REMOTEASSIGN ↓ ADD IP INTERFACE=vlan1 IPADDRESS=192.168.1.254 MASK=255.255.255.0 ↓ ADD IP INTERFACE=ppp0 IPADDRESS=200.100.10.1 MASK=255.255.255.255 ↓ ADD IP INTERFACE=ppp1-0 IPADDRESS=0.0.0.0 ↓ ADD IP INTERFACE=ppp1-1 IPADDRESS=192.168.1.1 MASK=255.255.255.255 ↓ ADD IP ROUTE=192.168.2.1 MASK=255.255.255.255 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ADD IP ROUTE=0.0.0.0 MASK=0.0.0.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓ ENABLE FIREWALL ↓ CREATE FIREWALL POLICY=net ↓ ENABLE FIREWALL POLICY=net ICMP_FORWARDING=PING,UNREACH ↓ DISABLE FIREWALL POLICY=net IDENTPROXY ↓ ADD FIREWALL POLICY=net INTERFACE=vlan1 TYPE=PRIVATE ↓ ADD FIREWALL POLICY=net INTERFACE=ppp0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net INTERFACE=ppp1-0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net INTERFACE=ppp1-1 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net NAT=ENHANCED INTERFACE=vlan1 GBLINTERFACE=ppp0 GBLIP=200.100.10.1 ↓ ADD FIREWALL POLICY=net RULE=1 ACTION=ALLOW INTERFACE=ppp0 PROTOCOL=UDP GBLPORT=500 GBLIP=200.100.10.1 PORT=500 IP=200.100.10.1 ↓ ADD FIREWALL POLICY=net RULE=2 ACTION=NON INTERFACE=vlan1 PROTOCOL=ALL IP=192.168.1.1-192.168.1.254 ↓ SET FIREWALL POLICY=net RULE=2 REMOTEIP=192.168.2.1-192.168.2.254 ↓ ADD FIREWALL POLICY=net RULE=3 ACTION=NON INTERFACE=ppp0 PROTOCOL=ALL IP=192.168.1.1-192.168.1.254 ENCAP=IPSEC ↓ ADD FIREWALL POLICY=net RULE=4 ACTION=ALLOW INTERFACE=ppp1-1 PROTOCOL=ALL ↓ SET FIREWALL POLICY=net RULE=4 REMOTE=192.168.2.1-192.168.2.254 ↓ ADD PING POLL=1 IPADDRESS=192.168.2.1 NORMALINTERVAL=10 UPCOUNT=5 SAMPLESIZE=10 ↓ ENABLE PING POLL=1 ↓ # CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓ CREATE ISAKMP POLICY="i" PEER=ANY KEY=1 SENDN=TRUE HEARTBEATMODE=BOTH REMOTEID="client" MODE=AGGRESSIVE ↓ CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓ CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓ CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓ CREATE IPSEC POLICY="vpn" INTERFACE=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓ SET IPSEC POLICY="vpn" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.2.0 RMA=255.255.255.0 ↓ CREATE IPSEC POLICY="inet" INTERFACE=ppp0 ACTION=PERMIT ↓ # LOGIN secoff ↓ # ENABLE SYSTEM SECURITY_MODE ↓ ENABLE TRIGGER ↓ CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=pingu.scp ↓ CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=pingd.scp ↓ CREATE TRIGGER=3 INTERFACE=ppp1 EVENT=UP CP=LCP SCRIPT=up.scp ↓ CREATE TRIGGER=4 INTERFACE=ppp1 EVENT=DOWN CP=LCP SCRIPT=down.scp ↓`

スクリプト「pingd.scp」 [テキスト版]

`ENABLE ISAKMP ↓ ENABLE IPSEC ↓ DELETE IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓`

スクリプト「pingu.scp」 [テキスト版]

`DELETE IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓ ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ DISABLE IPSEC ↓ DISABLE ISAKMP ↓`

スクリプト「down.scp」 [テキスト版]

`ENABLE ISAKMP ↓ ENABLE IPSEC ↓ DISABLE PING POL=1 ↓ DELETE IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓`

スクリプト「up.scp」 [テキスト版]

`ADD IP ROUTE=192.168.2.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ENA PING POL=1 ↓ DISABLE IPSEC ↓ DISABLE ISAKMP ↓`

ルーターBのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル（.cfg）に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。

`ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓ CREATE PPP=0 OVER=eth0-ANY ↓ SET PPP=0 BAP=OFF USERNAME=branch@isp PASSWORD=brapass ↓ SET PPP=0 OVER=eth0-ANY LQR=OFF ECHO=ON ↓ CREATE PPP=1 OVER=eth0-ANY ↓ SET PPP=1 BAP=OFF USERNAME=branch@flets PASSWORD=fletsb ↓ SET PPP=1 OVER=eth0-ANY LQR=OFF ECHO=ON ↓ ENABLE IP ↓ ENABLE IP REMOTEASSIGN ↓ ADD IP INTERFACE=vlan1 IPADDRESS=192.168.2.254 MASK=255.255.255.0 ↓ ADD IP INTERFACE=ppp0 IPADDRESS=0.0.0.0 ↓ ADD IP INTERFACE=ppp1-0 IPADDRESS=0.0.0.0 ↓ ADD IP INTERFACE=ppp1-1 IPADDRESS=192.168.2.1 MASK=255.255.255.255 ↓ ADD IP ROUTE=192.168.1.1 MASK=255.255.255.255 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ADD IP ROUTE=0.0.0.0 MASK=0.0.0.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓ ENABLE FIREWALL ↓ CREATE FIREWALL POLICY=net ↓ ENABLE FIREWALL POLICY=net ICMP_FORWARDING=PING,UNREACH ↓ DISABLE FIREWALL POLICY=net IDENTPROXY ↓ ADD FIREWALL POLICY=net INTERFACE=vlan1 TYPE=PRIVATE ↓ ADD FIREWALL POLICY=net INTERFACE=ppp0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net INTERFACE=ppp1-0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net INTERFACE=ppp1-1 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net NAT=ENHANCED INTERFACE=vlan1 GBLINTERFACE=ppp0 ↓ ADD FIREWALL POLICY=net RULE=1 ACTION=NON INTERFACE=vlan1 PROTOCOL=ALL IP=192.168.2.1-192.168.2.254 ↓ SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.1.1-192.168.1.254 ↓ ADD FIREWALL POLICY=net RULE=2 ACTION=NON INTERFACE=ppp0 PROTOCOL=ALL IP=192.168.2.1-192.168.2.254 ENCAP=IPSEC ↓ ADD FIREWALL POLICY=net RULE=3 ACTION=ALLOW INTERFACE=ppp1-1 PROTOCOL=ALL ↓ SET FIREWALL POLICY=net RULE=3 REMOTE=192.168.1.1-192.168.1.254 ↓ ADD PING POLL=1 IPADDRESS=192.168.1.1 NORMALINTERVAL=10 UPCOUNT=5 SAMPLESIZE=10 ↓ ENABLE PING POLL=1 ↓ # CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓ CREATE ISAKMP POLICY="i" PEER=200.100.10.1 KEY=1 HEARTBEATMODE=BOTH SENDN=TRUE LOCALID="client" MODE=AGGRESSIVE ↓ CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓ CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓ CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓ CREATE IPSEC POLICY="vpn" INTERFACE=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=200.100.10.1 ↓ SET IPSEC POLICY="vpn" LAD=192.168.2.0 LMA=255.255.255.0 RAD=192.168.1.0 RMA=255.255.255.0 ↓ CREATE IPSEC POLICY="inet" INTERFACE=ppp0 ACTION=PERMIT ↓ # LOGIN secoff ↓ # ENABLE SYSTEM SECURITY_MODE ↓ ENABLE TRIGGER ↓ CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=pingu.scp ↓ CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=pingd.scp ↓ CREATE TRIGGER=3 INTERFACE=ppp1 EVENT=UP CP=LCP SCRIPT=up.scp ↓ CREATE TRIGGER=4 INTERFACE=ppp1 EVENT=DOWN CP=LCP SCRIPT=down.scp ↓`

スクリプト「pingd.scp」 [テキスト版]

`ENABLE ISAKMP ↓ ENABLE IPSEC ↓ DELETE IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓`

スクリプト「pingu.scp」 [テキスト版]

`DELETE IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp0 NEXT=0.0.0.0 ↓ ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ DISABLE IPSEC ↓ DISABLE ISAKMP ↓`

スクリプト「down.scp」 [テキスト版]

`ENABLE ISAKMP ↓ ENABLE IPSEC ↓ DISABLE PING POL=1 ↓ DELETE IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓`

スクリプト「up.scp」 [テキスト版]

`ADD IP ROUTE=192.168.1.0 MASK=255.255.255.0 INTERFACE=ppp1-1 NEXT=0.0.0.0 ↓ ENA PING POL=1 ↓ DISABLE IPSEC ↓ DISABLE ISAKMP ↓`

CentreCOM AR550S 設定例集 2.9 #169

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

PN: J613-M0710-04 Rev.M

＜前頁 次頁＞ ＜＜ ＞＞ ↑ 目次 （番号順 (詳細)・ 回線別 (詳細)・ 機能別 (詳細)）