experimental implementation of a compact routing based mapping system for the locator/id separation...
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