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

CentreCOM AR550S 設定例集 2.9 #151

# WANロードバランスを使用した3点間VPN接続（自動鍵、全アドレス固定、インターネットアクセスあり）

xDSL回線を2本使ってそれぞれ異なるインターネットサービスプロバイダー（ISP）に接続し、WANロードバランス機能によってトラフィック負荷を分散させます。この例では、VPN接続でインターネット上の3拠点間を結びます。またWANロードバランスの方式としては、トラフィックを均等に配分するRound Robinモードを使います。

> Note - 本機能はオプション機能ですので、ご使用にはフィーチャー（追加機能）ライセンスが必要です。

ISPからは次の情報を提供されているものとします。

表 1：ISPから提供された情報
| ISP1 | ISP2 | ISP3 | ISP4 | ISP5 | ISP6
PPPユーザー名 | aa@isp1.com | bb@isp2.com | cc@isp3.com | dd@isp4.com | ee@isp5.com | ff@isp6.com
PPPパスワード | internet1 | internet2 | internet3 | internet4 | internet5 | internet6
PPPoEサービス名 | 指定なし | 指定なし | 指定なし | 指定なし | 指定なし | 指定なし
IPアドレス | グローバルアドレス1個（固定） | グローバルアドレス1個（固定） | グローバルアドレス1個（固定） | グローバルアドレス1個（固定） | グローバルアドレス1個（固定） | グローバルアドレス1個（固定）

IPsec関連の設定は次のようになります。

表 2：IKEフェーズ1（ISAKMP SAのネゴシエーション）
ルーター間の認証方式 | 事前共有鍵（pre-shared key）
IKE交換モード | Mainモード
事前共有鍵 | secret（文字列）
Oakleyグループ | 1（デフォルト）
ISAKMPメッセージの暗号化方式 | DES（デフォルト）
ISAKMPメッセージの認証方式 | SHA1（デフォルト）
ISAKMP SAの有効期限（時間） | 86400秒（24時間）（デフォルト）
ISAKMP SAの有効期限（KByte数） | なし（デフォルト）
起動時のISAKMPネゴシエーション | 行わない

表 3：IKEフェーズ2（IPsec SAのネゴシエーション）
SAモード | トンネルモード
セキュリティープロトコル | ESP（暗号化＋認証）
暗号化方式 | DES
認証方式 | SHA1
IPsec SAの有効期限（時間） | 28800秒（8時間）（デフォルト）
IPsec SAの有効期限（KByte数） | なし（デフォルト）
トンネリング対象IPアドレス | 192.168.1.0/24 ←→ 192.168.2.0/24
192.168.1.0/24 ←→ 192.168.3.0/24
192.168.2.0/24 ←→ 192.168.3.0/24
トンネル終端アドレス | ルーターA：100.10.10.1, 110.10.10.1
ルーターB：110.11.10.1, 110.11.11.1
ルーターC：111.10.10.1, 111.11.10.1
インターネットとの平文通信 | 行う

ルーターには、次のような方針で設定を行います。

- xDSL回線を2本使ってそれぞれ異なるインターネットサービスプロバイダーに接続します。
- WANロードバランス機能（Round Robinモード）を使って、2つのWAN回線にトラフィックを均等に配分します。
- ヘルスチェック機能を使用して、WANロードバランスの自リソース（自分のインターフェース）の状態を監視します。
- Pingポーリングを使用して、各VPN間の通信を監視します。また、他ルーターからのPingポーリングに応答するためのインターフェースvlan2を作成します。
- PingポーリングでVPN通信がダウンしたことを検知した場合には、IPポリシーフィルターを使用して、経路を変更します。なお、この経路変更によって、この機器間の通信はWANロードバランスの対象から外れます。
- ファイアウォールを利用して、外部からの不正アクセスを遮断しつつ、内部からは自由にWAN側へのアクセスができるようにします。
- ファイアウォールのダイナミックENAT機能を利用して、LAN側ネットワークのプライベートIPアドレスを、WAN側インターフェースに設定されたアドレスに変換します。これにより、LANに接続された複数のコンピューターからインターネットへの同時アクセスが可能になります。

ルーターAの設定

（ルーターB、Cの設定も、ルーターAと同様に行います。）

1. セキュリティーモードで各種設定を行うことのできるSecurity Officerレベルのユーザー「secoff」を作成します。パスワードは「PasswordS」とします。

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

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

2. eth0インターフェース上にISP1と接続するためのppp0インターフェースを作成します。ここではISP1から提供されたユーザー名とパスワードを設定し、またLQRはオフにして、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。ISDN向けの機能であるBAPはオフにします。

   `CREATE PPP=0 OVER=eth0-ANY ↓
   SET PPP=0 IPREQUEST=ON USERNAME="aa@isp1.com" PASSWORD="internet1" ↓
   SET PPP=0 OVER=ETH0-ANY LQR=OFF ECHO=ON BAP=OFF ↓
   `
3. eth1側にもISP2との接続用ppp1インターフェースを同様に作成します。

   `CREATE PPP=1 OVER=eth1-ANY ↓
   SET PPP=1 IPREQUEST=ON USERNAME="bb@isp2.com" PASSWORD="internet2" ↓
   SET PPP=1 OVER=eth1-ANY LQR=OFF ECHO=ON BAP=OFF ↓
   `
