LISP 概要/基本動作

今回から十数回に渡り、LISP(Locator/Identity Separation Protocol)と呼ばれるプロトコルについて解説していきます。

 

LISPの概要

なぜLISPが必要なのか

現在のネットワークでは、端末やサーバが別のネットワークに移動することが頻繁に発生します。
この章では、vMotionによって、仮想マシンが別のネットワークに移動する例を基にします。

地理的に離れた拠点に移動した場合、ネットワークアドレスが異なるケースが多いです。
この場合、仮想マシンのアドレスが移動先の拠点のネットワークアドレスに含まれないため、通信ができなくなってしまいます。

 

このようなケースで通信を継続するには、仮想マシンのアドレスやデフォルトゲートウェイ等の設定を変更する必要がありますが、非常に手間がかかります。

 

仮想マシンの設定変更無しで、通信を継続させるには、VXLAN(Virtual eXtensible Local Area Network)やOTV(Overlay Transport Virtualization)等を使用して、地理的に離れた拠点間に跨るレイヤ2のオーバレイネットワークを構築する必要があります。

 

ただ、VXLAN等を使用する場合、通信経路が最適化されない可能性があります。

 

端末やサーバが別のネットワークに移動した際に問題が発生する原因は、IPアドレスが2種類の情報を保持しているからです。

  • 端末やサーバが大きなネットワーク上のどこに存在するかを示す地理的な場所
  • 特定のネットワーク内で端末やサーバを識別するためのID

 

端末やサーバが別ネットワークに移動することで、端末やサーバが存在する場所が変わります。
端末やサーバのIPアドレスには地理的な場所を示す情報も含まれているため、移動に伴い、IPアドレスも変更する必要があります。
IPアドレスの変化に伴い、TCPセッション等もクリアされてしまい、通信断が発生します。

 

場所とIDの情報の分離

LISPでは、IPアドレスが保持する場所とIDの情報を分離することで、より柔軟な制御を実現します。

LISPで扱うサーバや端末の場所を示す情報と、IDを示す情報は以下になります。

  • RLOC(Routing Locator)
  • EID(Endpoint ID)

RLOCが端末やサーバが存在する場所を示すIPアドレスで、LISPのカプセル化やカプセル化解除を実施するルータが保持するアドレスが該当します。
一方、EIDが端末やサーバに割り当てらた実際のIPアドレスになります。

 

LISPのデータプレーンの通信の様子

通信の際は、通信先のサーバや端末のアドレス、つまり、EIDに対してパケットを送信します。

ルータがパケットを受信すると、パケットにLISPヘッダ、UDPヘッダ、IPヘッダを付加してカプセル化をします。
カプセル化によって付加されるIPヘッダの送信元、送信先アドレスにはRLOCが格納されます。
また、カプセル化を行うルータをITR(Ingress Tunnel Router)と呼びます。

カプセル化されたパケットが対向拠点のルータに届くと、ルータはパケットからIPヘッダ、UDPヘッダ、LISPヘッダを削除して、内部にパケットを転送します。
カプセル化を解除するルータをETR(Egress Tunnel Router)と呼びます。

 

一般的に通信は双方向なため、各ルータはITRとして動作しつつ、ETRとしても動作します。
ITR、かつ、ETRとして動作しているルータをxTRと呼びます。

 

EIDのRLOCのマッピング

ここで、宛先のEIDに対応するRLOCをどのように判断、取得しているか疑問が生じると思います。

 

この役割を果たすのがMS(Mapping Server)になります。
ETRとして動作しているルータは、自身の拠点内のEIDが所属しているネットワークアドレスとRLOCのマッピング情報をMap Registerメッセージに格納して、MSに送信し、登録します。
EIDが存在しているネットワークアドレスの事をEID-Prefixと呼んだりします。

 

ITRとして動作しているルータが他拠点のEID宛のパケットを受信した際、EIDに対応するRLOCを解決するために、MR(Mapping Resolver)にMap Requestメッセージを送信します。
MRは受信したMap RequestメッセージをMSに転送します。

MSがMap Requestメッセージを受信した際の動作は実装に依存します。
Ciscoの場合、デフォルトでは、MSはMap Requestメッセージに格納されているEIDを基に、自身が保持しているマッピング情報を検索します。そして、EIDに対応するRLOCを保持するETRに対して、Map Requestメッセージを転送します。
Map Requestメッセージを受信したETRは、自身のRLOCを格納したMap ReplyメッセージをITRに返信します。

これにより、ITRは宛先のEIDに対応するRLOCが取得できたので、パケットをLISPでカプセル化してETRに転送します。

 

