設定例集#57: SD-WANロードバランス


構成
ルーターAの設定
ルーターBの設定
ルーターCの設定
ルーターDの設定
設定の保存
ファイアウォールログについて
ルーターAのコンフィグ
ルーターBのコンフィグ
ルーターCのコンフィグ
ルーターDのコンフィグ
ルーターBのトリガースクリプト
ルーターDのトリガースクリプト



センター・拠点間をCUG(Closed Users Group)経由とインターネット経由の2本のVPN回線で接続した構成において、SD-WANロードバランス機能を利用して、CUG回線とインターネット回線の通信状態を監視し、状態のよいほうを使用するようにします。
また、拠点PCからセンターサーバーへの通信に関しては、Pingポーリングとトリガー機能を使用し、通常時はインターネット経由、障害時はCUG経由に切り替わるようにします。

構成

 
ルーターA
ルーターB
ルーターC
ルーターD
グループ管理者から提供された情報
CUG接続用ユーザー名 userA@cug   userC@cug  
CUG接続用パスワード cugpasswdA cugpasswdC
WAN側IPアドレス 10.0.0.1/32 10.0.0.2/32
ISPから提供された情報
ISP接続用ユーザー名 user@ispA   user@ispC  
ISP接続用パスワード isppasswdA isppasswdC
WAN側IPアドレス 10.1.1.1/32 10.1.1.2/32
ルーターの基本設定
WAN側物理インターフェース(1) eth1   eth1  
WAN側物理インターフェース(2) eth2 eth2
WAN側(ppp1)IPアドレス(1) 10.0.0.1/32 10.0.0.2/32
WAN側(ppp2)IPアドレス(2) 10.1.1.1/32 10.1.1.2/32
LAN側(vlan1)IPアドレス(1) 192.168.100.100/24 192.168.10.1/24 192.168.200.100/24 192.168.200.1/24
LAN側(vlan11)IPアドレス(2)   192.168.11.1/24    
LAN側(eth1)IPアドレス(3) 192.168.100.1/24 192.168.200.1/24
GREトンネル(tunnel1)IPアドレス(1) 172.16.0.1/30 172.16.0.2/30
GRE over IPsecトンネル(tunnel2)IPアドレス(2) 172.17.0.1/30 172.17.0.2/30