4. Pingポーリングに応答するホストとしてvlan2をポート4に作成します。またこのポート4をvlan2側のタグポートとして設定することで、ポート4はポート1〜3同様にvlan1のUntagポートとして使用することができます。

   `CREATE VLAN=VLAN2 VID=2 ↓
   ADD VLAN=VLAN2 PORT=4 FRAME=TAGGED ↓
   `
5. IPモジュール、およびDNSリレーを有効化します。また、IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。

   `ENABLE IP ↓
   ENABLE IP DNSRELAY ↓
   ENABLE IP REMOTE ↓
   `
6. Pingポーリングで異常を検知した場合に使用するIPポリシーフィルターを設定します。

   `ADD IP FIL=100 TY=POLICY SO=192.168.1.0 ENT=1 SM=255.255.255.0 DES=192.168.2.0 DM=255.255.255.0 POLI=1 ↓
   ADD IP FIL=100 TY=POLICY SO=192.168.1.0 ENT=2 SM=255.255.255.0 DES=192.168.3.0 DM=255.255.255.0 POLI=1 ↓
   `

   > Note - Pingポーリング異常検知時の動作については本章末尾のメモをご参照ください。

7. 各インターフェースにIPアドレスを設定します。vlan1には前項のポリシーフィルターを適用しますが、このフィルターは後述するトリガーがActiveになるまで機能しません。
   vlan2はPingポーリングに応答するためだけのホストとして設定するため、ネットマスクを/32としています。また、各PPPインターフェースはISPからアドレスを割り振られるため、0.0.0.0を設定します。

   `ADD IP INT=vlan2 IP=192.168.1.2 MASK=255.255.255.255 ↓
   ADD IP INT=vlan1 IP=192.168.1.1 POL=100 ↓
   ADD IP INT=ppp0 IP=0.0.0.0 MASK=0.0.0.0 ↓
   ADD IP INT=ppp1 IP=0.0.0.0 MASK=0.0.0.0 ↓
   `
8. WANロードバランスで使用するため、等価コストマルチパス(ECMP)ルーティングを無効にします。また、デフォルトルートをppp0, ppp1の両方に向けます。

   `DISABLE IP ROUTE MULTIPATH ↓
   ADD IP ROU=0.0.0.0 MASK=0.0.0.0 INT=ppp0 NEXT=0.0.0.0 ↓
   ADD IP ROU=0.0.0.0 MASK=0.0.0.0 INT=ppp1 NEXT=0.0.0.0 ↓
   `
9. ルーターA自身からVPNのPeerアドレスに対して送信されるIKEパケットについて、送信元インターフェースを固定するためにルートを設定します。

   `ADD IP ROU=110.11.10.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓
   ADD IP ROU=110.11.11.1 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓
   ADD IP ROU=111.10.10.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓
   ADD IP ROU=111.11.10.1 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓
   `

   > Note - ルーター自身から送信するパケットはWANロードバランスの対象にはなりません。そのため、これらのルートは前項で設定したデフォルトルートよりも優先されます。

10. Pingポーリングを送信するインターフェースを固定するためにルートを設定します。

    `ADD IP ROU=192.168.2.2 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓
    ADD IP ROU=192.168.2.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓
    ADD IP ROU=192.168.3.2 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓
    ADD IP ROU=192.168.3.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓
    `

    > Note - ルーター自身から送信するパケットはWANロードバランスの対象にはなりません。そのため、これらのルートは8.で設定したデフォルトルートよりも優先されます。

11. ファイアウォールを設定します。ここでは、ICMPの転送をすべて有効化し、ppp0, ppp1インターフェースをPublic側インターフェース、vlan1, vlan2インターフェースをPrivate側インターフェースに設定します。また、各PPPインターフェースとvlan1インターフェース間でダイナミックENATを設定します。

    `ENABLE FIREWALL ↓
    CREATE FIREWALL POLICY="wanlb" ↓
    ENABLE FIREWALL POLICY="wanlb" ICMP_F=ALL ↓
    ADD FIREWALL POLICY="wanlb" INT=vlan1 TYPE=PRIVATE ↓
    ADD FIREWALL POLICY="wanlb" INT=vlan2 TYPE=PRIVATE ↓
    ADD FIREWALL POLICY="wanlb" INT=ppp1 TYPE=PUBLIC ↓
    ADD FIREWALL POLICY="wanlb" INT=ppp0 TYPE=PUBLIC ↓
    ADD FIREWALL POLI="wanlb" NAT=ENHANCED INT=vlan1 GBLIN=ppp1 ↓
    ADD FIREWALL POLI="wanlb" NAT=ENHANCED INT=vlan1 GBLIN=ppp0 ↓
    `