補足として、下図のように、MRとMSは共存させることも可能です。

 

今回の記事はLISPの基本動作の確認になりますので、サーバや端末がネットワークを移動した際のLISPの挙動に関しては、別の記事で説明したいと思います。

 

検証環境、内容

検証内容

R1をMR/MS、R2とR3をxTRとして動作させます。
R2はEID-Prefixが10.1.1.0/24、RLOCが172.16.1.2のマッピング情報をR1に登録します。
R3はEID-Prefixが10.2.2.0/24、RLOCが172.16.1.3のマッピング情報をR1に登録します。

R2とR3間でLISPによるオーバレイネットワークを構成し、R4とR5間で通信できるようにします。

 

 

設定


interface GigabitEthernet2
 ip address 172.16.1.1 255.255.255.0
!
router lisp
 service ipv4
  map-server
  map-resolver
  exit-service-ipv4
 !
 site Site_1
  authentication-key Zaq12wsx!@
  eid-record 10.1.1.0/24
  eid-record 10.2.2.0/24
  exit-site
 !
 exit-router-lisp
            


interface GigabitEthernet2
 ip address 172.16.1.2 255.255.255.0
!
interface GigabitEthernet3
 ip address 10.1.1.2 255.255.255.0
!
router lisp
 service ipv4
  itr map-resolver 172.16.1.1
  itr
  etr map-server 172.16.1.1 key Zaq12wsx!@
  etr
  exit-service-ipv4
 !
 instance-id 0
  service ipv4
   eid-table default
   database-mapping 10.1.1.0/24 172.16.1.2 priority 1 weight 50
   exit-service-ipv4
  !
  exit-instance-id
 !
 exit-router-lisp
            


interface GigabitEthernet2
 ip address 172.16.1.3 255.255.255.0
!
interface GigabitEthernet3
 ip address 10.2.2.3 255.255.255.0
!
router lisp
 service ipv4
  itr map-resolver 172.16.1.1
  itr
  etr map-server 172.16.1.1 key Zaq12wsx!@
  etr
  exit-service-ipv4
 !
 instance-id 0
  service ipv4
   eid-table default
   database-mapping 10.2.2.0/24 172.16.1.3 priority 1 weight 50
   exit-service-ipv4
  !
  exit-instance-id
 !
 exit-router-lisp
            


interface GigabitEthernet2
 ip address 10.1.1.4 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.1.2
            


interface GigabitEthernet2
 ip address 10.2.2.5 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.2.2.3
            

 

設定内容と状態の確認

MR/MSの設定確認

MR、かつ、MSとして動作させるR1の設定を確認します。

まず、router lispコマンドでLISPプロセスを作成します。

次に、serviceコマンド配下でMRやMSを有効にします。IPv4アドレスのEIDを処理するにはservice ipv4コマンド、IPv6アドレスのEIDを処理するにはservice ipv6コマンドを設定します。
map-serverコマンドでMS、map-resolverコマンドでMRを有効にします。

MR/MSにおいて、管理対象のxTRの集合であるLISP Siteをsite <サイト名>コマンドで定義します。
authentication-key <パスワード>コマンドで認証用のパスワードを指定します。この認証用パスワードはMSが受信したMap Registerメッセージを認証する際に使用します。
eid-record <address>/<prefix-length>コマンドでMSに登録可能なEID-Prefixを定義します。

R1

router lisp
 service ipv4
  map-server
  map-resolver
  exit-service-ipv4
 !
 site Site_1
  authentication-key Zaq12wsx!@
  eid-record 10.1.1.0/24
  eid-record 10.2.2.0/24
  exit-site
 !
 exit-router-lisp
            

 

xTRの設定の確認

xTRとして動作させるR2の設定を確認します。

itrコマンドでITRを有効にし、itr map-resolver <MRのアドレス>コマンドでEIDに対応するRLOCの問い合わせ先のMRを指定します。
etrコマンドでETRを有効にし、etr map-server <MRのアドレス> key <password>コマンドでEID-PrefixとRLOCのマッピング情報の登録先のMSを指定します。key <password>には、MSのauthentication-key <パスワード>コマンドで指定した値と同じものを設定します。

次に、instance-id <iid>コマンドでインスタンスを作成します。
インスタンスについては、別の記事で詳しく説明します。今回は別途VRFを作成していないため、IID(Instance ID)が0のインスタンスを作成します。
MR/MSの設定と同様に、IPv4アドレスのEIDを処理するにはservice ipv4コマンド、IPv6アドレスのEIDを処理するにはservice ipv6コマンドを設定します。
eid-tableコマンドでEIDが所属するネットワークのVRFを指定します。今回は別途VRFを作成していないため、eid-table defaultコマンドでデフォルトのVRFを指定します。
database-mapping <address>/<prefix-length> <rloc> priority <val> weight <val>コマンドでMSに登録するEID-PrefixとRLOCのマッピング情報を定義します。PriorityとWeightの挙動については別の記事で説明します。

