Implementing OpenLISP with LISP+ALT Attilla de Groot
Problem: BGP routing table • 300.000 entries • Entries used to load balance • Updates used for traffic engineering No. of BGP entries
Solution: Locator ID split • Ip-address used as locator and id • Use separate addressing for location and endpoints • Mapping table for location -- endpoint
Protocol: Locator ID separation protocol • Encapsulation solution • Separate addressing for locators and endpoints • Mapping table request & reply AS100 xTR AS200 xTR 1.1.0.0/16 2.2.0.0/16 Internet Loc ID: Loc ID: 240.0.254.10 240.0.254.20 1.1.1.1 2.2.2.2
LISP + ALT • Overlay network • Based on standard protocols (GRE, BGP) • More aggregation in BGP Internet As100 As200 1.1.0.0/16 2.2.0.0/16 Gre tunnel Gre tunnel Alt network
OpenLISP +-----+ +-------+ | | | | | V V | • FreeBSD implementation | +---------------+ +---------------+ | | | | | | | | | lisp_output() | | lisp6_output()| | | | | | | | • Kernel patch of IP stack | |_______________| |_______________| | | | | | | | | | +--------------------+ | | | | | | | | | | +-------------------+ | | | • Kernel API for mapping | | | | | | | | | | | | | | | | | | | | | (Transport Layer) | | | table management | | | / \ | | | | | | / \ | | | | V V V V V V | | +--------------+ +---------------+ | | | | | | | | | ip_output() | | ip6_output() | | | | | | | | | |______________| |_______________| | | | | | | | +-----+ | | +------+ \ / \ / V V (Data Link Layer)
OpenLISP + ALT • GRE, FreeBSD GRE • BGP, Quagga • Mapping messages to ALT network • LISP4
MapD Mapping UDP 4342 Daemon Map-reply Map-request Map-request Map-reply +-----+ +-------+ | | | | | V V | | +---------------+ +---------------+ | | | | | | | | | lisp_output() | | lisp6_output()| | | | | | | | Listen on Send on | |_______________| |_______________| | | | | | | | mapping socket mapping socket | | +--------------------+ | | | | | | | | | | +-------------------+ | | | | | | | | | | | | | | | | | | | | | | | | (Transport Layer) | | | | | | / \ | | | | | | / \ | | | | V V V V V V | | +--------------+ +---------------+ | | | | | | | BAD | | ip_output() | | ip6_output() | | DELETE ADD MISS REACH GET | | | | | | REACH | |______________| |_______________| | | | | | | | +-----+ | | +------+ \ / OpenLISP API \ / V V (Data Link Layer) Mapping Table FreeBSD Kernel
Conclusion • OpenLISP on with LISP+ALT not yet possible • Separate Daemon needed • Most building blocks available
Questions ?
Recommend
More recommend