12. ppp0インターフェースにファイアウォールルールを追加します。ここでは以下の意図でルールを設定します。
    rule1：192.168.1.0/24から192.168.0.0/16宛の通信（LAN側→他拠点のLAN側）はNATせずに通すように設定します。
    rule2：ルーターBから受信したIKEパケット（UDP500番）がファイアウォールを通過できるように設定します。
    rule3：ルーターCから受信したIKEパケット（UDP500番）がファイアウォールを通過できるように設定します。

    `ADD FIREWALL POLI="wanlb" RU=1 AC=NON INT=ppp0 PROT=ALL IP=192.168.1.0-192.168.1.255 ↓
    SET FIREWALL POLI="wanlb" RU=1 REM=192.168.0.1-192.168.255.255 ENC=IPS ↓
    ADD FIREWALL POLI="wanlb" RU=2 AC=ALLO INT=ppp0 PROT=UDP PO=500 IP=100.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=2 REM=110.11.10.1 ↓
    ADD FIREWALL POLI="wanlb" RU=3 AC=ALLO INT=ppp0 PROT=UDP PO=500 IP=100.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=3 REM=111.10.10.1 ↓
    `
13. 上記と同様のルールをppp1インターフェースにも追加します。

    `ADD FIREWALL POLI="wanlb" RU=4 AC=NON INT=ppp1 PROT=ALL IP=192.168.1.0-192.168.1.255 ↓
    SET FIREWALL POLI="wanlb" RU=4 REM=192.168.0.1-192.168.255.255 ENC=IPS ↓
    ADD FIREWALL POLI="wanlb" RU=5 AC=ALLO INT=ppp1 PROT=UDP PO=500 IP=110.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=5 REM=110.11.11.1 ↓
    ADD FIREWALL POLI="wanlb" RU=6 AC=ALLO INT=ppp1 PROT=UDP PO=500 IP=110.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=6 REM=111.11.10.1 ↓
    `
14. 同様にvlan1インターフェースにも192.168.1.0/24から192.168.0.0/16宛の通信（LAN側→他拠点のLAN側）はNATせずに通すルールを追加します。

    `ADD FIREWALL POLI="wanlb" RU=7 AC=NON INT=vlan1 PROT=ALL IP=192.168.1.0-192.168.1.255 ↓
    SET FIREWALL POLI="wanlb" RU=7 REM=192.168.0.1-192.168.255.255 ↓
    `
15. Pingポーリングを設定します。ここでは以下の組み合わせで監視を行います。
    - ［ルーターA］192.168.1.1（ppp0）→［ルーターB］192.168.2.1（ppp0）、［ルーターC］192.168.3.1（ppp0）
    - ［ルーターA］192.168.1.2（ppp1）→［ルーターB］192.168.2.2（ppp1）、［ルーターC］192.168.3.2（ppp1）
    - 条件：5秒間隔でPing実施。5回応答がない場合は「Down」

    `ADD PING POLL=1 IP=192.168.2.1 CRI=5 DESC=RouterB-vlan1 NOR=5 SIPA=192.168.1.1 UPC=5 ↓
    ENABLE PING POLL=1 ↓
    ADD PING POLL=2 IP=192.168.2.2 CRI=5 DESC=RouterB-vlan2 NOR=5 SIPA=192.168.1.2 UPC=5 ↓
    ENABLE PING POLL=2 ↓
    ADD PING POLL=3 IP=192.168.3.1 CRI=5 DESC=RouterC-vlan1 NOR=5 SIPA=192.168.1.1 UPC=5 ↓
    ENABLE PING POLL=3 ↓
    ADD PING POLL=4 IP=192.168.3.2 CRI=5 DESC=RouterC-vlan2 NOR=5 SIPA=192.168.1.2 UPC=5 ↓
    ENABLE PING POLL=4 ↓
    `

    > Note - Pingの送信間隔や条件は、ご使用の環境の合わせて任意で変更してください。

    > Note - このPingポーリングの異常検知をトリガーとした一連の動作については、本章末尾のメモをご参照ください。

16. IPsecの設定を行います。
    まず、動作モードをセキュリティーモードに切り替えます。

    `ENABLE SYSTEM SECURITY_MODE ↓`

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

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

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

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

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

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

19. IPsec通信の仕様を定義するSAスペック「1」を作成します。トンネルモード（デフォルト）、鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。

    `CREATE IPSEC SAS=1 KEY=ISAKMP PROT=ESP ENC=DES HASHA=SHA ↓`
20. SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。

    `CREATE IPSEC BUND=1 KEY=ISAKMP STRING="1" ↓`
21. ルーターA（ppp0）-ルーターB（ppp0）間でのIKEネゴシエーションを受け入れるISAKMPポリシー「a0-b0」とルーターA（ppp0）-ルーターC（ppp0）間ISAKMPポリシー「a0-c0」を作成します。KEYには、前の手順で作成した事前共有鍵（鍵番号「1」、「2」）を、PEERにはルーターBとルーターCのWAN側IPアドレスを指定します。

    `CREATE ISAKMP POL="a0-b0" PE=110.11.10.1 KEY=1 ↓
    CREATE ISAKMP POL="a0-c0" PE=111.10.10.1 KEY=2 ↓
    `
22. 同様にルーターA（ppp1）-ルーターB（ppp1）、ルーターA（ppp1）-ルーターC（ppp1）間ISAKMPポリシーも作成します。ここでは事前共有鍵「3」、「4」を指定します。

    `CREATE ISAKMP POL="a1-b1" PE=110.11.11.1 KEY=3 ↓
    CREATE ISAKMP POL="a1-c1" PE=111.11.10.1 KEY=4 ↓
    `