R2

router lisp
 service ipv4
  itr map-resolver 172.16.1.1
  itr
  etr map-server 172.16.1.1 key Zaq12wsx!@
  etr
  exit-service-ipv4
 !
 instance-id 0
  service ipv4
   eid-table default
   database-mapping 10.1.1.0/24 172.16.1.2 priority 1 weight 50
   exit-service-ipv4
  !
  exit-instance-id
 !
 exit-router-lisp
            

 

EID-PrefixとRLOCのマッピング情報の登録

最初、xTRであるR2とR3はEID-PrefixとRLOCのマッピング情報をMSであるR1に登録します。
ここでは、R2がR1にマッピング情報を登録する際の様子を確認します。

R2はEID-Prefixが10.1.1.0/24、RLOCが172.16.1.2のマッピング情報を格納したMap RegisterメッセージをR1に送信します。

 

以下は、R2がR1に送信したMap Registerメッセージになります。
EID-PrefixとRLOCが格納されていることが確認できます。また、etr map-server <MRのアドレス> key <password>コマンドで指定したパスワードを基に生成された認証用の情報が格納されていることが確認できます。

 

R1がMap Registerメッセージを受信した際のデバッグは以下になります。

R1

R1#debug lisp control-plane all

*May 16 14:57:36.188: [MS]  LISP-0: Processing received Map-Register(3) message on GigabitEthernet2 from 172.16.1.2:4342 to 172.16.1.1:4342.
*May 16 14:57:36.189: [MS]  LISP: Received Map-Register no proxy, map-notify, no merge, no security, no mobile-node, not to-RTR, no fast-map-register, no EID-notify, ID-included, 1 record, nonce 0x3CA3E13A-0x96CA01E0, key-id 1, auth-data-len 20, hash-function sha1, xTR-ID 0xF180E005-0x7DEB7B41-0x6FFC3231-0xCD92F0F5, site-ID unspecified, domain-id none, multihoming-id none
*May 16 14:57:36.189: [MS]  LISP-0: Received Map-Register mapping record for IID 0 SVC_IP_IAF_IPv4 10.1.1.0/24 LCAF 254, ttl 1440, action none, authoritative, 1 locator.
*May 16 14:57:36.189: [MS]  LISP-0:     172.16.1.2 pri/wei/dID/mID=1/50/0/0 LpR.
*May 16 14:57:36.190: [MS]  LISP-0: MS registration IID 0 prefix 10.1.1.0/24 172.16.1.2 SVC_IP_IAF_IPv4 site Site_1, Created new registration.
*May 16 14:57:36.190: [MS]  LISP-0: MS registration IID 0 prefix 10.1.1.0/24 172.16.1.2 SVC_IP_IAF_IPv4 site Site_1, Adding locator 172.16.1.2.
*May 16 14:57:36.191: [XTR] LISP: RIB Watch Group default 172.16.1.2/32 , created.
*May 16 14:57:36.191: [XTR] LISP: RIB Watch Group default 172.16.1.2/32 , scheduling RIB update.
*May 16 14:57:36.191:       LISP-0: MS inst member IID 0 172.16.1.2 Became valid.
*May 16 14:57:36.192:       LISP: Session VRF default, Local UNSPEC, Peer 172.16.1.2, Role: Passive, State: Unknown, Created (RX 0, TX 0).
*May 16 14:57:36.192: [MS]  LISP-0: MS EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, Scheduling map notifications for prefix 10.1.1.0/24.
*May 16 14:57:36.192:       LISP-0: MS EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, Add element for announcement to walker list, ttl is 1440, last_valid is not null, force_withdrawl is 0.
*May 16 14:57:36.193:       LISP-0: MS EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, Handle publication summary.
*May 16 14:57:36.193:       LISP-0: MS Site EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, site_eid found for ms_eid, publication summary is 0, .
*May 16 14:57:36.193: [MS]  LISP-0: MS EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, Scheduling unreliable map notification for prefix 10.1.1.0/24 to ETR 172.16.1.2:4342 which registered 10.1.1.0/24.
*May 16 14:57:36.194: [XTR] LISP: RIB Watch Group default 172.16.1.2/32 , installing in RIB.
*May 16 14:57:36.194: LISP RIB_RWATCH: (default:ipv4:base) T Initialised table
*May 16 14:57:36.195: LISP RIB_RWATCH: (default:ipv4:base) T 172.16.1.2/32 EVENT Track start
*May 16 14:57:36.195: LISP RIB_RWATCH: (default:ipv4:base) N 172.16.1.2/32 Adding track
*May 16 14:57:36.195: LID: Get id @0x7FE68CCCFC08 - current 1 [1..7FFFFFFF] (checking disabled)
*May 16 14:57:36.196: LID: AVAIL - id 1
*May 16 14:57:36.196: LISP RIB_RWATCH: (default:ipv4:base) T Added trk_sn 0x7FE694578FF0 for trk 0x7FE69462A710, sequence nbr: 1
*May 16 14:57:36.196: LISP RIB_RWATCH: (default:ipv4:base) N 172.16.1.2/32 QP Schedule query
*May 16 14:57:36.197: LISP RIB_RWATCH: (default:ipv4:base) T 172.16.1.2/32 EVENT Query found route
*May 16 14:57:36.197: LISP RIB_RWATCH: (default:ipv4:base) N 172.16.1.0/24 Adding route
*May 16 14:57:36.197: LISP RIB_RWATCH: (default:ipv4:base) R 172.16.1.0/24  d=0 p=0 -> Updating
*May 16 14:57:36.198: LISP RIB_RWATCH: (default:ipv4:base) R 172.16.1.0/24  NA d=0 p=1 -> Gi2 0.0.0.0 base 0 Notifying
*May 16 14:57:36.199: LISP RIB_RWATCH: Adding to client notification queue
*May 16 14:57:36.199: [MS]  LISP-0: MS EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, ALT route update/create.
*May 16 14:57:36.200: [XTR] LISP-0: ALTroute IID 0 prefix 10.1.1.0/24 <-> created.
*May 16 14:57:36.200: [XTR] LISP-0: ALTroute IID 0 prefix 10.1.1.0/24 <-> add source MS-EID.
*May 16 14:57:36.200:       LISP: Session VRF default, Local UNSPEC, Peer 172.16.1.2, Role: Passive, State: Unknown, Destroyed with OS adaptor (RX 0, TX 0).
*May 16 14:57:36.201: [MS]  LISP-0: Map-Notify 172.16.1.1:4342->172.16.1.2:4342 xTR-ID 0xF180E005-0x7DEB7B41-0x6FFC3231-0xCD92F0F5, sending with 1 prefix, nonce 0x3CA3E13A-0x96CA01E0
*May 16 14:57:36.202: LISP RIB_RWATCH: (default:ipv4:base) W 172.16.1.2/32 c=0x7FE694C13B38 Client notified reachable
*May 16 14:57:36.203: [XTR] LISP: RIB Next-hop default GigabitEthernet2 172.16.1.2 lcl UNSPEC, created.
*May 16 14:57:36.203:       LISP: IfAddrWatch IPv4 default:GigabitEthernet2, Enabling tracking
*May 16 14:57:36.203:       LISP: IfAddrWatch IPv4 default:GigabitEthernet2, address UNSPEC->172.16.1.1
*May 16 14:57:36.204: [XTR] LISP: RIB Next-hop default GigabitEthernet2 172.16.1.2 lcl 172.16.1.1, notified.
*May 16 14:57:36.204: [XTR] LISP-0: ALTroute IID 0 prefix 10.1.1.0/24 <MS-EID> RIB route ignore create, no ALT RIB.
*May 16 14:57:36.204: [XTR] LISP: RIB Next-hop default GigabitEthernet2 172.16.1.2 lcl 172.16.1.1, notified.
*May 16 14:57:36.204:       LISP: Session VRF default, Local UNSPEC, Peer 172.16.1.2, Role: Passive, State: Unknown, Peer is reachable (RX 0, TX 0).
*May 16 14:57:36.205:       LISP: Session VRF default, Local UNSPEC, Peer 172.16.1.2, Role: Passive, State: Unknown, Scheduled update (RX 0, TX 0).
*May 16 14:57:36.205: [MS]  LISP-0: MS EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, ALT route update/create.
*May 16 14:57:36.205: [XTR] LISP-0: ALTroute IID 0 prefix 10.1.1.0/24 <MS-EID> update source MS-EID.
*May 16 14:57:36.206:       LISP: OS TCP Session VRF: IPv4 default, Peer: 172.16.1.2, Local: UNSPEC, TCB: 0x0 Listening for connections (TCB: 0x7FE68B106100) (State: Unknown, pending update).
*May 16 14:57:36.206:       LISP: Session VRF default, Local UNSPEC, Peer 172.16.1.2, Role: Passive, State: Init, Created with OS adaptor (RX 0, TX 0).
            

 

