Open Source Routing:
 The Next Frontier
         OSCON
      Emerging Topics
               Atanu Ghosh
              atan...
Overview
Why Open Source Routing?




                           XORP - eXtensible Open Router Platform – p.2/30
Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history




                            ...
Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy




           ...
Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosop...
Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosop...
Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosop...
Overview
Why Open Source Routing?
eXtensible Open Routing Platform (XORP) project
history
Licensing policy
Design philosop...
Why Open Source Routing?
Many open source alternatives to proprietary solutions
exist
   OSes in the form of UNIX . . .
  ...
Why Open Source Routing?
Routing dominated by proprietary solutions
Stifling both innovation and research
Locking customers...
Why Open Source Routing?
Open source routing enables:
  Innovation
  Research
  Reduces cost
  Router applications




   ...
XORP Project History
Project started 2001 at ICSI
Initially funded by INTEL
Followed by NSF, DARPA, Microsoft, Vyatta and ...
Licensing policy
BSD style license not GNU license
BSD style license less restrictive
Main difference no requirement to re...
Design philosophy
Designed for extensibility
  At process level and within processes
Object oriented design
Code should be...
Testing
Testing taken very seriously
Test code exists for all components
   Regression tests run every night on different
...
IPv6 and Multicast
IPv6 and Multicast taken as seriously as IPv4 and
Unicast
IPv6 and IPv4 versions of a protocol are deve...
Design philosophy - BGP4
              BGP Plumbing

               RibIn     Filter   Cache
 Peer                        ...
Design philosophy - OSPF

            External Routes




     Peer      Area Router      Peer
    Peer     Area Router   ...
Architecture
                                       Management Processes

    IPC              router               CLI   ...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1




            ...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
IPC mechanism: fi...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
        Module/p...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
            Inte...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
                ...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
                ...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1
                ...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1

Library marshal...
XORP IPC mechanism
XRLs modelled on URLs
finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1

Library marshal...
Router applications
Routing process special case of router application
Routing applications added with no code changes
  T...