23. ISAKMPメッセージを素通しさせるIPsecポリシー「isakmp_mes1」をppp0に作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット（ISAKMP）に設定します。

    `CREATE IPSEC POLICY="isakmp_mes1" INT=ppp0 AC=PERMIT LP=500 RP=500 TRA=UDP ↓`

    > Note - ISAKMPを使用する場合は、必ず最初のIPsecポリシーでISAKMPメッセージが通過できるような設定を行ってください。「IPsecポリシー」は設定順に検索され、最初にマッチしたものが適用されるため、設定順序には注意が必要です。検索順はSHOW IPSEC POLICYコマンドで確認できます。また、検索順を変更するには、SET IPSEC POLICYコマンドのPOSITIONパラメーターを使用します。

24. ルーターAのppp0とルーターBのppp0インターフェースでIPSec通信を行うIPSecポリシー「ipsec_sa1」を作成します。
    鍵管理方式には「ISAKMP」を、PEERには対向ルーターBのppp0インターフェースのIPアドレスを、BUNDLEには該当パケットに適用するSAバンドルスペックの番号を指定します。

    `CREATE IPSEC POL="ipsec_sa1" INT=ppp0 AC=IPSEC KEY=ISAKMP BUND=1 PEER=110.11.10.1 ISA="a0-b0" ↓
    SET IPSEC POL="ipsec_sa1" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.2.0 RMA=255.255.255.0 ↓
    `
25. 同様にルーターAのppp0インターフェースとルーターCのppp0インターフェースでIPsecポリシー「ipsec_sa3」を作成します。

    `CREATE IPSEC POL="ipsec_sa3" INT=ppp0 AC=IPSEC KEY=ISAKMP BUND=1 PEER=111.10.10.1 ISA="a0-c0" ↓
    SET IPSEC POL="ipsec_sa3" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.3.0 RMA=255.255.255.0 ↓
    `
26. ルーターAのppp1についても同様の設定を行います。

    `CREATE IPSEC POL="isakmp_mes2" INT=ppp1 AC=PERMIT ↓
    SET IPSEC POL="isakmp_mes2" LP=500 RP=500 TRA=UDP ↓
    CREATE IPSEC POL="ipsec_sa2" INT=ppp1 AC=IPSEC KEY=ISAKMP BUND=1 PEER=110.11.11.1 ISA="a1-b1" ↓
    SET IPSEC POL="ipsec_sa2" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.2.0 RMA=255.255.255.0 ↓
    CREATE IPSEC POL="ipsec_sa4" INT=ppp1 AC=IPSEC KEY=ISAKMP BUND=1 PEER=111.11.10.1 ISA="a1-c1" ↓
    SET IPSEC POL="ipsec_sa4" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.3.0 RMA=255.255.255.0 ↓
    `
27. インターネットへの平文通信を許可するIPsecポリシー「internet0」「internet1」をppp0インターフェース、ppp1インターフェース双方に作成します。

    `CREATE IPSEC POL="internet0" INT=ppp0 AC=PERMIT ↓
    CREATE IPSEC POL="internet1" INT=ppp1 AC=PERMIT ↓
    `

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

28. IPsecモジュール、ISAKMPモジュールを有効にします。

    `ENABLE IPSEC ↓
    ENABLE ISAKMP ↓
    `
29. WANロードバランス機能を有効にします。

    `ENABLE WANLB ↓`

    > Note - ECMPがオンのときは、WANロードバランス機能を有効化できません。

30. WANロードバランスでヘルスチェックを行うホストを設定します。また、ヘルスチェック機能を有効にします。

    `ADD WANLB HEAL=1 HO=192.168.2.1 ↓
    ADD WANLB HEAL=2 HO=192.168.3.1 ↓
    ENABLE WANLB HEAL ↓
    `

    > Note - この場合のヘルスチェックは自分のインターフェースの状態を確認するためのものであり、機器間通信の状態確認を行うものではありません。その場合にはPingポーリングを設定してください。

31. WANロードバランスの対象WAN側インターフェースを指定します。また、ヘルスチェックで使用するPingの送信元IPアドレスとしてLAN側IPアドレスを指定します。

    `ADD WANLB RES=ppp0 HEALTHCHECKSIPADDRESS=192.168.1.1 ↓
    ADD WANLB RES=ppp1 HEALTHCHECKSIPADDRESS=192.168.1.2 ↓
    `