認証用のパスワードが異なっている場合のR1のデバッグは以下になります。

R1

R1#debug lisp control-plane all

*May 16 14:55:14.019: [MS]  LISP-0: Processing received Map-Register(3) message on GigabitEthernet2 from 172.16.1.2:4342 to 172.16.1.1:4342.
*May 16 14:55:14.019: [MS]  LISP: Received Map-Register no proxy, map-notify, no merge, no security, no mobile-node, not to-RTR, no fast-map-register, no EID-notify, ID-included, 1 record, nonce 0xEC7EAA70-0x997809F7, key-id 1, auth-data-len 20, hash-function sha1, xTR-ID 0xF180E005-0x7DEB7B41-0x6FFC3231-0xCD92F0F5, site-ID unspecified, domain-id none, multihoming-id none
*May 16 14:55:14.020: [MS]  LISP-0: Received Map-Register mapping record for IID 0 SVC_IP_IAF_IPv4 10.1.1.0/24 LCAF 254, ttl 1440, action none, authoritative, 1 locator.
*May 16 14:55:14.020: [MS]  LISP-0:     172.16.1.2 pri/wei/dID/mID=1/50/0/0 LpR.
*May 16 14:55:14.020: [MS]  LISP-0: MS Site EID IID 0 prefix 10.1.1.0/24 SVC_IP_IAF_IPv4 site Site_1, Registration failed authentication.
            

 

