experimental implementation of a compact routing based mapping system for the locator/id separation...

Upload: a-m-anisul-huq

Post on 03-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    1/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    2/137

    +

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    3/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    4/137

    Abstract ii

    List of Tables vii

    List of Figures viii

    Abbreviations and Acronyms x

    1 Introduction 1

    1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    1.2 Objective and scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    1.3 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2 Background Information 6

    2.1 Compact Routing: A brief theoretical overview . . . . . . . . . . . . . . . . . . .

    2.1.1 The TZ Routing Process. . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.1.2 Compact Routing - Limitations and Mitigations . . . . . . . . . . . . . . .

    2.2 Splitting location and ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.2.1 Map-n-Encap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3 Locator/ ID separation protocol (LISP): A brief overview . . . . . . . . . . . . . .

    2.3.1 LISP Network Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.2 LISP data plane Operation . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.3 LISP control plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.3.1 LISP-ALT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.3.2 LISP-DHT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.3.3 LISP-CONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.3.4 NERD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.3.3.5 FIRMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.4 Importance of OpenLISP: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.5 OpenLISP: An Architectural Overview . . . . . . . . . . . . . . . . . . . . . . . .

    2.5.1 OpenLISP data plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.5.1.1 Encapsulation and De-capsulation routines . . . . . . . . . . . .

    2.5.2 Map Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    5/137

    2.5.2.1 MTU Management. . . . . . . . . . . . . . . . . . . . . . . . . .

    2.5.3 OpenLISP Control Plane . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.5.3.1 Mapping Sockets API: . . . . . . . . . . . . . . . . . . . . . . . .

    2.6 Dissemination of End Point reachability . . . . . . . . . . . . . . . . . . . . . . .

    2.6.1 Routing protocols: terminologies explained . . . . . . . . . . . . . . . . .

    2.6.2 BGP: the basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.6.3 BGP capabilities negotiation . . . . . . . . . . . . . . . . . . . . . . . . .

    2.6.4 BGP messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.6.5 Route selection and BGP Routing Information Bases (RIBs). . . . . . . .

    2.6.6 BGP Path attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.6.7 BGP decision process . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2.6.8 Packet traversal in a BGP domain . . . . . . . . . . . . . . . . . . . . . .

    2.7 Address Aggregation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    3 External Tools 44

    3.1 Quagga routing suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    3.1.1 Advertise End point reachability with Quagga . . . . . . . . . . . . . . . .

    3.2 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    3.2.1 Using Transactions through MySQL . . . . . . . . . . . . . . . . . . . . .

    3.2.2 Choosing a Transactional Storage Engine . . . . . . . . . . . . . . . . . .

    3.3 MD5 message-digest algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4 Software Implementation 51

    4.1 Architectural Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.1.1 Requirements: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.1.2 Software Development Environment: . . . . . . . . . . . . . . . . . . . . .

    4.1.2.1 Platform, Standard and License: . . . . . . . . . . . . . . . . . .

    4.1.2.2 Software Editor: . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.1.2.3 Make Utility: . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.1.2.4 Debugging: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.2 Implementation of Major components . . . . . . . . . . . . . . . . . . . . . . . .

    4.2.1 UDP Client (or "xTR Extension") . . . . . . . . . . . . . . . . . . . . . . .

    4.2.2 UDP Server (for Aggregation) . . . . . . . . . . . . . . . . . . . . . . . . .

    4.2.2.1 Natural Aggregation . . . . . . . . . . . . . . . . . . . . . . . . .

    4.2.2.2 Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.2.2.3 Virtual Prefix generation: the decision process . . . . . . . . . .

    4.2.2.4 Virtual Prefix Generation: . . . . . . . . . . . . . . . . . . . . . .

    4.2.2.5 Hash value generation and Advertisement through Quagga. . .

    4.2.2.5.1 Static Configuration (BGP Daemon) . . . . . . . . . . .

    4.2.2.5.2 Dynamic Configuration (BGP Daemon) . . . . . . . . .

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    6/137

    4.2.3 TCP Client (for EID Topology Discovery) . . . . . . . . . . . . . . . . . . .

    4.2.4 TCP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.3 Database Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.3.1 Entities and their Attributes . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.3.2 Entity Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.3.3 Foreign Key and Referential Integrity . . . . . . . . . . . . . . . . . . . . .

    4.3.4 ER Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.3.5 The Relational Data Model . . . . . . . . . . . . . . . . . . . . . . . . . .

    4.3.6 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    5 Analysis 81

    5.1 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    5.2 Cost Profile, possible Optimizations and Comparisons . . . . . . . . . . . . . . .

    5.3 Implementation Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    6 Conclusion and Future Work: 99

    Bibliography 100

    A Appendix: Call Graph Views 106

    B Appendix: SQL Queries 111

    B.1 SQL Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C Appendix: Implementation Code 112

    C.1 UDP client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C.1.1 Send map register message and receive map notify packet. . . . . . . . .

    C.2 TCP client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C.2.1 Extraction of BGPs Aggregator and Community Attribute. . . . . . . . . .

    C.3 TCP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C.3.1 I/O Multiplexed TCP Server to handle multiple clients simultaneously. . .

    C.4 UDP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C.4.1 Listens for map register packets, sends the received data for aggregation

    and afterwards returns map notify message to the client. . . . . . . . . .

    C.4.2 Prefix length calculation for address aggregation. . . . . . . . . . . . . . .

    C.4.3 IP Address aggregation. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C.4.4 Virtual Prefix Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . .

    C.4.5 Advertisement through Quagga. . . . . . . . . . . . . . . . . . . . . . . .

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    7/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    8/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    9/137

    #

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    10/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    11/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    12/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    13/137

    http://www.netstreamsol.com.au/networking/notes/routing/ip_subnetting_address_aggregation.htmlhttp://www.netstreamsol.com.au/networking/notes/routing/ip_subnetting_address_aggregation.htmlhttp://www.nanog.org/meetings/nanog3/notes/route-flapping.phphttp://www.nanog.org/meetings/nanog3/notes/route-flapping.phphttp://-/?-http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    14/137

    http://answerpot.com/showthread.php?1552501-EID%20Allocation%20/%20ALT%20Base/Page2http://answerpot.com/showthread.php?1552501-EID%20Allocation%20/%20ALT%20Base/Page2http://www.iana.org/abuse/faq.htmlhttp://-/?-http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    15/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    16/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    17/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    18/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    19/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    20/137

    http://blog.pattincon.com/internet-routing-table%E2%80%93the-goodhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    21/137

    http://www.cs.uoregon.edu/Activities/Poster_Contest/2005/boothe-hijacking.pdfhttp://www.cs.uoregon.edu/Activities/Poster_Contest/2005/boothe-hijacking.pdfhttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    22/137

    http://typo3.trilogy-roject.eu/fileadmin/publications/Other/Papadimitriou-CompactRouting.pdfhttp://typo3.trilogy-roject.eu/fileadmin/publications/Other/Papadimitriou-CompactRouting.pdfhttp://bill.herrin.us/network/bgpcost.htmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    23/137

    2/3

    n

    2/3

    n

    http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    24/137

    n

    C(w) ={vV|(v, w)< (A, w)}

    (v, w)

    (A, w) =min{(u, w)|uA}

    1

    s

    n

    s/|potentiallandmarks|

    4n/s

    s=

    n/logn

    6

    nlogn 4

    nlogn

    2

    nlogn

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    25/137

    Legend:

    Landmark (LM)

    Network Node

    a

    b

    c dTo | Via

    a b

    To | Via

    a a

    d d

    To | Viaa a

    To | Via

    a b

    d d

    Step 1 Step 2a

    Step 2b

    Additional

    RT entry

    AdditionalRT entry

    Send a packet from node a to node d[label: (d,a,c)]

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    26/137

    Legend:

    Landmark (LM)

    Network Node

    Node & its cluster

    Node & its cluster

    Node & its cluster

    31 89

    6

    5

    2 4

    7

    To | Next

    4 4

    7 9

    1 1

    8 9

    9 9

    To | Next

    4 9

    7 9

    9 9

    To | Next

    4 3

    7 6

    8 8

    To | Next4 6

    7 7To | Next

    4 5

    7 7

    9 9

    8 8To | Next

    4 4

    7 5

    To | Next

    4 4

    7 4

    1 1

    To | Next

    4 4

    7 6

    To | Next

    4 2

    7 3

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    27/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    28/137

    1010

    http://blog.pattincon.com/internet-routing-table%E2%80%93the-goodhttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    29/137

    ITR/ ETR

    S_RLOC -> D_RLOC

    S_EID -> D_EID

    DECAP in

    ETR

    D_RLOC -> S_RLOC

    D_EID -> S_EID

    S_EID -> D_EID

    D_EID

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    30/137

    Application

    Transport

    Network

    Physical

    Application

    Transport

    Network

    Network

    Physical

    User

    space

    (EID)

    Network

    space

    (RLOC)

    User

    space

    (EID)

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    31/137

    http://www.nanog.org/meetings/nanog45/presentations/Sunday/Dino_lisp_N45.pdfhttp://www.nanog.org/meetings/nanog45/presentations/Sunday/Dino_lisp_N45.pdfhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    32/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    33/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    34/137

    http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    35/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    36/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    37/137

    0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    ALTR

    outer

    ETRs

    ITR

    Alternative Topology

    (ALT)

    Legend:

    Map-Request

    Map-Reply

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    38/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    39/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    40/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    41/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    42/137

    Mapping

    Distribution

    Protocol

    (Daemon)

    Mapping Socket API

    Encap/decap

    Routines

    MapTable

    (Database + Cache)

    FreeBSD User Space

    (Control Plane )

    FreeBSD Kernel Space

    (Data Plane)

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    43/137

    lisp_input() lisp6_input()

    ip_input() ip6_input()

    Data Link Layer

    Transport Layer

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    44/137

    lisp_output() lisp6_output()

    ip_output() ip6_output()

    Data LinkLayer

    Transport Layer

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    45/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    46/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    47/137

    http://www.alcatel-lucentbusinessportal.com/private/active_docs/OAWAN600_BGP4_wp8.23.pdfhttp://www.alcatel-lucentbusinessportal.com/private/active_docs/OAWAN600_BGP4_wp8.23.pdfhttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    48/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    49/137

    BGP RIB OSPF RIB RIP RIB Local RIB

    Route Selection

    Directly connected

    Subnets & Static

    routes

    Router

    RIB

    Route

    redistribution

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    50/137

    http://www.networkers-online.com/blog/2010/03/bgp-routing-information-base-rib/http://www.networkers-online.com/blog/2010/03/bgp-routing-information-base-rib/http://cidr-report.org/papers/isoc/2005-03/route-sec-2-ispcol.htmlhttp://cidr-report.org/papers/isoc/2005-03/route-sec-2-ispcol.htmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    51/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    52/137

    0x0000000

    0x0000F F F F

    0x F F F F 0000

    0x F F F F F F F F

    0x F F F F F F 01

    0x F F F F F F 02

    0x F F F F F F 03

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    53/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    54/137

    AS1 Router

    > Default

    > 201.1.164.0/24 4

    201.1.164.0/24 2 4

    > 201.1.165.0/24 2 5

    > 201.1.166.0/24 3 6

    AS6 Router

    > Default 3 1

    > 201.1.164.0/24 3 2 4

    > 201.1.165.0/24 3 2 5

    > 201.1.166.0/24 3 6

    AS5 Router

    > Default 2 1

    > 201.1.164.0/24 2 4

    > 201.1.165.0/24 2 5

    > 201.1.166.0/24 2 3 6

    AS4 Router

    > Default 1

    Default 2 1

    > 201.1.164.0/24

    > 201.1.165.0/24 2 5

    201.1.165.0/24 1 2 5

    > 201.1.166.0/24 2 3 6

    201.1.166.0/24 1 3 6

    AS3 Router

    > Default 1

    > 201.1.164.0/24 2 4

    201.1.164.0/24 1 4

    > 201.1.165.0/24 2 5201.1.165.0/24 1 2 5

    > 201.1.166.0/24 6

    AS2 Router

    > Default 1

    > 201.1.164.0/24 4

    201.1.164.0/24 1 4

    > 201.1.165.0/24 5

    > 201.1.166.0/24 3 6

    201.1.166.0/24 1 3 6

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    55/137

    http://www.zebra.org/recent.htmlhttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    56/137

    http://openmaniak.com/quagga.phphttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    57/137

    http://openmaniak.com/quagga.phphttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    58/137

    http://blinky-lights.org/networking/mpls.pdfhttp://www.iptut.com/mpls-knowledge/basic-mpls-tutorialhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    59/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    60/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    61/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    62/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    63/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    64/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    65/137

    http://stackoverflow.com/questions/189562/what-is-the-proper-name-for-doing-debugging-by-adding-print-statementshttp://stackoverflow.com/questions/189562/what-is-the-proper-name-for-doing-debugging-by-adding-print-statementshttp://frank.mtsu.edu/~csdept/FacilitiesAndResources/make.htmhttp://frank.mtsu.edu/~csdept/FacilitiesAndResources/make.htmhttp://www.codeblocks.org/http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    66/137

    http://www.linuxprogrammingblog.com/using-valgrind-to-debug-memory-leakshttp://www.linuxprogrammingblog.com/using-valgrind-to-debug-memory-leakshttp://www.cprogramming.com/debugging/segfaults.htmlhttp://www.cprogramming.com/debugging/segfaults.htmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    67/137

    UDP Server

    UDP Client

    or xTR

    Extension

    Map

    Register

    message

    Map-Notify

    with

    Delegation

    information

    Aggregated/

    Hash

    Value

    Community

    Attribute

    MySQL

    Quagga

    UDP Server

    MySQL

    Quagga

    UDP Client or

    xTR

    Extension

    Map

    Register

    message

    Map-Notify

    with

    Delegationinformation

    Aggregated/Hash

    Value

    Network

    Comm

    unity

    Attrib

    ute

    TCP Client

    TCP Client

    UpdateLMIDTable

    andEIDListtables

    UpdateLMIDTable

    andEIDListtables

    TCP Server TCP Server

    GetEID

    -routing

    tableba

    sedon

    a

    LMID

    Query

    theconte

    ntsof

    EIDL

    isttable

    based

    ona

    LMID

    Querythecontentsof

    EIDListtablebasedona

    LMID

    BGP attribute modification :Community value : used to carry an indicator that shows a change in the reachability information ,

    Aggregator: used to carry the IP of LandMark .

    Extract RLOC & monitor

    changes in Community

    attributeExtract RLOC & monitor

    changes in Community

    attribute

    LM3

    Map

    Registration

    based on Delegation

    information

    Map

    Notify message

    Get EID-routing

    table based on a

    LMID

    LM1 LM2

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    68/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    69/137

    struct map_register_rloc

    {

    unsigned char priority ;

    unsigned char weight ;

    unsigned char mpriority ;

    unsigned char mweight ;

    unsigned short unused _flags;

    unsigned l:1;

    unsigned p:1;

    unsigned r:1;

    unsigned short loc _afi;

    char locator[LOCATOR_SIZE];

    };

    struct map_register_record

    {

    unsigned int record _ttl;

    unsigned int is _delegated;

    unsigned char loc _count;

    unsigned char eid _mask_len;unsigned act :3;

    unsigned auth _bit:1;

    unsigned short reserved 1;

    unsigned rsvd:4;

    unsigned short map _version;

    unsigned short eid _afi;

    char eid_prefix[EID_PREFIX_SIZE];

    struct map_register_rloc loc;

    };

    struct map_register_message

    {

    unsigned type:4;

    unsigned p:1;

    unsigned short reserved 0;

    unsigned m:1;

    unsigned char record _count;

    unsigned int nonce 0;

    unsigned int nonce 1;

    unsigned short key _id;

    unsigned int auth _data_length;

    unsigned int auth _data;

    struct map_register_record

    rec[OPTIMAL_RECORD_NUMBER];

    };

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    70/137

    struct map_notify_rloc

    {

    unsigned char priority ;

    unsigned char weight ;

    unsigned char mpriority ;

    unsigned char mweight ;

    unsigned short unused _flags;

    unsigned l:1;

    unsigned p :1;

    unsigned r :1;unsigned short loc _afi;

    char locator[LOCATOR_SIZE];

    };

    struct map_notify_record

    {

    unsigned int record _ttl;

    unsigned int is_delegated ;

    unsigned char loc _count;

    unsigned char eid _mask_len;

    unsigned act :3;

    unsigned auth _bit:1;unsigned short reserved 1;

    unsigned rsvd:4;

    unsigned short map _version;

    unsigned short eid _afi;

    char eid_prefix[EID_PREFIX_SIZE];

    struct map_notify_rloc loc;

    };

    struct map_notify_message

    {

    unsigned type:4;

    unsigned short reserved 0;unsigned char record _count;

    unsigned int nonce 0;

    unsigned int nonce 1;

    unsigned short key _id;

    unsigned int auth _data_length;

    unsigned int auth_data;

    char server_ip_address[EID_PREFIX_SIZE];

    struct map_notify_record

    rec[OPTIMAL_RECORD_NUMBER];

    };

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    71/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    72/137

    socket()

    sendto()

    close()

    recvfrom()

    UDP Client

    UDP Server (for Aggregation)

    socket()

    bind()

    recvfrom()

    Concatenate

    Routes

    Natural Aggregation

    Blocks untilMap-register messageis

    received from UDP client

    Map-Register message

    Delegation

    Virtual

    Prefix

    Needed?

    Concatenated

    Route

    Yes

    Virtual Prefix

    generation

    MD5 Hash function

    No

    Advertisement through

    Quagga

    Map-Notify message with

    Delegation informationsendto()

    Hash

    Value

    Does theMap-Register messageneeds to be resent

    to a delegated

    LM?

    NextMap-

    Register

    message

    Yes

    No

    Extract mappings from input file

    into aLinked-List

    Based on MTU, determine therequired number ofMap-Register

    messages needed for all the

    mappings

    Required

    number ofMap -Register

    messages sent?

    ConstructMap-Register

    messages

    FOR eachMap-Register

    message

    Yes

    No

    exit()

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    73/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    74/137

    nextNode = header

    while nextNode != null do

    tempNode = header

    while tempNode != null do

    call COMPARE (tempNode IP, tempNode IPLen, nextNode IP, nextNode IPLen)

    tempNode=( tempNode nextElement )

    end while

    nextNode=( nextNode nextElement )

    end while

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    75/137

    function COMPARE (IP1,IP1Len,IP2,IP2Len)

    ifIP2Len < IP1Len then

    STR1 = starting from MSB, extract substring from IP 1 of length IP2Len.

    STR2 = starting from MSB, extract substring from IP 2 of length IP2Len.

    ifSTR1 == STR2 then

    SETANCESTOR_FLAG.

    endif

    endif

    end COMPARE

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    76/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    77/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    78/137

    http://resin.csoft.net/cgi-bin/man.cgi?section=5&topic=bgpd.confhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    79/137

    http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008047915d.shtmlhttp://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008047915d.shtmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    80/137

    \

    \

    \

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    81/137

    xTR# sh ip bgp

    BGP table version is 0, local router ID is 10.144.17.65

    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

    r RIB-failure, S Stale, R Removed

    Origin codes: i - IGP, e - EGP, ? incomplete

    Network Next Hop Metric LocPrf Weight Path

    *> 192.168.87.0 192.168.56.103 0 0 100 i

    *> 192.168.45.0 192.168.56.102 0 100 200 i

    *> 192.168.57.0 192.168.56.103 0 0 100 i

    *> 192.168.67.0 0.0.0.0 0 32768 i

    Total number of prefixes 4

    [[:digit:]]{1, 3}\\.[[:digit:]]{1, 3}\\.[[:digit:]]{1, 3}\\.[[:digit:]]{1, 3}

    \

    #

    http://www.grymoire.com/Unix/Regular.htmlhttp://www.grymoire.com/Unix/Regular.htmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    82/137

    vtysh -c sh ip bgp 192.168.87.0

    BGP routing table entry for 192.168.87.0/32

    Paths: (1 available, best #1, table Default-IP-Routing-Table)

    Not advertised to any peer

    100, (aggregated by 7675 15.10.30.1)

    192.168.56.103 from 192.168.56.103 (10.144.13.56)

    Origin IGP, metric 0, localpref 100, valid, external, best

    Community: 2310:0

    Last update: Fri Jan 2 17:04:10 1970

    #

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    83/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    84/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    85/137

    TCP Server

    socket()

    bind()

    listen()

    Yes

    No

    accept()

    Select() System

    call: Is Packet

    Ready?

    Call

    FD_ISSET()

    Activity in which

    type of Socket

    Descriptor?

    Activity in

    Listening Socket

    Wait for Data

    FD_SET() : add

    this file

    descriptor to the

    file descriptor set

    Activity in

    Client Socket

    Has the client

    closed?

    Yes

    close()

    FD_CLR(): remove

    this file descriptor

    from the filedescriptor set

    No

    write()

    TCP Client (for EIDTopology Discovery )

    Extract contents

    from DB tables

    Aquire entries of the

    entire BGP routing

    table through executing

    show ip bgp.

    Is set aggregator &community attributes

    present for a networkprefix?

    Yes

    Has communityattribute changed for

    thatparticular

    LM?

    Yes

    Is that LMID andcommunity value

    present in theDB? No

    INSERT

    into DB

    socket()

    connect()

    Blocks until connectionfrom client

    Connection

    Established

    TCP 3-way

    handshake

    write()

    read()

    read()

    Requesting

    topology discovery

    Yes

    read()

    Topology discovery

    information (Reply)

    End-of-fileNotification

    sleep() for

    5 seconds

    No

    Next network

    prefix

    UPDATE / INSERT

    into DB for that LM

    close()

    No

    Next file

    descriptor

    Next filedescriptor

    All thenetworkprefixes

    checked?

    NoYes

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    86/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    87/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    88/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    89/137

    LMIDTable

    PK LMID

    HASH_VALUE

    EID-routing

    PK,FK1 LMID

    PK EIDPrefix

    PK EIDPrefixLength

    Is_Delegated

    Delegated_RLOC

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    90/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    91/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    92/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    93/137

    http://typo3.trilogy-roject.eu/fileadmin/publications/Other/Papadimitriou-CompactRouting.pdfhttp://typo3.trilogy-roject.eu/fileadmin/publications/Other/Papadimitriou-CompactRouting.pdfhttp://-/?-http://-/?-http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    94/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    95/137

    UDP Client

    or xTR

    Extension

    TCP Client

    Map

    Register

    message

    LM1

    UDP Server TCP Server

    Map

    Notify message

    with Delegation

    information

    MySQL

    Upd

    ate LM

    IDT

    able

    and EIDL

    isttabl

    es

    UDP Client

    or xTR

    Extension

    TCP Client

    MySQL

    Upda

    teLMID

    Tabl

    e

    andEIDL

    isttabl

    es

    Map

    Register

    messageMap

    Notify message

    with Delegation

    information

    MySQL Querythecontentsof

    EIDListtablebasedona

    LMID

    Virtual

    Machine 1

    Virtual

    Machine 2

    LMID RLOC:

    15.10.30.1

    LM3

    RLOC:

    100.200.30.40

    Random IPaddress Inputs

    Highly

    Agrregatable IP

    address Inputs

    Client side Client side

    Virtual

    Machine 3

    LM2

    RLOC:

    10.20.30.40

    StoreTCPservers

    address

    StoreTCPservers

    address

    Get EID-routing

    table based on a

    LMID

    Get EID-routing

    table based on a

    LMID

    LM4

    MapRegistration

    based on Deleg ation

    information

    Map

    Notify message

    Virtual Machine 4

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    96/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    97/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    98/137

    Change in BGPs

    Community Attribute

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    99/137

    http://kcachegrind.sourceforge.net/html/Home.htmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    100/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    101/137

    http://www.lisha.ufsc.br/teaching/os/exercise/hello.htmlhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    102/137

    http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    103/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    104/137

    http://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    105/137

    n

    2

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    106/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    107/137

    Cycles

    Number of Routers

    Comparison between LISP-ALT & CRM

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    108/137

    http://forge.mysql.com/w/images/1/18/TimC.pdfhttp://-/?-http://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    109/137

    http://www.cs.colostate.edu/~cs551/CourseNotes/ConcurrentConstructs/DisAdvSems.htmlhttp://www.cs.colostate.edu/~cs551/CourseNotes/ConcurrentConstructs/DisAdvSems.htmlhttp://-/?-
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    110/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    111/137

    http://www.mdom.de/fsujena/publications/Dom07_s.pdfhttp://www.ietf.org/rfc/rfc2519.txthttp://www.ietf.org/rfc/rfc2519.txthttp://tools.ietf.org/html/draft-meyer-lisp-cons-04http://tools.ietf.org/html/draft-meyer-lisp-cons-04http://www.usenix.org/event/sysml08/tech/full_papers/beverly/beverly.pdfhttp://www.usenix.org/event/sysml08/tech/full_papers/beverly/beverly.pdf
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    112/137

    http://pf.itd.nrl.navy.mil/ospf-manet/quagga.pdfhttp://pf.itd.nrl.navy.mil/ospf-manet/quagga.pdfhttp://tools.ietf.org/html/draft-iannone-openlisp-implementation-01http://tools.ietf.org/html/draft-iannone-openlisp-implementation-01http://bgp.potaroo.net/as6447/http://dept-info.labri.fr/~gavoille/article/iGav06a.pdfhttp://dept-info.labri.fr/~gavoille/article/iGav06a.pdfhttp://tools.ietf.org/pdf/draft-ietf-lisp-15.pdf
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    113/137

    http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_11-1/111_lisp.htmlhttp://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_11-1/111_lisp.htmlhttp://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_11-1/111_lisp.htmlhttp://www.ietf.org/rfc/rfc4984.txthttp://www.cs.ucla.edu/~lixia/papers/07SIG_IP6WS.pdfhttp://www.cs.ucla.edu/~lixia/papers/07SIG_IP6WS.pdfhttp://tools.ietf.org/html/draft-irtf-rrg-recommendation-16http://tools.ietf.org/html/draft-irtf-rrg-recommendation-16
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    114/137

    http://tools.ietf.org/html/rfc5320http://tools.ietf.org/html/rfc5320http://www.quagga.net/docs/BGP_OSPF_Interaction_Report.pdf
  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    115/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    116/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    117/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    118/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    119/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    120/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    121/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    122/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    123/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    124/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    125/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    126/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    127/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    128/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    129/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    130/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    131/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    132/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    133/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    134/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    135/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    136/137

  • 8/12/2019 Experimental implementation of a compact routing based mapping system for the locator/ID separation protocol (

    137/137