ルーターAの設定

  1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
    スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
    no spanning-tree rstp enable
    
  2. WANポートeth1上にPPPoEインターフェースppp1を作成します。これには、encapsulation pppコマンドを使います。
    PPPの詳細は「PPP」/「一般設定」をご覧ください。
    interface eth1
     encapsulation ppp 1
    
  3. 同様にしてWANポートeth2上にPPPoEインターフェースppp2を作成します。
    interface eth2
     encapsulation ppp 2
    
  4. PPPインターフェースppp1に対し、PPPoE接続のための設定を行います。

    ・LCP EchoによるPPP接続状態の確認(keepalive
    ・ユーザー名(ppp username
    ・パスワード(ppp password
    ・IPアドレスの固定設定(ip address
    ・MSS書き換え(ip tcp adjust-mss

    PPPの詳細は「PPP」/「一般設定」をご覧ください。
    interface ppp1
     keepalive
     ppp username userA@cug
     ppp password cugpasswdA
     ip address 10.0.0.1/32
     ip tcp adjust-mss pmtu
    
  5. 同様にしてPPPインターフェースppp2に対し、PPPoE接続のための設定を行います。
    interface ppp2
     keepalive
     ppp username user@ispA
     ppp password isppasswdA
     ip address 10.1.1.1/32
     ip tcp adjust-mss pmtu
    
  6. LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface vlan1
     ip address 192.168.100.100/24
    
  7. ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
    エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。

    内部ネットワークを表すゾーン「private」を作成します。
    これには、zonenetworkip subnethostip addressの各コマンドを使います。
    zone private
     network lan
      ip subnet 192.168.10.0/24
      ip subnet 192.168.11.0/24
      ip subnet 192.168.100.0/24
      host RouterB
       ip address 192.168.100.1
     network tunnel
      ip subnet 172.16.0.0/30
      ip subnet 172.17.0.0/30
    
  8. 外部ネットワークを表すゾーン「public」を作成します。
    zone public
     network eth1
      ip subnet 0.0.0.0/0 interface ppp1
      host ppp1
       ip address 10.0.0.1
     network eth2
      ip subnet 0.0.0.0/0 interface ppp2
      host ppp2
       ip address 10.1.1.1
    
  9. ファイアウォールやNATのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
    これには、applicationprotocolsportdportの各コマンドを使います。
    アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。

    GREパケットを表すカスタムアプリケーション「gre」を定義します。
    application gre
     protocol 47
    
  10. ESPパケットを表すカスタムアプリケーション「esp」を定義します。
    application esp
     protocol 50
    
  11. ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。
    application isakmp
     protocol udp
     sport 500
     dport 500
    
  12. NAT-Tパケットを表すカスタムアプリケーション「nat-t」を定義します。
    application nat-t
     protocol udp
     sport 4500
     dport 4500
    
  13. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewallruleprotectの各コマンドを使います。

    ・rule 10 - 内部から内部への通信を許可します
    ・rule 20 - 内部から外部への通信を許可します
    ・rule 30, 40, 50 - ppp1(eth1)上でGREパケットを許可します
    ・rule 60, 70, 80 - ppp2(eth2)上でGREパケットを許可します
    ・rule 90, 100, 110 - ppp2(eth2)上でISAKMPパケットを許可します
    ・rule 120, 130, 140 - ppp2(eth2)上でESPパケットを許可します
    ・rule 150, 160, 170 - ppp2(eth2)上でNAT-Tパケットを許可します。

    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
    firewall
     rule 10 permit any from private to private no-state-enforcement
     rule 20 permit any from private to public
     rule 30 permit gre from public.eth1.ppp1 to public.eth1
     rule 40 permit gre from public.eth1 to public.eth1.ppp1
     rule 50 permit gre from public.eth1 to private.lan.RouterB
     rule 60 permit gre from public.eth2.ppp2 to public.eth2
     rule 70 permit gre from public.eth2 to public.eth2.ppp2
     rule 80 permit gre from public.eth2 to private.lan.RouterB
     rule 90 permit isakmp from public.eth2.ppp2 to public.eth2
     rule 100 permit isakmp from public.eth2 to public.eth2.ppp2
     rule 110 permit isakmp from public.eth2 to private.lan.RouterB
     rule 120 permit esp from public.eth2.ppp2 to public.eth2
     rule 130 permit esp from public.eth2 to public.eth2.ppp2
     rule 140 permit esp from public.eth2 to private.lan.RouterB
     rule 150 permit nat-t from public.eth2.ppp2 to public.eth2
     rule 160 permit nat-t from public.eth2 to public.eth2.ppp2
     rule 170 permit nat-t from public.eth2 to private.lan.RouterB
     protect
    
  14. NAT機能の設定を行います。
    これには、natruleenableの各コマンドを使います。

    ・rule 10 - ppp1で受信したGREパケットをルーターBに転送します
    ・rule 20 - ppp2で受信したGREパケットをルーターBに転送します
    ・rule 30 - ppp2で受信したISAKMPパケットをルーターBに転送します
    ・rule 40 - ppp2で受信したNAT-TパケットをルーターBに転送します
    ・rule 50 - 内部のコンピューターがダイナミックENAT機能を使用できるようにします

    NATの詳細は「UTM」/「NAT」をご覧ください。
    nat
     rule 10 portfwd gre from public.eth1 to public.eth1.ppp1 with dst private.lan.RouterB
     rule 20 portfwd gre from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterB
     rule 30 portfwd isakmp from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterB
     rule 40 portfwd nat-t from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterB
     rule 50 masq any from private to public
     enable
    
  15. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。

    ・CUG側の対向ルーターC(10.0.0.2)には ppp1 経由で接続します(ppp1がダウンしているときは破棄)
    ・インターネット側の対向ルーターC(10.1.1.2)には ppp2 経由で接続します(ppp2がダウンしているときは破棄)
    ・センター側の内部ネットワーク(192.168.10.0/24と192.168.11.0/24)には配下のルーターB(192.168.100.1)経由で接続します
    ・その他(0.0.0.0/0)はインターネット(ppp2)経由(デフォルト経路)で接続します

    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
    ip route 0.0.0.0/0 ppp2
    ip route 10.0.0.2/32 ppp1
    ip route 10.0.0.2/32 Null 254
    ip route 10.1.1.2/32 ppp2
    ip route 10.1.1.2/32 Null 254
    ip route 192.168.10.0/24 192.168.100.1
    ip route 192.168.11.0/24 192.168.100.1
    
  16. 以上で設定は完了です。
    end
    


ルーターBの設定

  1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
    スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
    no spanning-tree rstp enable
    
  2. 上位ルーターAと接続するeth1インターフェースにIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface eth1
     ip address 192.168.100.1/24
    
  3. サーバー接続用にvlan11を作成し、ポートを割り当てます。
    VLANの詳細は「L2スイッチング」/「バーチャルLAN」をご覧ください。
    vlan database
     vlan 11 state enable
    
    interface port1.0.2
     switchport
     switchport mode access
     switchport access vlan 11
    
  4. LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface vlan1
     ip address 192.168.10.1/24
    
  5. 同様にしてLAN側インターフェースvlan11にIPアドレスを設定します。
    interface vlan11
     ip address 192.168.11.1/24
    
  6. 対向ルーターとの間で使用するISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。
    ここでは対向ルーターがNATの背後に存在するため、対向ルーターをID文字列で指定しています。
    crypto isakmp key secret hostname RouterD
    
  7. GREトンネルインターフェースtunnel1を作成します。
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、GREの詳細は「VPN」/「GRE」をご覧ください。

    これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。

    ・トンネルインターフェースのMTU(mtu
    ・トンネルインターフェースから送信するデリバリーパケットの始点(自装置)アドレス(tunnel source
    ・トンネルインターフェースから送信するデリバリーパケットの終点(対向装置)アドレス(tunnel destination
    ・トンネリング方式(tunnel mode gre
    ・トンネルインターフェースのIPアドレス(ip address
    ・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss
    interface tunnel1
     mtu 1300
     tunnel source 192.168.100.1
     tunnel destination 10.0.0.2
     tunnel mode gre
     ip address 172.16.0.1/30
     ip tcp adjust-mss 1260
    
  8. 同様にしてGRE over IPsecトンネルインターフェースtunnel2を作成します。
    インターネット経由のtunnel2ではGREトンネルをIPsecで保護しています。IPsecの詳細は「VPN」/「IPsec」をご覧ください。

    tunnel2では、GREトンネルをIPsecで保護するため下記のコマンドを追加しています。

    ・トンネルインターフェースにおける自装置ID(ローカルID)(tunnel local name
    ・トンネルインターフェースにおける対向装置ID(リモートID)(tunnel remote name
    ・トンネルインターフェースに対するIPsec保護の適用(tunnel protection ipsec
    interface tunnel2
     mtu 1300
     tunnel source 192.168.100.1
     tunnel destination 10.1.1.2
     tunnel local name RouterB
     tunnel remote name RouterD
     tunnel protection ipsec
     tunnel mode gre
     ip address 172.17.0.1/30
     ip tcp adjust-mss 1260
    
  9. SD-WANロードバランス用のPBR(ポリシーベースルーティング)ルール作成時に使うエンティティー(通信主体)を定義します。
    エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。

    拠点ネットワークを表すゾーン「branch」を作成します。
    これには、zonenetworkip subnetの各コマンドを使います。
    zone branch
     network lan
      ip subnet 192.168.20.0/24
      ip subnet 192.168.200.0/24
    
  10. センターネットワークを表すゾーン「center」を作成します。
    zone center
     network lan
      ip subnet 192.168.10.0/24
      ip subnet 192.168.100.0/24
    
  11. ここから、SD-WANロードバランス機能において、VPN回線の状況を調べるために使うリンク監視機能の設定を行います。
    最初にリンク監視機能を有効にします。これにはlinkmon probe enableコマンドを使います。

    リンク監視機能の詳細は「トラフィック制御」/「SD-WANロードバランス」をご覧ください。
    linkmon probe enable
    
  12. 各VPN回線用にリンク監視プローブ「TUNNEL1」と「TUNNEL2」を作成します。これにはlinkmon probeコマンドを使います。
    linkmon probe name TUNNEL1 type ping destination 172.16.0.2
    linkmon probe name TUNNEL2 type ping destination 172.17.0.2
    
  13. 各VPN回線の状況を判断するための基準をリンク性能プロファイル「tunnelquality」として作成します。これには、linkmon profilelatency bad-abovejitter bad-abovepktloss bad-abovepreferenceの各コマンドを使います。
    linkmon profile tunnelquality
     latency bad-above 100
     jitter bad-above 30
     pktloss bad-above 1.0
     preference pktloss
    
  14. ロードバランス対象のVPN回線(ネクストホップ)をリンク監視グループ「GROUP1」に束ねます。これには、linkmon groupmemberの各コマンドを使います。
    linkmon group GROUP1
     member 10 destination 172.16.0.2 probe TUNNEL1
     member 20 destination 172.17.0.2 probe TUNNEL2
    
  15. ポリシーベースルーティングを有効化し、センターから拠点へのトラフィックをリンク監視グループ「GROUP1」に所属するVPN回線間でロードバランスするよう設定します。これには、policy-based-routingpolicy-based-routing enableip policy-routeの各コマンドを使います。
    対象トラフィックの送信には、リンク性能プロファイル「tunnelquality」にもとづく判定でより状況のよいほうが使われます。

    ポリシーベースルーティングの詳細は「トラフィック制御」/「ポリシーベースルーティング」をご覧ください。
    policy-based-routing
     policy-based-routing enable
     ip policy-route 10 from center to branch linkmon-group GROUP1 linkmon-profile tunnelquality
    
  16. インターネット側のVPN回線(tunnel2)経由での対向ルーターDへの接続性を監視するPingポーリング「1」を作成します。
    これには、ping-pollipup-countfail-countsample-sizeactiveの各コマンドを使います。
    Pingポーリングの詳細は「IP付加機能」/「Pingポーリング」をご覧ください。
    ping-poll 1
     ip 172.17.0.2
     up-count 3
     fail-count 3
     sample-size 3
     active
    
  17. Pingポーリングトリガーを作成します。
    これには、triggertype ping-pollscriptの各コマンドを使います。

    ・trigger 1 - tunnel2 経由での対向ルーターへの接続性が失われた場合に、tunnel1経由のルートに切り替えるtunnel2_down.scpスクリプトを実行する
    ・trigger 2 - tunnel2 経由での対向ルーターへの接続性が回復した場合に、tunnel2経由のルートに切り替えるtunnel2_up.scpスクリプトを実行する

    トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。
    trigger 1
     type ping-poll 1 down
     script 1 tunnel2_down.scp
    trigger 2
     type ping-poll 1 up
     script 1 tunnel2_up.scp
    
  18. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。

    ・拠点ネットワーク 192.168.20.0/24 へは tunnel2 経由で通信
    ・その他(0.0.0.0/0)は上位のルーターA(192.168.100.100)に転送(デフォルト経路)

    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
    ip route 0.0.0.0/0 192.168.100.100
    ip route 192.168.20.0/24 tunnel2
    
  19. 以上で設定は完了です。
    end
    

ルーターCの設定

  1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
    スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
    no spanning-tree rstp enable
    
  2. WANポートeth1上にPPPoEインターフェースppp1を作成します。これには、encapsulation pppコマンドを使います。
    PPPの詳細は「PPP」/「一般設定」をご覧ください。
    interface eth1
     encapsulation ppp 1
    
  3. 同様にしてWANポートeth2上にPPPoEインターフェースppp2を作成します。
    interface eth2
     encapsulation ppp 2
    
  4. PPPインターフェースppp1に対し、PPPoE接続のための設定を行います。

    ・LCP EchoによるPPP接続状態の確認(keepalive
    ・ユーザー名(ppp username
    ・パスワード(ppp password
    ・IPアドレスの固定設定(ip address
    ・MSS書き換え(ip tcp adjust-mss

    PPPの詳細は「PPP」/「一般設定」をご覧ください。
    interface ppp1
     keepalive
     ppp username userC@cug
     ppp password cugpasswdC
     ip address 10.0.0.2/32
     ip tcp adjust-mss pmtu
    
  5. 同様にしてPPPインターフェースppp2に対し、PPPoE接続のための設定を行います。
    interface ppp2
     keepalive
     ppp username user@ispC
     ppp password isppasswdC
     ip address 10.1.1.2/32
     ip tcp adjust-mss pmtu
    
  6. LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface vlan1
     ip address 192.168.200.100/24
    
  7. ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
    エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。

    内部ネットワークを表すゾーン「private」を作成します。
    これには、zonenetworkip subnethostip addressの各コマンドを使います。
    zone private
     network lan
      ip subnet 192.168.20.0/24
      ip subnet 192.168.200.0/24
      host RouterD
       ip address 192.168.200.1
     network tunnel
      ip subnet 172.16.0.0/30
      ip subnet 172.17.0.0/30
    
  8. 外部ネットワークを表すゾーン「public」を作成します。
    zone public
     network eth1
      ip subnet 0.0.0.0/0 interface ppp1
      host ppp1
       ip address 10.0.0.2
     network eth2
      ip subnet 0.0.0.0/0 interface ppp2
      host ppp2
       ip address 10.1.1.2
    
  9. ファイアウォールやNATのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
    これには、applicationprotocolsportdportの各コマンドを使います。
    アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。

    GREパケットを表すカスタムアプリケーション「gre」を定義します。
    application gre
     protocol 47
    
  10. ESPパケットを表すカスタムアプリケーション「esp」を定義します。
    application esp
     protocol 50
    
  11. ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。
    application isakmp
     protocol udp
     sport 500
     dport 500
    
  12. NAT-Tパケットを表すカスタムアプリケーション「nat-t」を定義します。
    application nat-t
     protocol udp
     sport 4500
     dport 4500
    
  13. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewallruleprotectの各コマンドを使います。

    ・rule 10 - 内部から内部への通信を許可します
    ・rule 20 - 内部から外部への通信を許可します
    ・rule 30, 40, 50 - ppp1(eth1)上でGREパケットを許可します
    ・rule 60, 70, 80 - ppp2(eth2)上でGREパケットを許可します
    ・rule 90, 100, 110 - ppp2(eth2)上でISAKMPパケットを許可します
    ・rule 120, 130, 140 - ppp2(eth2)上でESPパケットを許可します
    ・rule 150, 160, 170 - ppp2(eth2)上でNAT-Tパケットを許可します。

    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
    firewall
     rule 10 permit any from private to private no-state-enforcement
     rule 20 permit any from private to public
     rule 30 permit gre from public.eth1.ppp1 to public.eth1
     rule 40 permit gre from public.eth1 to public.eth1.ppp1
     rule 50 permit gre from public.eth1 to private.lan.RouterD
     rule 60 permit gre from public.eth2.ppp2 to public.eth2
     rule 70 permit gre from public.eth2 to public.eth2.ppp2
     rule 80 permit gre from public.eth2 to private.lan.RouterD
     rule 90 permit isakmp from public.eth2.ppp2 to public.eth2
     rule 100 permit isakmp from public.eth2 to public.eth2.ppp2
     rule 110 permit isakmp from public.eth2 to private.lan.RouterD
     rule 120 permit esp from public.eth2.ppp2 to public.eth2
     rule 130 permit esp from public.eth2 to public.eth2.ppp2
     rule 140 permit esp from public.eth2 to private.lan.RouterD
     rule 150 permit nat-t from public.eth2.ppp2 to public.eth2
     rule 160 permit nat-t from public.eth2 to public.eth2.ppp2
     rule 170 permit nat-t from public.eth2 to private.lan.RouterD protect
    
  14. NAT機能の設定を行います。
    これには、natruleenableの各コマンドを使います。

    ・rule 10 - ppp1で受信したGREパケットをルーターDに転送します
    ・rule 20 - ppp2で受信したGREパケットをルーターDに転送します
    ・rule 30 - ppp2で受信したISAKMPパケットをルーターDに転送します
    ・rule 40 - ppp2で受信したNAT-TパケットをルーターDに転送します
    ・rule 50 - 内部のコンピューターがダイナミックENAT機能を使用できるようにします

    NATの詳細は「UTM」/「NAT」をご覧ください。
    nat
     rule 10 portfwd gre from public.eth1 to public.eth1.ppp1 with dst private.lan.RouterD
     rule 20 portfwd gre from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterD
     rule 30 portfwd isakmp from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterD
     rule 40 portfwd nat-t from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterD
     rule 50 masq any from private to public
     enable
    
  15. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。

    ・CUG側の対向ルーターA(10.0.0.1)には ppp1 経由で接続します(ppp1がダウンしているときは破棄)
    ・インターネット側の対向ルーターA(10.1.1.1)には ppp2 経由で接続します(ppp2がダウンしているときは破棄)
    ・拠点側の内部ネットワーク(192.168.20.0/24)へは配下のルーターD(192.168.200.1)経由で接続します
    ・その他(0.0.0.0/0)はインターネット(ppp2)経由(デフォルト経路)で接続します

    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
    ip route 0.0.0.0/0 ppp2
    ip route 10.0.0.1/32 ppp1
    ip route 10.0.0.1/32 Null 254
    ip route 10.1.1.1/32 ppp2
    ip route 10.1.1.1/32 Null 254
    ip route 192.168.20.0/24 192.168.200.1
    
  16. 以上で設定は完了です。
    end
    

ルーターDの設定

  1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
    スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
    no spanning-tree rstp enable
    
  2. 上位ルーターCと接続するeth1インターフェースにIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface eth1
     ip address 192.168.200.1/24
    
  3. 同様にしてLAN側インターフェースvlan1にIPアドレスを設定します。
    interface vlan1
     ip address 192.168.20.1/24
    
  4. 対向ルーターとの間で使用するISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。
    ここでは対向ルーターがNATの背後に存在するため、対向ルーターをID文字列で指定しています。
    crypto isakmp key secret hostname RouterB
    
  5. GREトンネルインターフェースtunnel1を作成します。
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、GREの詳細は「VPN」/「GRE」をご覧ください。

    これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。

    ・トンネルインターフェースのMTU(mtu
    ・トンネルインターフェースから送信するデリバリーパケットの始点(自装置)アドレス(tunnel source
    ・トンネルインターフェースから送信するデリバリーパケットの終点(対向装置)アドレス(tunnel destination
    ・トンネリング方式(tunnel mode gre
    ・トンネルインターフェースのIPアドレス(ip address
    ・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss
    interface tunnel1
     mtu 1300
     tunnel source 192.168.200.1
     tunnel destination 10.0.0.1
     tunnel mode gre
     ip address 172.16.0.2/30
     ip tcp adjust-mss 1260
    
  6. 同様にしてGRE over IPsecトンネルインターフェースtunnel2を作成します。
    インターネット経由のtunnel2ではGREトンネルをIPsecで保護しています。IPsecの詳細は「VPN」/「IPsec」をご覧ください。

    tunnel2では、GREトンネルをIPsecで保護するため下記のコマンドを追加しています。

    ・トンネルインターフェースにおける自装置ID(ローカルID)(tunnel local name
    ・トンネルインターフェースにおける対向装置ID(リモートID)(tunnel remote name
    ・トンネルインターフェースに対するIPsec保護の適用(tunnel protection ipsec
    interface tunnel2
     mtu 1300
     tunnel source 192.168.200.1
     tunnel destination 10.1.1.1
     tunnel local name RouterD
     tunnel remote name RouterB
     tunnel protection ipsec
     tunnel mode gre
     ip address 172.17.0.2/30
     ip tcp adjust-mss 1260
    
  7. SD-WANロードバランス用のPBR(ポリシーベースルーティング)ルール作成時に使うエンティティー(通信主体)を定義します。
    エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。

    拠点ネットワークを表すゾーン「branch」を作成します。
    これには、zonenetworkip subnetの各コマンドを使います。
    zone branch
     network lan
      ip subnet 192.168.20.0/24
      ip subnet 192.168.200.0/24
    
  8. センターネットワークを表すゾーン「center」を作成します。
    zone center
     network lan
      ip subnet 192.168.10.0/24
      ip subnet 192.168.100.0/24
    
  9. ここから、SD-WANロードバランス機能において、VPN回線の状況を調べるために使うリンク監視機能の設定を行います。
    最初にリンク監視機能を有効にします。これにはlinkmon probe enableコマンドを使います。

    リンク監視機能の詳細は「トラフィック制御」/「SD-WANロードバランス」をご覧ください。
    linkmon probe enable
    
  10. 各VPN回線用にリンク監視プローブ「TUNNEL1」と「TUNNEL2」を作成します。これにはlinkmon probeコマンドを使います。
    linkmon probe name TUNNEL1 type ping destination 172.16.0.1
    linkmon probe name TUNNEL2 type ping destination 172.17.0.1
    
  11. 各VPN回線の状況を判断するための基準をリンク性能プロファイル「tunnelquality」として作成します。これには、linkmon profilelatency bad-abovejitter bad-abovepktloss bad-abovepreferenceの各コマンドを使います。
    linkmon profile tunnelquality
     latency bad-above 100
     jitter bad-above 30
     pktloss bad-above 1.0
     preference pktloss
    
  12. ロードバランス対象のVPN回線(ネクストホップ)をリンク監視グループ「GROUP1」に束ねます。これには、linkmon groupmemberの各コマンドを使います。
    linkmon group GROUP1
     member 10 destination 172.16.0.1 probe TUNNEL1
     member 20 destination 172.17.0.1 probe TUNNEL2
    
  13. ポリシーベースルーティングを有効化し、拠点からセンターへのトラフィックをリンク監視グループ「GROUP1」に所属するVPN回線間でロードバランスするよう設定します。これには、policy-based-routingpolicy-based-routing enableip policy-routeの各コマンドを使います。
    対象トラフィックの送信には、リンク性能プロファイル「tunnelquality」にもとづく判定でより状況のよいほうが使われます。

    ポリシーベースルーティングの詳細は「トラフィック制御」/「ポリシーベースルーティング」をご覧ください。
    policy-based-routing
     policy-based-routing enable
     ip policy-route 10 from branch to center linkmon-group GROUP1 linkmon-profile tunnelquality
    
  14. インターネット側のVPN回線(tunnel2)経由での対向ルーターBへの接続性を監視するPingポーリング「1」を作成します。
    これには、ping-pollipup-countfail-countsample-sizeactiveの各コマンドを使います。
    Pingポーリングの詳細は「IP付加機能」/「Pingポーリング」をご覧ください。
    ping-poll 1
     ip 172.17.0.1
     up-count 3
     fail-count 3
     sample-size 3
     active
    
  15. Pingポーリングトリガーを作成します。
    これには、triggertype ping-pollscriptの各コマンドを使います。

    ・trigger 1 - tunnel2 経由での対向ルーターへの接続性が失われた場合に、tunnel1経由のルートに切り替えるtunnel2_down.scpスクリプトを実行する
    ・trigger 2 - tunnel2 経由での対向ルーターへの接続性が回復した場合に、tunnel2経由のルートに切り替えるtunnel2_up.scpスクリプトを実行する

    トリガースクリプトの具体的内容は「トリガースクリプト」を、トリガーの詳細は「運用・管理」/「トリガー」をご覧ください。
    trigger 1
     type ping-poll 1 down
     script 1 tunnel2_down.scp
    trigger 2
     type ping-poll 1 up
     script 1 tunnel2_up.scp
    
  16. IPの経路情報をスタティックに設定します。これにはip routeコマンドを使います。

    ・センターのサーバーネットワーク 192.168.11.0/24 へは tunnel2 経由で通信
    ・その他(0.0.0.0/0)は上位のルーターC(192.168.200.100)に転送(デフォルト経路)

    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
    ip route 0.0.0.0/0 192.168.200.100
    ip route 192.168.11.0/24 tunnel2
    
  17. 以上で設定は完了です。
    end
    

設定の保存

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

また、write fileコマンド、write memoryコマンドでも同じことができます。
awplus# write memory
Building configuration...
[OK]

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

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

■ ファイアウォールのログをとるには、次のコマンド(log(filter))を実行します。
awplus(config)# log buffered level informational facility kern msgtext Firewall

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

ルーターAのコンフィグ

!
no spanning-tree rstp enable
!
interface eth1
 encapsulation ppp 1
!
interface eth2
 encapsulation ppp 2
!
interface ppp1
 keepalive
 ppp username userA@cug
 ppp password cugpasswdA
 ip address 10.0.0.1/32
 ip tcp adjust-mss pmtu
!
interface ppp2
 keepalive
 ppp username user@ispA
 ppp password isppasswdA
 ip address 10.1.1.1/32
 ip tcp adjust-mss pmtu
!
interface vlan1
 ip address 192.168.100.100/24
!
zone private
 network lan
  ip subnet 192.168.10.0/24
  ip subnet 192.168.11.0/24
  ip subnet 192.168.100.0/24
  host RouterB
   ip address 192.168.100.1
 network tunnel
  ip subnet 172.16.0.0/30
  ip subnet 172.17.0.0/30
!
zone public
 network eth1
  ip subnet 0.0.0.0/0 interface ppp1
  host ppp1
   ip address 10.0.0.1
 network eth2
  ip subnet 0.0.0.0/0 interface ppp2
  host ppp2
   ip address 10.1.1.1
!
application gre
 protocol 47
!
application esp
 protocol 50
!
application isakmp
 protocol udp
 sport 500
 dport 500
!
application nat-t
 protocol udp
 sport 4500
 dport 4500
!
firewall
 rule 10 permit any from private to private no-state-enforcement
 rule 20 permit any from private to public
 rule 30 permit gre from public.eth1.ppp1 to public.eth1
 rule 40 permit gre from public.eth1 to public.eth1.ppp1
 rule 50 permit gre from public.eth1 to private.lan.RouterB
 rule 60 permit gre from public.eth2.ppp2 to public.eth2
 rule 70 permit gre from public.eth2 to public.eth2.ppp2
 rule 80 permit gre from public.eth2 to private.lan.RouterB
 rule 90 permit isakmp from public.eth2.ppp2 to public.eth2
 rule 100 permit isakmp from public.eth2 to public.eth2.ppp2
 rule 110 permit isakmp from public.eth2 to private.lan.RouterB
 rule 120 permit esp from public.eth2.ppp2 to public.eth2
 rule 130 permit esp from public.eth2 to public.eth2.ppp2
 rule 140 permit esp from public.eth2 to private.lan.RouterB
 rule 150 permit nat-t from public.eth2.ppp2 to public.eth2
 rule 160 permit nat-t from public.eth2 to public.eth2.ppp2
 rule 170 permit nat-t from public.eth2 to private.lan.RouterB
 protect
!
nat
 rule 10 portfwd gre from public.eth1 to public.eth1.ppp1 with dst private.lan.RouterB
 rule 20 portfwd gre from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterB
 rule 30 portfwd isakmp from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterB
 rule 40 portfwd nat-t from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterB
 rule 50 masq any from private to public
 enable
!
ip route 0.0.0.0/0 ppp2
ip route 10.0.0.2/32 ppp1
ip route 10.0.0.2/32 Null 254
ip route 10.1.1.2/32 ppp2
ip route 10.1.1.2/32 Null 254
ip route 192.168.10.0/24 192.168.100.1
ip route 192.168.11.0/24 192.168.100.1
!
end

ルーターBのコンフィグ

!
no spanning-tree rstp enable
!
interface eth1
 ip address 192.168.100.1/24
!
vlan database
 vlan 11 state enable

interface port1.0.2
 switchport
 switchport mode access
 switchport access vlan 11
!
interface vlan1
 ip address 192.168.10.1/24
!
interface vlan11
 ip address 192.168.11.1/24
!
crypto isakmp key secret hostname RouterD
!
interface tunnel1
 mtu 1300
 tunnel source 192.168.100.1
 tunnel destination 10.0.0.2
 tunnel mode gre
 ip address 172.16.0.1/30
 ip tcp adjust-mss 1260
!
interface tunnel2
 mtu 1300
 tunnel source 192.168.100.1
 tunnel destination 10.1.1.2
 tunnel local name RouterB
 tunnel remote name RouterD
 tunnel protection ipsec
 tunnel mode gre
 ip address 172.17.0.1/30
 ip tcp adjust-mss 1260
!
zone branch
 network lan
  ip subnet 192.168.20.0/24
  ip subnet 192.168.200.0/24
!
zone center
 network lan
  ip subnet 192.168.10.0/24
  ip subnet 192.168.100.0/24
!
linkmon probe enable
!
linkmon probe name TUNNEL1 type ping destination 172.16.0.2
linkmon probe name TUNNEL2 type ping destination 172.17.0.2
!
linkmon profile tunnelquality
 latency bad-above 100
 jitter bad-above 30
 pktloss bad-above 1.0
 preference pktloss
!
linkmon group GROUP1
 member 10 destination 172.16.0.2 probe TUNNEL1
 member 20 destination 172.17.0.2 probe TUNNEL2
!
policy-based-routing
 policy-based-routing enable
 ip policy-route 10 from center to branch linkmon-group GROUP1 linkmon-profile tunnelquality
!
ping-poll 1
 ip 172.17.0.2
 up-count 3
 fail-count 3
 sample-size 3
 active
!
trigger 1
 type ping-poll 1 down
 script 1 tunnel2_down.scp
trigger 2
 type ping-poll 1 up
 script 1 tunnel2_up.scp
!
ip route 0.0.0.0/0 192.168.100.100
ip route 192.168.20.0/24 tunnel2
!
end

ルーターCのコンフィグ

!
no spanning-tree rstp enable
!
interface eth1
 encapsulation ppp 1
!
interface eth2
 encapsulation ppp 2
!
interface ppp1
 keepalive
 ppp username userC@cug
 ppp password cugpasswdC
 ip address 10.0.0.2/32
 ip tcp adjust-mss pmtu
!
interface ppp2
 keepalive
 ppp username user@ispC
 ppp password isppasswdC
 ip address 10.1.1.2/32
 ip tcp adjust-mss pmtu
!
interface vlan1
 ip address 192.168.200.100/24
!
zone private
 network lan
  ip subnet 192.168.20.0/24
  ip subnet 192.168.200.0/24
  host RouterD
   ip address 192.168.200.1
 network tunnel
  ip subnet 172.16.0.0/30
  ip subnet 172.17.0.0/30
!
zone public
 network eth1
  ip subnet 0.0.0.0/0 interface ppp1
  host ppp1
   ip address 10.0.0.2
 network eth2
  ip subnet 0.0.0.0/0 interface ppp2
  host ppp2
   ip address 10.1.1.2
!
application gre
 protocol 47
!
application esp
 protocol 50
!
application isakmp
 protocol udp
 sport 500
 dport 500
!
application nat-t
 protocol udp
 sport 4500
 dport 4500
!
firewall
 rule 10 permit any from private to private no-state-enforcement
 rule 20 permit any from private to public
 rule 30 permit gre from public.eth1.ppp1 to public.eth1
 rule 40 permit gre from public.eth1 to public.eth1.ppp1
 rule 50 permit gre from public.eth1 to private.lan.RouterD
 rule 60 permit gre from public.eth2.ppp2 to public.eth2
 rule 70 permit gre from public.eth2 to public.eth2.ppp2
 rule 80 permit gre from public.eth2 to private.lan.RouterD
 rule 90 permit isakmp from public.eth2.ppp2 to public.eth2
 rule 100 permit isakmp from public.eth2 to public.eth2.ppp2
 rule 110 permit isakmp from public.eth2 to private.lan.RouterD
 rule 120 permit esp from public.eth2.ppp2 to public.eth2
 rule 130 permit esp from public.eth2 to public.eth2.ppp2
 rule 140 permit esp from public.eth2 to private.lan.RouterD
 rule 150 permit nat-t from public.eth2.ppp2 to public.eth2
 rule 160 permit nat-t from public.eth2 to public.eth2.ppp2
 rule 170 permit nat-t from public.eth2 to private.lan.RouterD protect
!
nat
 rule 10 portfwd gre from public.eth1 to public.eth1.ppp1 with dst private.lan.RouterD
 rule 20 portfwd gre from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterD
 rule 30 portfwd isakmp from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterD
 rule 40 portfwd nat-t from public.eth2 to public.eth2.ppp2 with dst private.lan.RouterD
 rule 50 masq any from private to public
 enable
!
ip route 0.0.0.0/0 ppp2
ip route 10.0.0.1/32 ppp1
ip route 10.0.0.1/32 Null 254
ip route 10.1.1.1/32 ppp2
ip route 10.1.1.1/32 Null 254
ip route 192.168.20.0/24 192.168.200.1
!
end

ルーターDのコンフィグ

!
no spanning-tree rstp enable
!
interface eth1
 ip address 192.168.200.1/24
!
interface vlan1
 ip address 192.168.20.1/24
!
crypto isakmp key secret hostname RouterB
!
interface tunnel1
 mtu 1300
 tunnel source 192.168.200.1
 tunnel destination 10.0.0.1
 tunnel mode gre
 ip address 172.16.0.2/30
 ip tcp adjust-mss 1260
!
interface tunnel2
 mtu 1300
 tunnel source 192.168.200.1
 tunnel destination 10.1.1.1
 tunnel local name RouterD
 tunnel remote name RouterB
 tunnel protection ipsec
 tunnel mode gre
 ip address 172.17.0.2/30
 ip tcp adjust-mss 1260
!
zone branch
 network lan
  ip subnet 192.168.20.0/24
  ip subnet 192.168.200.0/24
!
zone center
 network lan
  ip subnet 192.168.10.0/24
  ip subnet 192.168.100.0/24
!
linkmon probe enable
!
linkmon probe name TUNNEL1 type ping destination 172.16.0.1
linkmon probe name TUNNEL2 type ping destination 172.17.0.1
!
linkmon profile tunnelquality
 latency bad-above 100
 jitter bad-above 30
 pktloss bad-above 1.0
 preference pktloss
!
linkmon group GROUP1
 member 10 destination 172.16.0.1 probe TUNNEL1
 member 20 destination 172.17.0.1 probe TUNNEL2
!
policy-based-routing
 policy-based-routing enable
 ip policy-route 10 from branch to center linkmon-group GROUP1 linkmon-profile tunnelquality
!
ping-poll 1
 ip 172.17.0.1
 up-count 3
 fail-count 3
 sample-size 3
 active
!
trigger 1
 type ping-poll 1 down
 script 1 tunnel2_down.scp
trigger 2
 type ping-poll 1 up
 script 1 tunnel2_up.scp
!
ip route 0.0.0.0/0 192.168.200.100
ip route 192.168.11.0/24 tunnel2
!
end

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

■ tunnel2_down.scp
enable
con t
no ip route 192.168.20.0/24 tunnel2
ip route 192.168.20.0/24 tunnel1
end

■ tunnel2_up.scp
enable
con t
no ip route 192.168.20.0/24 tunnel1
ip route 192.168.20.0/24 tunnel2
end

ルーターDのトリガースクリプト

■ tunnel2_down.scp
enable
con t
no ip route 192.168.11.0/24 tunnel2
ip route 192.168.11.0/24 tunnel1
end

■ tunnel2_up.scp
enable
con t
no ip route 192.168.11.0/24 tunnel1
ip route 192.168.11.0/24 tunnel2
end



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

PN: 613-002107 Rev.R