トンネル・エンドポイント・ディスカバリ(TED)
・ルーター間でIPsec通信をする
・トンネル・エンドポイント・ディスカバリを使って,対向のIPsecルーターを自動発見させる
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterA
!
!
crypto isakmp policy 1
authentication pre-share
crypto isakmp key ciscovpn address 0.0.0.0 0.0.0.0 ←対向ルーターのアドレスは0.0.0.0にしておく
!
crypto ipsec transform-set TS-Basic esp-des esp-sha-hmac
!
crypto dynamic-map MAP-Basic 1 ←crypt dynamic-mapを定義する
set transform-set TS-Basic
match address 101
!
crypto map TED-tag 1 ipsec-isakmp dynamic MAP-Basic discover
!                        ↑crypt mapで上のcrypt dynamic-mapを利用
interface FastEthernet 0/0
ip address 192.168.1.1 255.255.255.0
!
interface Serial 1/0
ip address 192.168.2.1 255.255.255.0
clockrate 64000
crypto map TED-tag ←インタフェースにcrypt mapを適用
!
ip route 0.0.0.0 0.0.0.0 192.168.2.2
!
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
!
!
line con 0
stopbits 1
line aux 0
line vty 0 4
!
end
RouterBのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterB
!
!
crypto isakmp policy 1
authentication pre-share
crypto isakmp key ciscovpn address 0.0.0.0 0.0.0.0 ←対向ルーターのアドレスは0.0.0.0にしておく
!
crypto ipsec transform-set TS-Basic esp-des esp-sha-hmac
!
crypto dynamic-map MAP-Basic 1 ←crypt dynamic-mapを定義する
set transform-set TS-Basic
match address 101
!
crypto map TED-tag 1 ipsec-isakmp dynamic MAP-Basic discover
!                         ↑crypt mapで上のcrypt dynamic-mapを利用
interface FastEthernet 0/0
ip address 192.168.3.1 255.255.255.0
!
interface Serial 1/0
ip address 192.168.2.2 255.255.255.0
crypto map TED-tag ←インタフェースにcrypt mapを適用
!
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
access-list 101 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255
!
!
line con 0
stopbits 1
line aux 0
line vty 0 4
!
end
確認
IPsecでは,接続相手のルーターを見つけて,その相手とIPsecのトンネルを確立することができます。
「トンネル・エンドポイント・ディスカバリ」と呼ばれる機能を使います。

●トンネル・エンドポイント・ディスカバリとは?
IPsecを利用するとき,接続したい相手のルーターが,複数あるときもあります。
そんなとき,接続先の全拠点のルーターのアドレス情報を設定するのは面倒です。
そんなときに便利なのが,ルーターに接続先のアドレスを設定しなくても,自動的にトンネルを作成させる「トンネル・エンドポイント・ディスカバリ(TED」)です。
TEDでは,IPsecで通信するにあたって,経路途中にIPsec対応対応ルーターがいるかどうかを「TEDプローブ」と呼ばれるパケットを使って調べます。
途中にIPsec対応ルーターがあれば,そのルーターが「TEDレスポンス」を返します。
こうすることで,IPsecで通信するルーター同士でお互いのアドレスを知らせ合います。
以上のしくみは,シスコのWebサイトの解説などを参考にして下さい。

●設定の確認
RouterAのトンネル・エンドポイント・ディスカバリに関する設定を確認しましょう。

TEDの設定は,まずcrypt dynamic-mapを定義し,それをcrypt mapで使う格好になります。
以下がcrypt dynamic-mapの設定です。
今回のケースでは,MAP-Basicという名前のcrype dynamic-mapを定義しています。
なお,そもそも接続相手のアドレスはわからないので,「set peer」のコマンドはありません。

crypto dynamic-map MAP-Basic 1
set transform-set TS-Basic
match address 101

次が,最終的なcrypt mapの設定です。
上で作った「MAP-Basic」をここで指定して,TED-tagという名前のcrypt mapを定義しています。
「dynamic」と「discover」というオプションを入力します。

crypto map TED-tag 1 ipsec-isakmp dynamic MAP-Basic discover

そして,以上で作ったcrypt mapをインタフェースに適用します。

interface Serial 1/0
ip address 192.168.2.1 255.255.255.0
clockrate 64000
crypto map TED-tag


なお,相手認証のためのプレシェアードキーを交換するアドレスは,0.0.0.0にしておきます。

crypto isakmp key ciscovpn address 0.0.0.0 0.0.0.0

●動作の確認
ルーターAにつながるパソコン(192.168.1.100)からルーターBの先にあるパソコン(192.168.3.100)にpingを打ったときの様子を見てみましょう。
pingを打つと,RouterAに以下の表示が出ます。

RouterA#
00:07:54: %CRYPTO-5-SESSION_STATUS: Crypto tunnel is UP . Peer 192.168.2.2:500
    Id: 192.168.2.2


