Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Os Ghoshatanu
1. Open Source Routing:
The Next Frontier
OSCON
Emerging Topics
Atanu Ghosh
atanu@xorp.org
International Computer Science Institute
XORP - eXtensible Open Router Platform – p.1/30
3. Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
XORP - eXtensible Open Router Platform – p.2/30
4. Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
XORP - eXtensible Open Router Platform – p.2/30
5. Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosophy
XORP - eXtensible Open Router Platform – p.2/30
6. Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosophy
Architecture
XORP - eXtensible Open Router Platform – p.2/30
7. Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosophy
Architecture
Development Status
XORP - eXtensible Open Router Platform – p.2/30
8. Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosophy
Architecture
Development Status
Future directions
XORP - eXtensible Open Router Platform – p.2/30
9. Why Open Source Routing?
Many open source alternatives to proprietary solutions
exist
OSes in the form of UNIX . . .
Databases MySQL . . .
Web servers Apache . . .
Browsers Mozilla . . .
IP PBXes Asterisk . . .
...
XORP - eXtensible Open Router Platform – p.3/30
10. Why Open Source Routing?
Routing dominated by proprietary solutions
Stifling both innovation and research
Locking customers into high cost single vendor
solutions
Compare to proprietary operating systems of the past
Hardware and software no longer tied together
XORP - eXtensible Open Router Platform – p.4/30
11. Why Open Source Routing?
Open source routing enables:
Innovation
Research
Reduces cost
Router applications
XORP - eXtensible Open Router Platform – p.5/30
12. XORP Project History
Project started 2001 at ICSI
Initially funded by INTEL
Followed by NSF, DARPA, Microsoft, Vyatta and Google
Goal: robust platform for production and research
Both goals have been met
Commercially supported version of XORP available
Many research projects using XORP
XORP - eXtensible Open Router Platform – p.6/30
13. Licensing policy
BSD style license not GNU license
BSD style license less restrictive
Main difference no requirement to return code
Upside XORP can be used without revealing
proprietary interfaces
Downside no requirement to return bug fixes or
enhancements
No restrictions on commercial adoption
XORP - eXtensible Open Router Platform – p.7/30
14. Design philosophy
Designed for extensibility
At process level and within processes
Object oriented design
Code should be easy to understand and extend
Programmed in C++ to enforce interfaces
Extensive use of kdoc
XORP - eXtensible Open Router Platform – p.8/30
15. Testing
Testing taken very seriously
Test code exists for all components
Regression tests run every night on different
platforms
Tests range from simple unit tests to full BGP feeds
XORP - eXtensible Open Router Platform – p.9/30
16. IPv6 and Multicast
IPv6 and Multicast taken as seriously as IPv4 and
Unicast
IPv6 and IPv4 versions of a protocol are developed
together
XORP - eXtensible Open Router Platform – p.10/30
24. XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
Version number
XORP - eXtensible Open Router Platform – p.14/30
26. XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
Arguments
XORP - eXtensible Open Router Platform – p.14/30
27. XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
Library marshals arguments, implements transport handles responses
XORP - eXtensible Open Router Platform – p.14/30
28. XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
Library marshals arguments, implements transport handles responses
XRLs are represented in text form
Processes described by XRLs in template files
XRLs callable from scripts
XORP - eXtensible Open Router Platform – p.14/30
29. Router applications
Routing process special case of router application
Routing applications added with no code changes
Third parties can provide routing protocols
Identical to XORP provided protocols
XORP - eXtensible Open Router Platform – p.15/30
32. Template files
Describes router application to system
Command line tool (xorpsh) also reads template files
No code changes to command line tool
Third party web based command tool exists
XORP - eXtensible Open Router Platform – p.18/30
33. Architecture
Management Processes
Separate processes
IPC router CLI SNMP
finder manager
Not single monolithic BGP4+
PIM−SM
process OSPF RIB
Processes can be run on
RIP IGMP/MLD
Multicast Routing
distributed hosts
IS−IS FEA
Unicast Routing
Forwarding Engine
Click Elements
RIB = routing information base
FEA = forwarding engine abstraction
XORP - eXtensible Open Router Platform – p.19/30
34. Architecture
Management Processes
Only FEA interacts with OS
IPC router CLI SNMP
finder manager
No OS dependencies in BGP4+
PIM−SM
routing processes OSPF RIB
Simplifies porting
RIP IGMP/MLD
Multicast Routing
IS−IS FEA
FEA can run on forwarding Unicast Routing
hardware
Forwarding Engine
Click Elements
RIB = routing information base
FEA = forwarding engine abstraction
XORP - eXtensible Open Router Platform – p.20/30
35. Development Status
XORP runs on a number of platforms:
DragonFlyBSD,FreeBSD,NetBSD,OpenBSD
Linux
Mac OS X
Microsoft Windows
Cross compiles on:
IA-64, MIPS, PowerPC-603, Sparc64 and XScale
XORP - eXtensible Open Router Platform – p.21/30
36. Development Status - RIP and RIPng
RFC 2453 (RIP version 2)
RFC 2082 (RIP-2 MD5 Authentication)
RFC 2080 (RIPng for IPv6)
XORP - eXtensible Open Router Platform – p.22/30
37. Development Status - BGP4
RFC 4271 (A Border Gateway Protocol 4 (BGP-4))
draft-ietf-idr-rfc2858bis-03.txt (Multiprotocol Extensions
for BGP-4)
RFC 2545 (Use of Multiprotocol Extensions for IPv6
Inter-Domain Routing)
RFC 3392 (Capabilities Advertisement with BGP-4)
RFC 1997 (BGP Communities Attribute)
XORP - eXtensible Open Router Platform – p.23/30
38. Development Status - BGP4
RFC 2796 (BGP Route Reflection - An Alternative to
Full Mesh IBGP)
RFC 3065 (Autonomous System Confederations for
BGP)
RFC 2439 (BGP Route Flap Damping)
RFC 1657 (Definitions of Managed Objects for the
Fourth Version of the Border Gateway Protocol (BGP-4)
using SMIv2)
XORP - eXtensible Open Router Platform – p.24/30
39. Development Status - OSPF
OSPFv2:
RFC 2328 (OSPF Version 2)
RFC 3101 (The OSPF Not-So-Stubby Area (NSSA)
Option)
OSPFv3:
draft-ietf-ospf-ospfv3-update-14.txt (OSPF for IPv6)
XORP - eXtensible Open Router Platform – p.25/30
40. Development Status - PIM-SM
draft-ietf-pim-sm-v2-new-11.ps,txt
draft-ietf-pim-sm-bsr-03.ps,txt
XORP - eXtensible Open Router Platform – p.26/30
41. Development Status - IGMP and MLD
IGMP v1, v2, and v3:
RFC 2236 (Internet Group Management Protocol,
Version 2)
RFC 3376 (Internet Group Management Protocol,
Version 3)
MLD v1 and v2:
RFC 2710 (Multicast Listener Discovery (MLD) for
IPv6)
RFC 3810 (Multicast Listener Discovery Version 2
(MLDv2) for IPv6)
XORP - eXtensible Open Router Platform – p.27/30
42. Development Status - Summary
Most core protocols exist
Many of the protocols have been tested by UNH IOL
and with commercial test tools
XORP - eXtensible Open Router Platform – p.28/30