32. Pingポーリングで使用するトリガースクリプトを作成します。
    - ルーターAのppp0-ルーターBのppp0間のVPN接続が切断された場合(PingPolling=1が失敗した場合)に、この経路を使う通信をppp1経由に変更させるためのスクリプト「2a_down.scp」を作成します。

      `ADD SCRIPT=2a_down.scp TEXT="ADD IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp0-ルーターBのppp0間のVPN接続が復旧した場合(PingPolling=1が成功した場合)に、「2a_down.scp」の通信経路を削除するためのスクリプト「2a_up.scp」を作成します。

      `ADD SCRIPT=2a_up.scp TEXT="DEL IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp1-ルーターBのppp1間のVPN接続が切断された場合(PingPolling=2が失敗した場合)に、この経路を使う通信をppp0経由に変更させるためのスクリプト「2b_down.scp」を作成します。

      `ADD SCRIPT=2b_down.scp TEXT="ADD IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp1-ルーターBのppp1間のVPN接続が復旧した場合(PingPolling=2が成功した場合)に、「2b_down.scp」の通信経路を削除するためのスクリプト「2b_up.scp」を作成します。

      `ADD SCRIPT=2b_up.scp TEXT="DEL IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp0-ルーターCのppp0間のVPN接続が切断された場合(PingPolling=3が失敗した場合)に、この経路を使う通信をppp1経由に変更させるためのスクリプト「3a_down.scp」を作成します。

      `ADD SCRIPT=3a_down.scp TEXT="ADD IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp0-ルーターCのppp0間のVPN接続が復旧した場合(PingPolling=3が成功した場合)に、「3a_down.scp」の通信経路を削除するためのスクリプト「3a_up.scp」を作成します。

      `ADD SCRIPT=3a_up.scp TEXT="DEL IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp1-ルーターCのppp1間のVPN接続が切断された場合(PingPolling=4が失敗した場合)に、この経路を使う通信をppp0経由に変更させるためのスクリプト「3b_down.scp」を作成します。

      `ADD SCRIPT=3b_down.scp TEXT="ADD IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1" ↓`
    - ルーターAのppp1-ルーターBのppp1間のVPN接続が復旧した場合(PingPolling=4が成功した場合)に、「3b_down.scp」の通信経路を削除するためのスクリプト「3b_up.scp」を作成します。

      `ADD SCRIPT=3b_up.scp TEXT="DEL IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1" ↓`

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

33. トリガー機能を有効にします。

    `ENABLE TRIGGER ↓`
34. 「PingPolling=1」が失敗した場合(ルーターAのppp0-ルーターBのppp0間のVPN接続が切断された場合)に、この経路を使う通信をppp1経由に変更させるためのトリガー1を作成します。このトリガーでは31.で作成したスクリプト「2a_down.scp」を使用します。

    `CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=2a_down.scp ↓`

    > Note - このPing Pollingの異常検知をトリガーとした一連の動作については、本章末尾のメモをご参照ください。

35. 「PingPolling=1」が復旧した場合に、TRIGGER=1で追加した通信経路を削除するためのトリガー2を作成します。
    このトリガーでは31.で作成したスクリプト「2a_up.scp」を使用します。

    `CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=2a_up.scp ↓`
36. 同様にPingPolling=2〜4についても同様のトリガーを作成します。

    `CREATE TRIGGER=3 MODULE=PING EVENT=DEVICEDOWN POLL=2 SCRIPT=2b_down.scp ↓
    CREATE TRIGGER=4 MODULE=PING EVENT=DEVICEUP POLL=2 SCRIPT=2b_up.scp ↓
    CREATE TRIGGER=5 MODULE=PING EVENT=DEVICEDOWN POLL=3 SCRIPT=3a_down.scp ↓
    CREATE TRIGGER=6 MODULE=PING EVENT=DEVICEUP POLL=3 SCRIPT=3a_up.scp ↓
    CREATE TRIGGER=7 MODULE=PING EVENT=DEVICEDOWN POLL=4 SCRIPT=3b_down.scp ↓
    CREATE TRIGGER=8 MODULE=PING EVENT=DEVICEUP POLL=4 SCRIPT=3b_up.scp ↓
    `
37. 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。

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

同様の設定をルーターB、Cについても行います。

メモ

■ Ping Pollingが失敗した場合の挙動
ここでは、ルーターAとルーターBのppp0同士をつなぐVPN通信「ipsec_sa1」で通信不可が発生した場合、ならびに復旧した場合におけるルーターAの動きについて記述します。
正常時、ルーターAからルーターBへは以下通信が行われます。

表 4
通信内容 | IPアドレス | 備考
IPsec（VPN通信） | [1] 100.10.10.1(ppp0) → 110.11.10.1(ppp0) | → 「ipsec_sa1」
[2] 110.10.10.1(ppp1) → 110.11.11.1(ppp1) | → 「ipsec_sa3」
Pingポーリング(VPN通信監視) | [3] 192.168.1.1(ppp0) → 192.168.2.1(ppp0) | 「ipsec_sa1」経由
[4] 192.168.1.2(ppp1) → 192.168.2.2(ppp1) | 「ipsec_sa2」経由
ヘルスチェック(自インターフェース監視) | [5] 192.168.1.1(ppp0) → 192.168.2.1(ppp0) | 「ipsec_sa1」経由
[6] 192.168.1.2(ppp1) → 192.168.2.1(ppp0) | 「ipsec_sa1」経由

■ VPN通信「ipsec_sa1」の通信不可発生時