Map Registerメッセージに格納されているEID-Prefixがeid-record <address>/<prefix-length>コマンドで定義されていない場合のR1のデバッグは以下になります。

R1

R1#debug lisp control-plane all

*May 16 14:56:35.898: [MS]  LISP-0: Processing received Map-Register(3) message on GigabitEthernet2 from 172.16.1.2:4342 to 172.16.1.1:4342.
*May 16 14:56:35.900: [MS]  LISP: Received Map-Register no proxy, map-notify, no merge, no security, no mobile-node, not to-RTR, no fast-map-register, no EID-notify, ID-included, 1 record, nonce 0x00E0358B-0xB0853637, key-id 1, auth-data-len 20, hash-function sha1, xTR-ID 0xF180E005-0x7DEB7B41-0x6FFC3231-0xCD92F0F5, site-ID unspecified, domain-id none, multihoming-id none
*May 16 14:56:35.902: [MS]  LISP-0: Received Map-Register mapping record for IID 0 SVC_IP_IAF_IPv4 10.1.1.0/24 LCAF 254, ttl 1440, action none, authoritative, 1 locator.
*May 16 14:56:35.902: [MS]  LISP-0:     172.16.1.2 pri/wei/dID/mID=1/50/0/0 LpR.
*May 16 14:56:35.903: [MS]  LISP-0: IID 0 No configuration for map register EID prefix 10.1.1.0/24.
            

 

R1はMap Registerメッセージ受信後、R2に対してMap Notifyメッセージを返信します。

 

以下は、R1がR2に返信したMap Notifyメッセージになります。

 

EID-PrefixとRLOCのマッピング情報登録後の状態確認

R1のEID-PrefixとRLOCのマッピング情報の登録状況はshow lisp siteコマンドで確認できます。
ただし、このコマンドでは登録状況のみ確認可能で、EID-Prefixに紐づくRLOCは確認できません。
who Last RegisteredのアドレスはxTRがMSとの通信で使用しているアドレスであって、RLOCではありません。

R1

R1#show lisp site
LISP Site Registration Information
* = Some locators are down or unreachable
# = Some registrations are sourced by reliable transport

Site Name      Last      Up     Who Last             Inst     EID Prefix
               Register         Registered           ID
Site_1         00:01:43  yes#   172.16.1.2:52677              10.1.1.0/24
               00:00:08  yes#   172.16.1.3:41036              10.2.2.0/24
            

 

EID-Prefixに紐づくRLOCの情報はshow lisp site detailコマンドで確認できます。

R1

R1#show lisp site detail
LISP Site Registration Information