Adding a router application
Step 1 Create template
...
protocols {
  ospf4 {
  ...
    router-id {
      ...
%set: xrl quo...
Router manager
Parses template files
Parses config file
...
protocols {
    ospf4 {
        router-id: 10.10.10.10
...

Start...
Template files
Describes router application to system
Command line tool (xorpsh) also reads template files
  No code changes...
Architecture

                                                                   Management Processes



Separate processe...
Architecture

                                                                     Management Processes



Only FEA intera...
Development Status
XORP runs on a number of platforms:
  DragonFlyBSD,FreeBSD,NetBSD,OpenBSD
  Linux
  Mac OS X
  Microsof...
Development Status - RIP and RIPng
  RFC 2453 (RIP version 2)
  RFC 2082 (RIP-2 MD5 Authentication)
  RFC 2080 (RIPng for ...
Development Status - BGP4
RFC 4271 (A Border Gateway Protocol 4 (BGP-4))
draft-ietf-idr-rfc2858bis-03.txt (Multiprotocol E...
Development Status - BGP4
RFC 2796 (BGP Route Reflection - An Alternative to
Full Mesh IBGP)
RFC 3065 (Autonomous System Co...
Development Status - OSPF
OSPFv2:
  RFC 2328 (OSPF Version 2)
  RFC 3101 (The OSPF Not-So-Stubby Area (NSSA)
  Option)
OSP...
Development Status - PIM-SM
draft-ietf-pim-sm-v2-new-11.ps,txt
draft-ietf-pim-sm-bsr-03.ps,txt




                       ...
Development Status - IGMP and MLD
   IGMP v1, v2, and v3:
     RFC 2236 (Internet Group Management Protocol,
     Version ...
Development Status - Summary
Most core protocols exist
Many of the protocols have been tested by UNH IOL
and with commerci...
Future directions
Hardware forwarding
Virtual routers
Distributed routers
Router applications
  Monitoring
  Security
  Bi...
www.xorp.org




               XORP - eXtensible Open Router Platform – p.30/30
Upcoming SlideShare
Loading in …5
×

Os Ghoshatanu

680 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
680
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Os Ghoshatanu

  1. 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
  2. 2. Overview Why Open Source Routing? XORP - eXtensible Open Router Platform – p.2/30
  3. 3. Overview Why Open Source Routing? eXtensible Open Routing Platform (XORP) project history XORP - eXtensible Open Router Platform – p.2/30
  4. 4. Overview Why Open Source Routing? eXtensible Open Routing Platform (XORP) project history Licensing policy XORP - eXtensible Open Router Platform – p.2/30
  5. 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. 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. 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. 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. 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. 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. 11. Why Open Source Routing? Open source routing enables: Innovation Research Reduces cost Router applications XORP - eXtensible Open Router Platform – p.5/30
  12. 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. 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. 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. 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. 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
  17. 17. Design philosophy - BGP4 BGP Plumbing RibIn Filter Cache Peer NhLookup Filter Cache RibOut Peer Table Table Table Handler Table Table Table Table Handler RibIn Filter Cache Peer NhLookup Decision Fanout Filter Cache RibOut Peer Table Table Table Handler Table Table Table Table Table Table Handler RibIn Filter Cache IpcRib NhLookup Filter Cache RibOut IpcRib Table Table Table Handler Table Table Table Table Handler XRLs to NextHop XRLs to RIB process Resolver RIB process XRLs to RIB process XORP - eXtensible Open Router Platform – p.11/30
  18. 18. Design philosophy - OSPF External Routes Peer Area Router Peer Peer Area Router Peer Peer Area Router Peer Routing Table XRLs to RIB process XORP - eXtensible Open Router Platform – p.12/30
  19. 19. Architecture Management Processes IPC router CLI SNMP finder manager BGP4+ PIM−SM OSPF RIB RIP IGMP/MLD Multicast Routing IS−IS FEA Unicast Routing Forwarding Engine Click Elements RIB = routing information base FEA = forwarding engine abstraction XORP - eXtensible Open Router Platform – p.13/30
  20. 20. XORP IPC mechanism XRLs modelled on URLs finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1 XORP - eXtensible Open Router Platform – p.14/30
  21. 21. XORP IPC mechanism XRLs modelled on URLs finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1 IPC mechanism: finder, xudp, snmp, ... XORP - eXtensible Open Router Platform – p.14/30
  22. 22. XORP IPC mechanism XRLs modelled on URLs finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1 Module/procss name: fea, rib, bgp XORP - eXtensible Open Router Platform – p.14/30
  23. 23. XORP IPC mechanism XRLs modelled on URLs finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1 Interface name: fea, routing-process, ... XORP - eXtensible Open Router Platform – p.14/30
  24. 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
  25. 25. XORP IPC mechanism XRLs modelled on URLs finder://fea/fea/1.0/add_address4?vif:txt=fxp0&addr:ipv4=10.0.0.1 Method name: delete_address4, get_mtu, ... XORP - eXtensible Open Router Platform – p.14/30
  26. 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. 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. 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. 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
  30. 30. Adding a router application Step 1 Create template ... protocols { ospf4 { ... router-id { ... %set: xrl quot;$(ospf4.tname)/ospfv2/0.1/set_router_id?id:ipv4=$(@)quot;; } ... Step 2 Provide executable XORP - eXtensible Open Router Platform – p.16/30
  31. 31. Router manager Parses template files Parses config file ... protocols { ospf4 { router-id: 10.10.10.10 ... Starts configured processes Send configuration XRLs finder://ospfv2/ospfv2/0.1/set_router_id?id:ipv4=10.10.10.10 XORP - eXtensible Open Router Platform – p.17/30
  32. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  43. 43. Future directions Hardware forwarding Virtual routers Distributed routers Router applications Monitoring Security Billing ... XORP - eXtensible Open Router Platform – p.29/30
  44. 44. www.xorp.org XORP - eXtensible Open Router Platform – p.30/30

×