1. VPN通信断が発生してから25秒後に「Ping Polling=1」は「Down」に状態変化します。(設定上、5秒間隔のPingを5回失敗した場合に状態が変化するため)

       SecOff Router-A> sh ping poll

       Ping Status
       ---------------------------------------------------------------------------
       ID   State                    Destination
             upCountCurrent   Upcount   failCountCurrent   Failcount/Sample Size
       ---------------------------------------------------------------------------
       1    Down                     192.168.2.1
             0                5         5                  5/5
       2    Up                       192.168.2.2
             31               5         0                  5/5
       3    Up                       192.168.3.1
             32               5         0                  5/5
       4    Up                       192.168.3.2
             32               5         0                  5/5
       ---------------------------------------------------------------------------

2. 「Ping Polling=1」の状態が「Down」に変化することにより、ルーターAの設定34.で設定した以下の「trigger=1」がActiveになります。

   `CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=2a_down.scp ↓`
3. 「trigger=1」がActiveになることにより、以下の「2a_down.scp」が実行されます。
   「2a_down.scp」

   `ADD IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLICY=1 ↓`
4. 「policy=1」を含んだルートが追加されることにより、ルーターAの設定6.、7.で設定した以下のポリシーフィルターが有効になります。
   ここでは7.のvlan1インターフェースで受信した192.168.2.0宛の通信がすべてppp1を経由することになります。そのため、この通信はWANロードバランス機能の対象外になります。

   `ADD IP FIL=100 TY=POLICY SO=192.168.1.0 ENT=1 SM=255.255.255.0 DES=192.168.2.0 DM=255.255.255.0 POLI=1 ↓
   ADD IP INT=vlan1 IP=192.168.1.1 POL=100 ↓
   `
   - ポリシーフィルターにマッチしたパケットはWANロードバランスの対象にはなりません。
   - WANロードバランスのリソースはDownしません。
     これはヘルスチェック機能が通信経路を監視する機能ではなく、自インターフェース(ここではppp0)の状態を監視しているためです。
     この場合、192.168.2.1(ルーターB：ppp0)へはアクセス不可(Unreachable)となりますが、もう一方のホスト192.168.3.1(ルーターC：ppp0)へはアクセス可能であるため、リソースの状態は「UP」のままとなります。

       SecOff Router-A> sh wanlb res=all

       WAN Load Balancer Resources
       ------------------------------------------------------------
       Resource ....................... ppp1
       Status ......................... ENABLED
       State .......................... UP
       Total sessions ................. 2
       Current sessions ............... 2

       Healthchecks
          Avg overall response ........ 1 ms
          Resource up events .......... 1
          Resource down events ........ 0
          Unreachable host events ..... 1
          Source IP address ........... 192.168.1.2

          Number  Avg response   Host
          ------------------------------------------------------
               1  Unreachable    192.168.2.1
               2  1 ms           192.168.3.1
          ------------------------------------------------------
       ------------------------------------------------------------
       Resource ....................... ppp0
       Status ......................... ENABLED
       State .......................... UP
       Total sessions ................. 4
       Current sessions ............... 4

       Healthchecks
          Avg overall response ........ 0 ms
          Resource up events .......... 1
          Resource down events ........ 0
          Unreachable host events ..... 1
          Source IP address ........... 192.168.1.1

          Number  Avg response   Host
          ------------------------------------------------------
               1  Unreachable    192.168.2.1
               2  0 ms           192.168.3.1
          ------------------------------------------------------
       ------------------------------------------------------------

■ VPN通信「ipsec_sa1」の通信復旧時

1. VPN通信が復旧した場合、まず「Ping Polling=1」のステータスが「UP」に変わります。

       SecOff Router-A> sh ping poll

       Ping Status
       ---------------------------------------------------------------------------
       ID   State                    Destination
             upCountCurrent   Upcount   failCountCurrent   Failcount/Sample Size
       ---------------------------------------------------------------------------
       1    Up                       192.168.2.1
             9                5         0                  5/5
       2    Up                       192.168.2.2
             522              5         0                  5/5
       3    Up                       192.168.3.1
             524              5         0                  5/5
       4    Up                       192.168.3.2
             524              5         0                  5/5
       ---------------------------------------------------------------------------

2. 「Ping Polling=1」の状態が「UP」に変化することにより、35.で設定した以下の「trigger=2」がActiveになります。

   `CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=2a_up.scp ↓`
3. 「trigger=2」がActiveになることにより、以下の「2a_up.scp」が実行されます。
   「2a_up.scp」

   `DEL IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1 ↓`
4. 「2a_up.scp」が実行されることにより、VPN通信Down時に有効になったルート設定が削除されます。
   これで復旧が完了します。

まとめ

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

`ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER LO=YES ↓ CREATE PPP=0 OVER=eth0-ANY ↓ SET PPP=0 IPREQUEST=ON USERNAME="aa@isp1.com" PASSWORD="internet1" ↓ SET PPP=0 OVER=ETH0-ANY LQR=OFF ECHO=ON BAP=OFF ↓ CREATE PPP=1 OVER=eth1-ANY ↓ SET PPP=1 IPREQUEST=ON USERNAME="bb@isp2.com" PASSWORD="internet2" ↓ SET PPP=1 OVER=eth1-ANY LQR=OFF ECHO=ON BAP=OFF ↓ CREATE VLAN=VLAN2 VID=2 ↓ ADD VLAN=VLAN2 PORT=4 FRAME=TAGGED ↓ ENABLE IP ↓ ENABLE IP DNSRELAY ↓ ENABLE IP REMOTE ↓ ADD IP FIL=100 TY=POLICY SO=192.168.1.0 ENT=1 SM=255.255.255.0 DES=192.168.2.0 DM=255.255.255.0 POLI=1 ↓ ADD IP FIL=100 TY=POLICY SO=192.168.1.0 ENT=2 SM=255.255.255.0 DES=192.168.3.0 DM=255.255.255.0 POLI=1 ↓ ADD IP INT=vlan2 IP=192.168.1.2 MASK=255.255.255.255 ↓ ADD IP INT=vlan1 IP=192.168.1.1 POL=100 ↓ ADD IP INT=ppp0 IP=0.0.0.0 MASK=0.0.0.0 ↓ ADD IP INT=ppp1 IP=0.0.0.0 MASK=0.0.0.0 ↓ DISABLE IP ROUTE MULTIPATH ↓ ADD IP ROU=0.0.0.0 MASK=0.0.0.0 INT=ppp0 NEXT=0.0.0.0 ↓ ADD IP ROU=0.0.0.0 MASK=0.0.0.0 INT=ppp1 NEXT=0.0.0.0 ↓ ADD IP ROU=110.11.10.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓ ADD IP ROU=110.11.11.1 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓ ADD IP ROU=111.10.10.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓ ADD IP ROU=111.11.10.1 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓ ADD IP ROU=192.168.2.2 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓ ADD IP ROU=192.168.2.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓ ADD IP ROU=192.168.3.2 MASK=255.255.255.255 INT=ppp1 NEXT=0.0.0.0 ↓ ADD IP ROU=192.168.3.1 MASK=255.255.255.255 INT=ppp0 NEXT=0.0.0.0 ↓ ENABLE FIREWALL ↓ CREATE FIREWALL POLICY="wanlb" ↓ ENABLE FIREWALL POLICY="wanlb" ICMP_F=ALL ↓ ADD FIREWALL POLICY="wanlb" INT=vlan1 TYPE=PRIVATE ↓ ADD FIREWALL POLICY="wanlb" INT=vlan2 TYPE=PRIVATE ↓ ADD FIREWALL POLICY="wanlb" INT=ppp1 TYPE=PUBLIC ↓ ADD FIREWALL POLICY="wanlb" INT=ppp0 TYPE=PUBLIC ↓ ADD FIREWALL POLI="wanlb" NAT=ENHANCED INT=vlan1 GBLIN=ppp1 ↓ ADD FIREWALL POLI="wanlb" NAT=ENHANCED INT=vlan1 GBLIN=ppp0 ↓ ADD FIREWALL POLI="wanlb" RU=1 AC=NON INT=ppp0 PROT=ALL IP=192.168.1.0-192.168.1.255 ↓ SET FIREWALL POLI="wanlb" RU=1 REM=192.168.0.1-192.168.255.255 ENC=IPS ↓ ADD FIREWALL POLI="wanlb" RU=2 AC=ALLO INT=ppp0 PROT=UDP PO=500 IP=100.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=2 REM=110.11.10.1 ↓ ADD FIREWALL POLI="wanlb" RU=3 AC=ALLO INT=ppp0 PROT=UDP PO=500 IP=100.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=3 REM=111.10.10.1 ↓ ADD FIREWALL POLI="wanlb" RU=4 AC=NON INT=ppp1 PROT=ALL IP=192.168.1.0-192.168.1.255 ↓ SET FIREWALL POLI="wanlb" RU=4 REM=192.168.0.1-192.168.255.255 ENC=IPS ↓ ADD FIREWALL POLI="wanlb" RU=5 AC=ALLO INT=ppp1 PROT=UDP PO=500 IP=110.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=5 REM=110.11.11.1 ↓ ADD FIREWALL POLI="wanlb" RU=6 AC=ALLO INT=ppp1 PROT=UDP PO=500 IP=110.10.10.1 GBLIP=0.0.0.0SET FIREWALL POLI="wanlb" RU=6 REM=111.11.10.1 ↓ ADD FIREWALL POLI="wanlb" RU=7 AC=NON INT=vlan1 PROT=ALL IP=192.168.1.0-192.168.1.255 ↓ SET FIREWALL POLI="wanlb" RU=7 REM=192.168.0.1-192.168.255.255 ↓ ADD PING POLL=1 IP=192.168.2.1 CRI=5 DESC=RouterB-vlan1 NOR=5 SIPA=192.168.1.1 UPC=5 ↓ ENABLE PING POLL=1 ↓ ADD PING POLL=2 IP=192.168.2.2 CRI=5 DESC=RouterB-vlan2 NOR=5 SIPA=192.168.1.2 UPC=5 ↓ ENABLE PING POLL=2 ↓ ADD PING POLL=3 IP=192.168.3.1 CRI=5 DESC=RouterC-vlan1 NOR=5 SIPA=192.168.1.1 UPC=5 ↓ ENABLE PING POLL=3 ↓ ADD PING POLL=4 IP=192.168.3.2 CRI=5 DESC=RouterC-vlan2 NOR=5 SIPA=192.168.1.2 UPC=5 ↓ ENABLE PING POLL=4 ↓ # ENABLE SYSTEM SECURITY_MODE ↓ # LOGIN secoff ↓ # CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret" ↓ # CREATE ENCO KEY=2 TYPE=GENERAL VALUE="secret" ↓ # CREATE ENCO KEY=3 TYPE=GENERAL VALUE="secret" ↓ # CREATE ENCO KEY=4 TYPE=GENERAL VALUE="secret" ↓ CREATE IPSEC SAS=1 KEY=ISAKMP PROT=ESP ENC=DES HASHA=SHA ↓ CREATE IPSEC BUND=1 KEY=ISAKMP STRING="1" ↓ CREATE ISAKMP POL="a0-b0" PE=110.11.10.1 KEY=1 ↓ CREATE ISAKMP POL="a0-c0" PE=111.10.10.1 KEY=2 ↓ CREATE ISAKMP POL="a1-b1" PE=110.11.11.1 KEY=3 ↓ CREATE ISAKMP POL="a1-c1" PE=111.11.10.1 KEY=4 ↓ CREATE IPSEC POLICY="isakmp_mes1" INT=ppp0 AC=PERMIT LP=500 RP=500 TRA=UDP ↓ CREATE IPSEC POL="ipsec_sa1" INT=ppp0 AC=IPSEC KEY=ISAKMP BUND=1 PEER=110.11.10.1 ISA="a0-b0" ↓ SET IPSEC POL="ipsec_sa1" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.2.0 RMA=255.255.255.0 ↓ CREATE IPSEC POL="ipsec_sa3" INT=ppp0 AC=IPSEC KEY=ISAKMP BUND=1 PEER=111.10.10.1 ISA="a0-c0" ↓ SET IPSEC POL="ipsec_sa3" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.3.0 RMA=255.255.255.0 ↓ CREATE IPSEC POL="isakmp_mes2" INT=ppp1 AC=PERMIT ↓ SET IPSEC POL="isakmp_mes2" LP=500 RP=500 TRA=UDP ↓ CREATE IPSEC POL="ipsec_sa2" INT=ppp1 AC=IPSEC KEY=ISAKMP BUND=1 PEER=110.11.11.1 ISA="a1-b1" ↓ SET IPSEC POL="ipsec_sa2" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.2.0 RMA=255.255.255.0 ↓ CREATE IPSEC POL="ipsec_sa4" INT=ppp1 AC=IPSEC KEY=ISAKMP BUND=1 PEER=111.11.10.1 ISA="a1-c1" ↓ SET IPSEC POL="ipsec_sa4" LAD=192.168.1.0 LMA=255.255.255.0 RAD=192.168.3.0 RMA=255.255.255.0 ↓ CREATE IPSEC POL="internet0" INT=ppp0 AC=PERMIT ↓ CREATE IPSEC POL="internet1" INT=ppp1 AC=PERMIT ↓ ENABLE IPSEC ↓ ENABLE ISAKMP ↓ ENABLE WANLB ↓ ADD WANLB HEAL=1 HO=192.168.2.1 ↓ ADD WANLB HEAL=2 HO=192.168.3.1 ↓ ENABLE WANLB HEAL ↓ ADD WANLB RES=ppp0 HEALTHCHECKSIPADDRESS=192.168.1.1 ↓ ADD WANLB RES=ppp1 HEALTHCHECKSIPADDRESS=192.168.1.2 ↓ ENABLE TRIGGER ↓ CREATE TRIGGER=1 MODULE=PING EVENT=DEVICEDOWN POLL=1 SCRIPT=2a_down.scp ↓ CREATE TRIGGER=2 MODULE=PING EVENT=DEVICEUP POLL=1 SCRIPT=2a_up.scp ↓ CREATE TRIGGER=3 MODULE=PING EVENT=DEVICEDOWN POLL=2 SCRIPT=2b_down.scp ↓ CREATE TRIGGER=4 MODULE=PING EVENT=DEVICEUP POLL=2 SCRIPT=2b_up.scp ↓ CREATE TRIGGER=5 MODULE=PING EVENT=DEVICEDOWN POLL=3 SCRIPT=3a_down.scp ↓ CREATE TRIGGER=6 MODULE=PING EVENT=DEVICEUP POLL=3 SCRIPT=3a_up.scp ↓ CREATE TRIGGER=7 MODULE=PING EVENT=DEVICEDOWN POLL=4 SCRIPT=3b_down.scp ↓ CREATE TRIGGER=8 MODULE=PING EVENT=DEVICEUP POLL=4 SCRIPT=3b_up.scp ↓`

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

`ADD IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1 ↓`

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

`DEL IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1 ↓`

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

`ADD IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1 ↓`

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

`DEL IP ROU=192.168.2.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1 ↓`

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

`ADD IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1 ↓`

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

`DEL IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp1 NEXT=0.0.0.0 POLI=1 ↓`

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

`ADD IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1 ↓`

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

`DEL IP ROU=192.168.3.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 POLI=1 ↓`

CentreCOM AR550S 設定例集 2.9 #151

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

PN: J613-M0710-04 Rev.M

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