「暗号トンネルがアップした」, 「ピアは192.168.2.2」という表示が出ました。
トンネル・エンド・ディスカバリによって,IPsecでつなぐ相手のアドレスが確認できたわけです。

ISAKMP SAの様子を見てみましょう。

RouterA#show crypto isakmp sa
dst          src         state        conn-id slot
192.168.3.100  192.168.1.100  PEER_DISCOVERY    0  0
192.168.2.2    192.168.2.1   QM_IDLE          1  0


「PEER_DISCOVERY」というステートのエントリができています(上の赤字)。
これは,トンネル・エンドポイント・ディスカバリを使うと表示されるエントリです。
このエントリは,しばらくすると消えます。

続いて,IPsec SAの様子も見てみましょう。

RouterA#show crypto ipsec sa

interface: Serial1/0
  Crypto map tag: TED-tag, local addr. 192.168.2.1

  protected vrf:
  local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
  remote ident (addr/mask/prot/port): (192.168.3.0/255.255.255.0/0/0)
  current_peer: 192.168.2.2:500
   PERMIT, flags={}
  #pkts encaps: 2, #pkts encrypt: 2, #pkts digest: 2
  #pkts decaps: 1, #pkts decrypt: 1, #pkts verify: 1
  #pkts compressed: 0, #pkts decompressed: 0
  #pkts not compressed: 0, #pkts compr. failed: 0
  #pkts not decompressed: 0, #pkts decompress failed: 0
  #send errors 0, #recv errors 0

   local crypto endpt.: 192.168.2.1, remote crypto endpt.: 192.168.2.2
   path mtu 1500, media mtu 1500
   current outbound spi: 33566E00

   inbound esp sas:
   spi: 0xBB74B3D5(3144987605)
    transform: esp-des esp-sha-hmac ,
    in use settings ={Tunnel, }
    slot: 0, conn id: 2000, flow_id: 1, crypto map: TED-tag
    crypto engine type: Software, engine_id: 1
    sa timing: remaining key lifetime (k/sec): (4535750/3507)
    ike_cookies: 48D0F42A 53A76EE3 51353F9B C975AB10
    IV size: 8 bytes
    replay detection support: Y


   inbound ah sas:

   inbound pcp sas:

   outbound esp sas:
   spi: 0x33566E00(861302272)
    transform: esp-des esp-sha-hmac ,
    in use settings ={Tunnel, }
    slot: 0, conn id: 2001, flow_id: 2, crypto map: TED-tag
    crypto engine type: Software, engine_id: 1
    sa timing: remaining key lifetime (k/sec): (4535750/3506)
    ike_cookies: 48D0F42A 53A76EE3 51353F9B C975AB10
    IV size: 8 bytes
    replay detection support: Y


   outbound ah sas:

   outbound pcp sas:


inbound(受信用)とoutbound(送信用)の二つのSA(トンネル)が確立しているこのがわかります(上の赤字)。
正常にIPsecのトンネルが確立できているようです。

確立した各種SA(トンネル)の概要を見ると,以下のようになります。

RouterA#show crypto engine connections active

  ID Interface      IP-Address   State Algorithm           Encrypt Decrypt
   1 Serial1/0      192.168.2.1   set  HMAC_SHA+DES_56_CB    0   0
2000 Serial1/0      192.168.2.1   set  HMAC_SHA+DES_56_CB    0   2
2001 Serial1/0      192.168.2.1   set  HMAC_SHA+DES_56_CB    2   0


ISAKMP SAが1本と,IPsec SAが2本(上り通信用と下り通信用)の計3本のトンネルが確立できているのがわかります。

show crypt mapと入力すると,crypt mapの設定内容が確認できます。

RouterA#show crypto map
Crypto Map "TED-tag" 1 ipsec-isakmp
    Dynamic map template tag: MAP-Basic
    Discover enabled

Crypto Map "TED-tag" 65536 ipsec-isakmp
    Peer = 192.168.2.2
    Extended IP access list
      access-list permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
      dynamic (created from dynamic map MAP-Basic/1)
    Current peer: 192.168.2.2
    Security association lifetime: 4608000 kilobytes/3600 seconds
    PFS (Y/N): N
    Transform sets={
        TS-Basic,
    }
    Interfaces using crypto map TED-tag:
        Serial1/0


「Discover enabled」という表示があり,確かにトンネル・エンドポイント・ディスカバリが有効になっていることがわかります(上の赤字)。

●IPSec トンネル エンドポイント ディスカバリの設定
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/707/tedpreshare-j.html

(おことわり)
このラボ・シナリオは,はっとの手持ちの実機Cisco2500(c2500-jk8os-l.122-1d.bin)では,なぜか動作しませんでした。そこで,Cisco7200シミュレータ(c7200-ik9o3s-mz.123-8.T10.bin)で動作を確認しました。

IPsecラボ
IPsecの基本
NATを使ったIPsec
GREトンネルを使ってOSPFをIPsec内に流す
トンネル・エンドポイント・ディスカバリ(TED)