Site name: Site_1
Allowed configured locators: any
Allowed EID-prefixes:

  EID-prefix: 10.1.1.0/24
    First registered:     00:02:29
    Last registered:      00:01:56
    Routing table tag:    0
    Origin:               Configuration
    Merge active:         No
    Proxy reply:          No
    Skip Publication:     No
    Force Withdraw:       No
    TTL:                  1d00h
    State:                complete
    Registration errors:
      Authentication failures:   0
      Allowed locators mismatch: 0
    ETR 172.16.1.2:52677, last registered 00:01:56, no proxy-reply, map-notify
                          TTL 1d00h, no merge, hash-function sha1, nonce 0x3CA3E13A-0x96CA01E0
                          state complete, no security-capability
                          xTR-ID 0xF180E005-0x7DEB7B41-0x6FFC3231-0xCD92F0F5
                          site-ID unspecified
                          Domain-ID unspecified
                          Multihoming-ID unspecified
                          sourced by reliable transport
      Locator     Local  State      Pri/Wgt  Scope
      172.16.1.2  yes    up           1/50   IPv4 none

  EID-prefix: 10.2.2.0/24
    First registered:     00:00:25
    Last registered:      00:00:21
    Routing table tag:    0
    Origin:               Configuration
    Merge active:         No
    Proxy reply:          No
    Skip Publication:     No
    Force Withdraw:       No
    TTL:                  1d00h
    State:                complete
    Registration errors:
      Authentication failures:   0
      Allowed locators mismatch: 0
    ETR 172.16.1.3:41036, last registered 00:00:21, no proxy-reply, map-notify
                          TTL 1d00h, no merge, hash-function sha1, nonce 0xF6BC2B4D-0x42670A37
                          state complete, no security-capability
                          xTR-ID 0x77F7EE65-0xFC042238-0xA9150686-0x715439C3
                          site-ID unspecified
                          Domain-ID unspecified
                          Multihoming-ID unspecified
                          sourced by reliable transport
      Locator     Local  State      Pri/Wgt  Scope
      172.16.1.3  yes    up           1/50   IPv4 none
            

 

xTRでのEID-PrefixとRLOCのマッピング情報の設定内容はshow ip lisp databaseコマンドで確認できます。

R2

R2#show ip lisp database
LISP ETR IPv4 Mapping Database for EID-table default (IID 0), LSBs: 0x1
Entries total 1, no-route 0, inactive 0

10.1.1.0/24
  Uptime: 00:06:10, Last-change: 00:03:45
  Domain-ID: unset
  Locator     Pri/Wgt  Source     State
  172.16.1.2    1/50   cfg-addr   site-self, reachable
            

 

宛先のEIDに対応するRLOCの解決

MSへのEID-PrefixとRLOCのマッピング情報の登録が完了すると、端末やサーバ間での通信が発生するまで、LISP側の状態変化はありません。

では、R4からR5に対してPingを実施し、LISPの動作を確認します。

 

R2はEID-PrefixとRLOCのキャッシュを検索し、パケットの送信先アドレスにマッチするEID-Prefixが存在するか確認します。
存在しない場合は、パケットの送信先アドレスを格納したMap RequestメッセージをR1に送信します。

 

以下はR2が10.2.2.5宛のパケットを受信した際のデバッグになります。
R2がR1に10.2.2.5を格納したMap Requestメッセージを送信していることが確認できます。

R2

R2#debug lisp control-plane all

*May 28 19:38:26.861: [XTR] LISP: Processing data signal for EID prefix IID 0 10.2.2.5/32
*May 28 19:38:26.862: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.5/32, Change state to incomplete (sources: , state: unknown, rlocs: 0).
*May 28 19:38:26.862: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.5/32, [incomplete] Scheduling map requests delay 00:00:00 min_elapsed 00:00:01 (sources: , state: incomplete, rlocs: 0).
*May 28 19:38:26.862: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.5/32, Starting idle timer (delay 00:02:30) (sources: , state: incomplete, rlocs: 0).
*May 28 19:38:26.878:       LISP-0: IID 0 Request processing of remote EID prefix map requests to IPv4.
*May 28 19:38:26.879: [XTR] LISP: Send map request type remote EID prefix
*May 28 19:38:26.879: [XTR] LISP: Send map request for EID prefix IID 0 10.2.2.5/32
*May 28 19:38:26.879: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.5/32, Send map request (1) (sources: , state: incomplete, rlocs: 0).
*May 28 19:38:26.880:       LISP-0: EID-AF IPv4, Sending map-request from 10.2.2.5 to 10.2.2.5 for EID 10.2.2.5/32, ITR-RLOCs 1, nonce 0x7047E71F-0x65C02AAC (encap src 172.16.1.2, dst 172.16.1.1).
            

 

以下は、R2がR1に送信したMap Requestメッセージになります。
R2が受信したパケットの送信先アドレスである10.2.2.5が格納されていることが確認できます。

 

 

R1はMap Requestメッセージを受信後、R3にMap Requestメッセージを転送します。

 

以下はR1がMap Requestメッセージを受信した際のデバッグになります。
R1がR3にMap Requestメッセージを転送していることが確認できます。

