! ! ! 特権ユーザモードに移行します。 ! Router> enable Enter password: super ←パスワードを入力します。(実際は表示されない) Router# ! ! ! 基本設定モードに移行します。 ! Router# configure terminal Router(config)# ! ! ! LAN 側 IP アドレスを設定します。 ! Router(config)# interface lan 1 Router(config-if lan 1)# ip address 192.168.2.254 255.255.255.0 Router(config-if lan 1)# exit ! ! ! メイン側の PPPoE の各種設定をします。 ! Router(config)# interface pppoe 1 Router(config-if pppoe 1)# pppoe server Main Router(config-if pppoe 1)# pppoe account abc123@furukawa.co.jp pass456 Router(config-if pppoe 1)# exit ! ! ! バックアップ側の PPPoE の各種設定をします。 ! Router(config)# interface pppoe 5 Router(config-if pppoe 5)# pppoe server Backup Router(config-if pppoe 5)# pppoe account abc456@furukawa.co.jp pass123 Router(config-if pppoe 5)# exit ! ! ! VPN 機能を有効にします。 ! Router(config)# vpn enable ! ! ! VPN 通信の詳細なログを残すようにします。 ! Router(config)# vpnlog enable ! ! ! メイン側の Phase 1 ポリシーの設定を行ないます。 ! Router(config)# crypto isakmp policy 1 Router(config-isakmp)# authentication prekey Router(config-isakmp)# encryption aes 128 Router(config-isakmp)# group 2 Router(config-isakmp)# hash sha Router(config-isakmp)# keepalive always-send Router(config-isakmp)# key ascii secret-vpn Router(config-isakmp)# my-identity kyoten@main Router(config-isakmp)# negotiation-mode aggressive Router(config-isakmp)# peer-identity address 200.200.200.1 Router(config-isakmp)# exit ! ! ! バックアップ側の Phase 1 ポリシーの設定を行ないます。 ! Router(config)# crypto isakmp policy 2 Router(config-isakmp)# authentication prekey Router(config-isakmp)# encryption aes 128 Router(config-isakmp)# group 2 Router(config-isakmp)# hash sha Router(config-isakmp)# keepalive always-send Router(config-isakmp)# key ascii secret-vpn Router(config-isakmp)# my-identity kyoten@backup Router(config-isakmp)# negotiation-mode aggressive Router(config-isakmp)# peer-identity address 100.100.100.1 Router(config-isakmp)# exit ! ! ! Phase 2 ポリシーの設定を行ないます。 ! Router(config)# ipsec transform-set P2-POLICY esp-aes-128 esp-sha-hmac ! ! ! メイン側の VPN セレクタの設定を行ないます。 ! Router(config)# ipsec access-list 10 ipsec ip 192.168.2.0 0.0.0.255 any ! Router(config)# crypto map Main 1 Router(config-crypto-map)# match address 10 Router(config-crypto-map)# set peer address 200.200.200.1 Router(config-crypto-map)# set security-association always-up Router(config-crypto-map)# set transform-set P2-POLICY Router(config-crypto-map)# exit ! ! ! バックアップ側の VPN セレクタの設定を行ないます。 ! Router(config)# ipsec access-list 11 ipsec ip 192.168.2.0 0.0.0.255 any ! Router(config)# crypto map Backup 2 Router(config-crypto-map)# match address 11 Router(config-crypto-map)# set peer address 100.100.100.1 Router(config-crypto-map)# set security-association always-up Router(config-crypto-map)# set transform-set P2-POLICY Router(config-crypto-map)# exit ! ! ! メイン側の IPsec インターフェースの設定をします。 ! Router(config)# interface ipsecif 1 Router(config-if ipsecif 1)# crypto map Main Router(config-if ipsecif 1)# exit ! ! ! バックアップ側の IPsec インターフェースの設定をします。 ! Router(config)# interface ipsecif 2 Router(config-if ipsecif 2)# crypto map Backup Router(config-if ipsecif 2)# exit ! ! ! センターのピアに対するルートを設定します。*1 ! Router(config)# ip route 200.200.200.1 255.255.255.255 pppoe 1 Router(config)# ip route 100.100.100.1 255.255.255.255 pppoe 5 ! ! ! センターのネットワークに対するメインのルートを設定します。*2 ! Router(config)# ip route 192.168.1.0 255.255.255.0 connected ipsecif 1 50 ! メイン経路に障害が発生した場合に、イベントアクションで追加されるルートを ! 優先したいので、こちらの優先度を下げておきます。 ! ! ! 経路監視の設定をします。 *3 ! nexthop を指定することで、装置のルート情報に左右されることなく、常にトンネル経由で ! センターの LAN 側を監視するようにします。 ! icmp-class の status としては、監視が成功している間は true で、失敗すると false となります。 ! Router(config)# icmp-class 1 *4 Router(config-icmp-class 1)# address 192.168.1.254 nexthop connected ipsecif 1 source-interface lan 1 *5 Router(config-icmp-class 1)# exit ! ! ! イベントクラスの設定をします。 ! ここではアクションの契機となるイベントを設定します。 ! イベントの staus が true になると、アクションが実行されます。 ! 今回の場合、経路監視が失敗したら、アクションとして経路を追加したいので、 ! invert オプションを付けて icmp-class の status を反転させます。 ! Router(config)# event-class 1 *4 Router(config-event-class 1)# check ip-icmp 1 invert Router(config-event-class 1)# exit ! ! ! イベントアクションの設定をします。 ! アクションとしてバックアップ側の経路を追加するようにします。*2 ! Router(config)# event-action 1 *4 Router(config-event-action 1)# add ip route 192.168.1.0 255.255.255.0 connected ipsecif 2 Router(config-event-action 1)# exit ! ! ! イベントマップの設定をします。 ! ここでイベントクラスとイベントアクションの結び付けを行います。 ! Router(config)# event-map Router(config-event-map)# event-class 1 event-action 1 Router(config-event-map)# exit ! ! ! 特権ユーザモードに戻ります。 ! Router(config)# end ! ! ! 設定を保存します。 ! Router# save SIDE-A.cfg % saving working-config % finished saving Router# ! ! ! 設定を有効にするために再起動します。 ! Router# reset Are you OK to cold start?(y/n) y
*1 : |
ルートベースの IPsec の場合、ルーティングテーブルに従って SA を確立しに行きます。デフォルトルートを pppoe に向けて設定してあるような場合、対向の peer へのホストルートが落ちると、意図しないインターフェースで SA を確立してしまうことがあります。 この場合、下記のような null ルートを設定しておくことで、これを防止することができます。
|
*2 : |
crypto map に set security-association always-up の設定がある場合、ipsecif は Phase 2 SA の有無に応じて up/down します(設定がない場合は、Phase 2 SA の有無にかかわらず、常に up となります)。 bypass 設定があってデフォルトルートを pppoe に向けて設定してあるような場合、メイン、バックアップとも Phase 2 SA ができていないと、ipsecif 向けのルートが有効にならず、センター宛の通信がデフォルトルートに従って、平文のままインターネットに出て行くことになります。この場合、下記のような null ルートを設定しておくことで、これを防止することができます。
|
*3 : |
デフォルトでは 30 秒間隔で ping による監視を行い、1 回の監視で 2 パケットまで送信します。そして 1 パケットでも reply があれば、その回の監視は成功と判断されます。 icmp-class の status としては、2 回連続で監視に失敗すると、false となります。そして、3 回連続で監視に成功すると、true となります。これらの値は下記のコマンドにより変更可能です。
|
*4 : |
各設定モードにおいて下記の設定を入れておくと、それぞれの status に変化があった場合に、slog に記録されるようになります。
|
*5 : | source-interface 指定がない場合、送信元アドレスはパケットが実際に送信されるインターフェースのアドレスとなりますが、ここで nexthop として指定している ipsecif は unnumbered のインターフェースのため、アドレスを付けることができず、パケットを送信することができなくなります(監視が失敗となります)。 |
! ! ! 特権ユーザモードに移行します。 ! Router> enable Enter password: super ←パスワードを入力します。(実際は表示されない) Router# ! ! ! 基本設定モードに移行します。 ! Router# configure terminal Router(config)# ! ! ! LAN 側 IP アドレスを設定します。 ! Router(config)# interface lan 1 Router(config-if lan 1)# ip address 192.168.1.254 255.255.255.0 Router(config-if lan 1)# exit ! ! ! メイン側の PPPoE の各種設定をします。 ! Router(config)# interface pppoe 1 Router(config-if pppoe 1)# ip address 200.200.200.1 Router(config-if pppoe 1)# pppoe server Main Router(config-if pppoe 1)# pppoe account abc456@furukawa.co.jp pass789 Router(config-if pppoe 1)# exit ! ! ! バックアップ側の PPPoE の各種設定をします。 ! Router(config)# interface pppoe 5 Router(config-if pppoe 5)# ip address 100.100.100.1 Router(config-if pppoe 5)# pppoe server Backup Router(config-if pppoe 5)# pppoe account abc789@furukawa.co.jp pass456 Router(config-if pppoe 5)# exit ! ! ! VPN 機能を有効にします。 ! Router(config)# vpn enable ! ! ! VPN 通信の詳細なログを残すようにします。 ! Router(config)# vpnlog enable ! ! ! メイン側の Phase 1 ポリシーの設定を行ないます。 ! Router(config)# crypto isakmp policy 1 Router(config-isakmp)# authentication prekey Router(config-isakmp)# encryption aes 128 Router(config-isakmp)# group 2 Router(config-isakmp)# hash sha Router(config-isakmp)# keepalive always-send *6 ! keepalive を行って、経路に障害が発生した場合には SA を消して ! sa-up route を削除してルートが切り替わるようにします。 Router(config-isakmp)# key ascii secret-vpn Router(config-isakmp)# negotiation-mode aggressive Router(config-isakmp)# peer-identity host kyoten@main Router(config-isakmp)# tunnel-route interface pppoe 1 *7 ! Phase 1 のネゴパケットの受信を契機に、nexthop を pppoe 1 として ! 拠点の peer 宛のルートを登録します。 Router(config-isakmp)# exit ! ! ! バックアップ側の Phase 1 ポリシーの設定を行ないます。 ! Router(config)# crypto isakmp policy 2 Router(config-isakmp)# authentication prekey Router(config-isakmp)# encryption aes 128 Router(config-isakmp)# group 2 Router(config-isakmp)# hash sha Router(config-isakmp)# keepalive always-send Router(config-isakmp)# key ascii secret-vpn Router(config-isakmp)# negotiation-mode aggressive Router(config-isakmp)# peer-identity host kyoten@backup Router(config-isakmp)# tunnel-route interface pppoe 5 Router(config-isakmp)# exit ! ! ! Phase 2 ポリシーの設定を行ないます。 ! Router(config)# ipsec transform-set P2-POLICY esp-aes-128 esp-sha-hmac ! ! ! メイン側の VPN セレクタの設定を行ないます。 ! Router(config)# ipsec access-list 10 ipsec ip any 192.168.2.0 0.0.0.255 *8 ! Router(config)# crypto map Main 1 Router(config-crypto-map)# match address 10 Router(config-crypto-map)# set peer host kyoten@main Router(config-crypto-map)# set transform-set P2-POLICY Router(config-crypto-map)# sa-up route interface ipsecif 1 *9 *10 ! Phase2 SA の確立を契機に、nexthop を ipsecif 1 として ! ipsec access-list の宛先ネットワーク宛のルートを登録します。 Router(config-crypto-map)# exit ! ! ! バックアップ側の VPN セレクタの設定を行ないます。 ! Router(config)# ipsec access-list 11 ipsec ip any 192.168.2.0 0.0.0.255 *8 ! Router(config)# crypto map Backup 2 Router(config-crypto-map)# match address 11 Router(config-crypto-map)# set peer host kyoten@backup Router(config-crypto-map)# set transform-set P2-POLICY Router(config-crypto-map)# sa-up route interface ipsecif 2 50 *9 *10 ! バックアップ側の sa-up route の distance 値を 50 に設定して ! 優先度を下げておきます。これにより、メイン側で Phase 2 SA が ! できている間は、メイン側の sa-up route が優先されます。 Router(config-crypto-map)# exit ! ! ! メイン側の IPsec インターフェースの設定をします。 ! Router(config)# interface ipsecif 1 Router(config-if ipsecif 1)# crypto map Main Router(config-if ipsecif 1)# exit ! ! ! バックアップ側の IPsec インターフェースの設定をします。 ! Router(config)# interface ipsecif 2 Router(config-if ipsecif 2)# crypto map Backup Router(config-if ipsecif 2)# exit ! ! ! 拠点側からの監視に対する reply は、常にメイン経路から返したいので、 ! 監視パケットの送信元に対するホストルートを設定しておきます。 ! Router(config)# ip route 192.168.2.254 255.255.255.255 connected ipsecif 1 ! ! ! 特権ユーザモードに戻ります。 ! Router(config)# end ! ! ! 設定を保存します。 ! Router# save SIDE-A.cfg % saving working-config % finished saving Router# ! ! ! 設定を有効にするために再起動します。 ! Router# reset Are you OK to cold start?(y/n) y
*6 : | always-send とすることで、定期的に(デフォルトでは 60 秒間隔)keepalive を行うようになります。 |
*7 : |
pppoe 1 ではなく、ewan 1 でアドレスをマニュアル設定している場合は、次のように明示的に nexthop のアドレスを設定する必要があります。
|
*8 : | IPsec インターフェースを使ったルートベースの IPsec の場合、通常は宛先も any としておけば良いのですが、sa-up route を使って経路の制御を行っているので、ここでは宛先を拠点のネットワークとしています。拠点側の ipsec access-list もこれに合わせています。 |
*9 : | nexthop に ipsecif を指定できるのは、F80 は V01.00(00) 以降、 F100/F1000 は V02.01(00) 以降のファームウェアとなります。 |
*10: |
bypass 設定があってデフォルトルートを pppoe に向けて設定してあるような場合、メイン、バックアップとも Phase 2 SA ができていないと、sa-up route が登録されず、拠点宛の通信がデフォルトルートに従って、平文のままインターネットに出て行くことになります。この場合、下記のような null ルートを設定しておくことで、これを防止することができます。
|