LISP for SDN and NFV
Vina Ermagan, Cisco Systems Sharon Barkai, ConteXtream Feb 4th 2014
LISP for SDN and NFV Vina Ermagan, Cisco Systems Sharon Barkai, - - PowerPoint PPT Presentation
LISP for SDN and NFV Vina Ermagan, Cisco Systems Sharon Barkai, ConteXtream Feb 4 th 2014 Agenda LISP Overview LISP and SDN Availability in open source LISP in OpenDaylight
Vina Ermagan, Cisco Systems Sharon Barkai, ConteXtream Feb 4th 2014
IP ¡address ¡of ¡a ¡host ¡– ¡just ¡as ¡it ¡ is ¡today ¡
IP ¡address ¡of ¡the ¡LISP ¡router ¡for ¡ the ¡host ¡
distributed ¡architecture ¡that ¡ maps ¡EIDs ¡to ¡RLOCs ¡
Lisp ¡Mapping ¡ ¡ Database ¡
VM VM VM
VM VM
App OS
VM
Internet ¡
Site ¡B ¡
Site ¡A ¡
Site ¡C ¡
LISP creates a Level of Indirection with two namespaces: EID ¡and ¡RLOC ¡
EID ¡Space ¡ EID ¡Space ¡ RLOC ¡Space ¡
Any ¡Physical ¡Network: ¡ LAN,WAN,Hybrid ¡ Data ¡Plane: ¡ EncapsulaMon ¡protocol ¡to ¡build ¡ a ¡MulMtenant ¡Overlay ¡ ¡-‑ ¡MAC ¡in ¡IP ¡ ¡-‑ ¡IP ¡in ¡IP ¡ Control ¡Plane: ¡ Mapping ¡of ¡Overlay ¡address ¡ ¡ Space ¡to ¡underlying ¡physical ¡ Network ¡including ¡policy ¡rouMng ¡
Lisp ¡Mapping ¡ ¡ Database ¡
Open ¡Protocol: ¡ RFC ¡published ¡
VM VM VM
VM VM
App OS
VM
Internet ¡
Site ¡B ¡
Site ¡A ¡
Site ¡C ¡
Policy: ¡ ¡-‑ ¡MulMhoming ¡ ¡-‑ ¡Load ¡Balancing ¡ ¡-‑ ¡Disaster ¡Recovery ¡ Data ¡Plane: ¡ MulMtenant ¡Overlay ¡ ¡ ¡ Control ¡Plane: ¡ Mapping ¡(+ ¡policy) ¡of ¡overlay ¡to ¡ underlying ¡network ¡
Lisp ¡Mapping ¡ ¡ Database ¡
Open ¡Protocol: ¡ RFC ¡published ¡
VM VM VM
VM VM
App OS
VM
Internet ¡
Site ¡B ¡
Site ¡A ¡
Site ¡C ¡
App OS
Data ¡Plane: ¡ MulMtenant ¡Overlay ¡ Control ¡Plane: ¡ Mapping ¡( ¡+ ¡policy) ¡of ¡overlay ¡ to ¡underlying ¡network ¡ ¡ Policy: ¡ ¡ ¡ ¡ ¡ ¡-‑ ¡Traffic ¡Engineering ¡ ¡-‑ ¡Service ¡Chaining ¡
VM VM VM
VM VM
App OS
VM
Open ¡Protocol: ¡ RFC ¡published ¡
Database ¡
LISP ¡Enabled ¡ Devices ¡ ¡
LISP ¡Enabled ¡ Devices ¡ ¡
¡ ¡
LISP ¡ ¡Plugin ¡ LISP ¡Service ¡
Load ¡ Balancing ¡ Traffic ¡
Engineering ¡
LISP ¡CP ¡Enabled ¡ ¡Device ¡ LISPmob ¡ OVS ¡
LISP ¡tunnel ¡ Legend: ¡ ¡ ¡LISP ¡ ¡ ¡OpenFlow ¡ ¡ ¡ODL ¡ ¡ ¡OVSDB ¡ OVSDB ¡
Java ¡ API ¡ Southbound ¡ DAO ¡ Map ¡Server ¡ Map ¡Resolver ¡ ImplementaMon ¡
ODL ¡LISP ¡Service ¡
Northbound ¡
¡ ¡
Request ¡URL: ¡h`p://localhost:8080/lispflowmapping/nb/v2/default/key ¡ ¡ Request ¡body ¡in ¡JSON: ¡ ¡ { ¡ ¡ ¡"key" ¡: ¡"asdf", ¡ ¡"maskLength" ¡: ¡24, ¡ ¡"address" ¡: ¡ ¡ ¡{ ¡ ¡ ¡"ipAddress" ¡: ¡"10.0.0.1", ¡ ¡ ¡"afi" ¡: ¡1 ¡ ¡ ¡} ¡ } ¡
Request ¡URL: ¡h`p://localhost:8080/lispflowmapping/nb/v2/default/mapping ¡ Request ¡body ¡in ¡JSON: ¡ ¡ { ¡"key" ¡: ¡"asdf", ¡ ¡ ¡ "mapregister" ¡: ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡"eidToLocatorRecords“ ¡: ¡ ¡ ¡ ¡ ¡ ¡[ ¡{ ¡"prefixGeneric" ¡: ¡ ¡{ ¡"ipAddress" ¡: ¡“10.0.0.1”, ¡ ¡"afi" ¡: ¡1 ¡}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"maskLength" ¡: ¡24, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"locators" ¡: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡[ ¡{ ¡"locatorGeneric" ¡: ¡{ ¡"ipAddress" ¡: ¡”10.154.10.17“, ¡"afi" ¡: ¡1 ¡}, ¡ ¡"priority" ¡: ¡1, ¡"weight” ¡:50} ¡] ¡ ¡ ¡ ¡ ¡ ¡} ¡] ¡ } ¡ ¡} ¡
¡
engineering ¡team! ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡ Net ¡ Admin ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ Define ¡Key, ¡mappings ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ Where ¡is ¡2.2.2.2? ¡ Ping ¡2.2.2.2 ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ Ping ¡2.2.2.2 ¡ Ping ¡2.2.2.2 ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ Ping ¡2.2.2.2 ¡ 2.2.2.2: ¡ Server ¡2 ¡has ¡priority ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡ Ping ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ Ping ¡2.2.2.2 ¡ Ping ¡2.2.2.2 ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ LISPmob ¡ Service-‑Node ¡ 2.2.2.2: ¡ Insert ¡service ¡node ¡ Ping ¡2.2.2.2 ¡ Ping ¡2.2.2.2 ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ LISPmob ¡ Service-‑Node ¡ Ping ¡2.2.2.2 ¡ Ping ¡2.2.2.2 ¡ Ping ¡2.2.2.2 ¡ EID: ¡1.1.1.1 ¡ EID: ¡2.2.2.2 ¡
LISPmob ¡ Client ¡ LISPmob ¡ Server ¡1 ¡ LISPmob ¡ Server ¡2 ¡ API ¡ Northbound ¡ Southbound ¡
DAO ¡
Map ¡Server ¡ Map ¡Resolver ¡
Mapping ¡Service ¡
Net ¡ Admin ¡ LISPmob ¡ Service-‑Node ¡ Policy=drop/forward ¡ Ping ¡2.2.2.2 ¡
OpenDaylight_Lisp_Flow_Mapping:User_Guide_for_Hydrogen #Tutorial ¡
¡
Before ¡NFV ¡ Coupled ¡with ¡rouMng ¡topology, ¡capacity, ¡ availability, ¡and ¡rouMng ¡hardware ¡appliances ¡ AHer ¡NFV ¡ Decoupled ¡from ¡rouMng, ¡cloud ¡capacity, ¡ elasMcity, ¡availability, ¡standard ¡servers ¡ capacity ¡ ¡
Before ¡NFV ¡ Programmable ¡Overlay ¡Coupled ¡with ¡rouMng ¡ interfaces, ¡VLANs, ¡LSPs, ¡VRFs ¡ AHer ¡NFV ¡ Programmable ¡Overlay ¡Decoupled ¡from ¡ Underlay, ¡ ¡map ¡& ¡encap ¡methodology ¡
Map ¡& ¡Encap ¡uses ¡IP ¡for ¡ ¡both ¡transport ¡& ¡database ¡ 5-‑tuple ¡flows: ¡as ¡the ¡basis ¡for ¡mapping ¡lookup-‑cache ¡ Publish-‑Subscribe: ¡for ¡mapped ¡lookups, ¡change-‑SMR ¡ ApplicaMon ¡specific ¡LISP ¡XTRs: ¡Flow ¡handlers ¡and ¡ALGs ¡ Mapping ¡Affinity: ¡of ¡subscriber ¡to ¡funcMon ¡available ¡globally ¡ ¡ ¡ Mapping ¡Balancing: ¡between ¡funcMon ¡VIP ¡EID ¡to ¡instances ¡EID ¡ ¡ ¡ Mapping ¡Chaining: ¡of ¡subscribers ¡EID ¡to ¡service ¡EID ¡to ¡RLOCS ¡ Mapping ¡as ¡the ¡basis ¡for ¡NFV ¡orchestraMon ¡integraMon ¡Neutron+ ¡ ¡ ¡
¡
LISP ¡
SDN ¡ NVO ¡ NFV ¡
LISP ¡ OpenStack Neutron ¡ OpenFlow ¡
ALG Switch ¡ 3rd Party OpenFlow Switch
¡
Controller (Flow Handler) ¡ Mapping System ¡
OpenDaylight ¡
CXTR ¡
Underlay Encapsulation ¡
OpenStack Compute ¡ LISP/VXLAN encap ¡
Subscribers ¡& ¡ Func-ons ¡
Network ¡Virtualiza-on ¡Overlay
¡
Underlay ¡Mapping
¡
ALG Switch
¡
OF Switch ¡
Controller (Flow Handler)
¡
Mapping System ¡
OpenDaylight ¡ CXTR ¡ CXTR ¡
Access
¡
Internet
¡
CXTR
¡
CXTR
¡
Management and Orchestration
¡
Underlay Network
¡
¡vSBC ¡
OF ¡ Switch ¡ Controller ¡ (Flow ¡ Handler) ¡ Mapping ¡ System ¡ OpenDaylight ¡ ContexNet ¡ Node ¡ SIP ¡ Proxy ¡ VNF ¡IMS ¡ Core ¡
OF ¡ Switch ¡ Controller ¡ (Flow ¡ Handler) ¡ Mapping ¡ System ¡ OpenDaylight ¡ ContexNet ¡ Node ¡ SIP ¡ Proxy ¡ VNF ¡POP ¡A ¡ POP ¡C ¡
Underlay ¡ WAN ¡
OF ¡ Switch ¡ Controller ¡ (Flow ¡ Handler) ¡ Mapping ¡ System ¡ OpenDaylight ¡ ContexNet ¡ Node ¡ SIP ¡ Proxy ¡ VNF ¡POP ¡B ¡
WAN ¡
IMS ¡ Core ¡
¡vSBC ¡ ¡vSBC ¡
Encap
¡
Decap
¡
Encap
¡
Decap
¡ IMS ¡ Core ¡
source IMS POP A SBC POP A VIP 1.1.1.1 SIP Proxy A SIP Proxy A VIP 2.1.1.1 SIP Proxy A SIP Proxy A VIP 3.1.1.1 SIP Proxy A SIP Proxy A
VIP 1.1.1.1 ¡ VIP 2.1.1.1 ¡ VIP 3.1.1.1 ¡
source IMS POP C SBC POP C VIP 1.1.1.1 SIP Proxy C
2.1.1.1 SIP Proxy C SIP Proxy B VIP 3.1.1.1 SIP Proxy C
IMS POP B SBC POP B VIP 1.1.1.1 SIP Proxy B SIP Proxy B VIP 2.1.1.1 SIP Proxy B
3.1.1.1 SIP Proxy B SIP Proxy B
OpenFlow ¡Switch ¡
CXTR ¡service ¡selecMon ¡ ¡ ¡ ALG ¡Switch ¡
OpenDaylight ¡SAL ¡ ¡
Global ¡lookup ¡/ ¡Local ¡decision ¡ OpenDaylight ¡Services ¡
SDN ¡Forwarding ¡ ¡ SDN ¡Control ¡ ¡
OpenWrt Linux Android