R1

R1#debug lisp control-plane all

*May 28 19:38:26.981: [MS]  LISP-0: Processing received Encap-Control(8) message on GigabitEthernet2 from 172.16.1.2:4342 to 172.16.1.1:4342.
*May 28 19:38:26.981: [MS]  LISP-0: Processing received Map-Request(1) message on GigabitEthernet2 from 10.2.2.5:4342 to 10.2.2.5:4342.
*May 28 19:38:26.981: [MS]  LISP-0: Received map request for IID 0 10.2.2.5/32, source_eid IID 0 10.1.1.4, ITR-RLOCs: 172.16.1.2, records 1, nonce 0x7047E71F-0x65C02AAC.
*May 28 19:38:26.982: [MS]  LISP-0: MS EID IID 0 prefix 10.2.2.0/24 SVC_IP_IAF_IPv4 site Site_1, Forwarding map request to ETR RLOC 172.16.1.3.
            

 

 

R3はMap Requestメッセージを受信後、10.2.2.5に対応するEID-PrefixとRLOCを格納したMap ReplyメッセージをR2に返信します。

 

以下はR3がMap Requestメッセージを受信した際のデバッグになります。
R3がR2にMap Replyメッセージを返信していることが確認できます。

R3

R3#debug lisp control-plane all

*May 28 19:38:26.893: [MS]  LISP-0: Processing received Encap-Control(8) message on GigabitEthernet2 from 172.16.1.1:4342 to 172.16.1.3:4342.
*May 28 19:38:26.893: [MS]  LISP-0: Processing received Map-Request(1) message on GigabitEthernet2 from 10.2.2.5:4342 to 10.2.2.5:4342.
*May 28 19:38:26.894: [MS]  LISP-0: Received map request for IID 0 10.2.2.5/32, source_eid IID 0 10.1.1.4, ITR-RLOCs: 172.16.1.2, records 1, nonce 0x7047E71F-0x65C02AAC.
*May 28 19:38:26.894:       LISP: Processing map request record for EID prefix IID 0 10.2.2.5/32
*May 28 19:38:26.894:       LISP-0: Sending map-reply from 172.16.1.3 to 172.16.1.2.
*May 28 19:38:26.895: [XTR] LISP: Processing mapping information for EID prefix IID 0 10.1.1.0/24
*May 28 19:38:26.896: [XTR] LISP-0: IAF IID 0 SVC_IP_IAF_IPv4, Not configured to accept unsolicited mapping.
            

 

以下は、R3がR2に返信したMap Replyメッセージになります。
10.2.2.5に対応するEID-Prefixの10.2.2.0/24と、RLOCの172.16.1.3が格納されていることが確認できます。

 

R2はMap Replyメッセージを受信後、Map Replyメッセージに格納されているEID-PrefixとRLOCのマッピング情報をキャッシュとして保存します。(今後の記事では、このキャッシュをMap Cacheと表記します。)

 

以下はR2がMap Replyメッセージを受信した際のデバッグになります。
Map ReplyメッセージにEID-Prefixとして10.2.2.0/24、RLOCとして172.16.1.3が格納されていることが確認できます。

R2

R2#debug lisp control-plane all

*May 28 19:38:26.889: [MS]  LISP-0: Processing received Map-Reply(2) message on GigabitEthernet2 from 172.16.1.3:4342 to 172.16.1.2:4342.
*May 28 19:38:26.890:       LISP: Received map reply nonce 0x3FB69496-0x6D8123FF, records 1
*May 28 19:38:26.890:       LISP-0: Processing Map-Reply mapping record for IID 0 SVC_IP_IAF_IPv4 10.2.2.0/24 LCAF 254, ttl 1440, action none, authoritative, 1 locator.
*May 28 19:38:26.890:       LISP-0:     172.16.1.3 pri/wei/dID/mID=1/50/0/0 LpR.
*May 28 19:38:26.890:       LISP-0: Map Request IID 0 prefix 10.2.2.5/32 remote EID prefix[LL], Received reply with rtt 11ms.
*May 28 19:38:26.891: [XTR] LISP: Processing mapping information for EID prefix IID 0 10.2.2.0/24
*May 28 19:38:26.891: [XTR] LISP-0: IAF IID 0 SVC_IP_IAF_IPv4, Persistent db: ignore writing request, disabled.
*May 28 19:38:26.891: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, Change state to complete (sources: , state: unknown, rlocs: 0).
*May 28 19:38:26.891: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, Starting idle timer (delay 00:02:30) (sources: , state: complete, rlocs: 0).
*May 28 19:38:26.892: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.5/32, Change state to deleted (sources: <>, state: incomplete, rlocs: 0).
*May 28 19:38:26.892: [XTR] LISP: RIB Watch Group default 172.16.1.3/32 , created.
*May 28 19:38:26.892: [XTR] LISP: RIB Watch Group default 172.16.1.3/32 , scheduling RIB update.
*May 28 19:38:26.892: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, RLOCs pending rwatch update, defer fwd update (sources: , state: complete, rlocs: 0).
*May 28 19:38:26.893: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, 1 RLOCs pending rwatch update, defer fwd update (sources: , state: complete, rlocs: 0).
*May 28 19:38:26.893: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, Recalculated RLOC status bits from 0x0 to 0x1 (sources: , state: complete, rlocs: 1).
*May 28 19:38:26.893: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, 1 RLOCs pending rwatch update, defer fwd update (sources: , state: complete, rlocs: 1).
*May 28 19:38:26.894: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.5/32, Map-reply from 172.16.1.3 returned less specific 10.2.2.0/24 (sources: <>, state: deleted, rlocs: 0).
*May 28 19:38:26.901: [XTR] LISP: RIB Watch Group default 172.16.1.3/32 , installing in RIB.
*May 28 19:38:26.902: [XTR] LISP: RIB Next-hop default GigabitEthernet2 172.16.1.3 lcl UNSPEC, created.
*May 28 19:38:26.902: [XTR] LISP: RIB Next-hop default GigabitEthernet2 172.16.1.3 lcl 172.16.1.2, notified.
*May 28 19:38:26.903: [XTR] LISP-0: Remote shrRLOC 172.16.1.3, Reachability notification, up* allow* remote.
*May 28 19:38:26.903: [XTR] LISP-0: Remote EID IID 0 prefix 10.2.2.0/24, No more RLOCs pending rwatch update, schedule deferred fwd update (sources: , state: complete, rlocs: 1).
            

 

EID-PrefixとRLOCのマッピング情報のキャッシュはshow ip lisp map-cacheコマンドで確認できます。

R2

R2#show ip lisp map-cache
LISP IPv4 Mapping Cache for EID-table default (IID 0), 2 entries

0.0.0.0/0, uptime: 00:00:23, expires: 00:00:36, via static-send-map-request
  Negative cache entry, action: send-map-request
10.2.2.0/24, uptime: 00:01:12, expires: 23:58:47, via map-reply, complete
  Locator     Uptime    State  Pri/Wgt     Encap-IID
  172.16.1.3  00:01:12  up       1/50        -
            

 

キャッシュとして保存されたEID-PrefixとRLOCのマッピング情報を基に、CEFが更新されます。
補足として、LISP0はLISPのカプセル化、カプセル化解除を実施するための仮想インタフェースになります。

R2

R2#show ip cef 10.2.2.0/24 detail
10.2.2.0/24, epoch 2, flags [default route handler, subtree context, check lisp eligibility, default route]
  SC owned,sourced: LISP remote EID - locator status bits 0x00000001
  LISP remote EID: 43 packets 4212 bytes fwd action encap, cfg as EID space
  LISP source path list
    nexthop 172.16.1.3 LISP0
  2 IPL sources [unresolved, active source]
    Dependent covered prefix type inherit, cover 0.0.0.0/0
  recursive via 0.0.0.0/0
    no route
            

 

R2は更新されたCEFを基に、10.2.2.5宛のパケットをLISPでカプセル化してR3に転送します。

 

以下は、R4がR5に送信したICMP Echoになります。(172.16.1.0/24上でキャプチャ)
LISPでカプセル化されていることが確認できます。また、Outer IPヘッダの送信元、送信先アドレスがRLOCであることが確認できます。

コメント

  1. LISPについて勉強しているのですが、ここまで詳細かつわかりすい資料はそうそうないかと思います。わかりやすい図および設定コマンドさらにshowの出力なども詳細に掲載してくださり、大変参考になりました。ありがとうございました。SD-WANも勉強させていただきます。今後の技術解説も楽しみにしています。

    • ありがとうございます!これからも定期的にアップしてまいります!

  2. 分かりやすい説明で大変助かりました!
    1点気になったのが、
    ーーー
    R3はMap Requestメッセージを受信後、10.2.2.5に対応するEID-PrefixとRLOCを格納したMap ReplyメッセージをR1に返信します。
    ーーー
    の部分はR1→R2でしょうか。
    次の文でR3がR2にReplyを返信となっていたので。

    • ゆず様

      誤字の御指摘、ありがとうございます!
      修正いたしました!

タイトルとURLをコピーしました