SlideShare a Scribd company logo
1 of 24
MOVING AWAY FROM OPENBGPD TO BIRD?


          Apricot 2013, Singapore


                Jimmy Halim
            jhalim@ap.equinix.com
OPENBGPD IN A FLASH

• 3 processes
     Session Engine (SE): manages BGP sessions
     Route Decision Engine (RDE): holds the BGP tables, takes routing decisions
     Parent: enters routes into the kernel, starts SE and RDE

• IPv4 and IPv6 in a single configuration
• BGP commands
     Using ‘bgpctl’ command for both IPv4 and IPv6
WORKING WITH OPENBGPD
The positive notes…

• Stable with no related bug since upgrade to 4.8
     4.3 has been bugged with bugs like BGP malformed attributes and IPv6 MD5
      password errors

• Provide the needed BGP functionality
     Transparent AS support
     BGP community support for route manipulation
     Support prefix filtering

• Flexible BGP commands execution and configuration change
     Allow short form and help function from UNIX prompt
WORKING WITH OPENBGPD
The negative one…

• No good in handling prefix filter
     Especially if we implement prefix filter per neighbor
          Means more prefix filters to be created and checked
          Example if we have 100 peers in IX, then there are at least 100 prefix filters need to be
           created and checked considering if each peer only have 1 prefix
     Resulting in a very long routing convergence
          More peers in IX
          More routes

• Problem with long routing convergence
     The routing convergence can take 2 hours, 6 hours, 12 hours, and even 1 day
     The best route selection will not be optimal
     Resulting in route blackhole!!
WORKING WITH OPENBGPD
Routing blackhole!!
WORKING WITH OPENBGPD
Long routing convergence…
WORKING WITH OPENBGPD
High CPU…
WORKING WITH OPENBGPD
The workaround…

                  • Putting the peers into group’s filter
                       IPv4 peers
                       IPv6 peers

                  • IPv4 prefix aggregation
                       Huge number of prefix filter reduction
WORKING WITH OPENBGPD
Reduced routing convergence time…
BIRD FOR NEWBIE

• One process handles all BGP functions
     Separate instances for IPv4 and IPv6 though

• Separate config files for IPv4 and IPv6
• BIRD BGP commands
     ‘birdc’ for IPv4 and ‘birdc6’ for IPv6
     2 ways to execute
          Inside the ‘birdc’ mode
          Outside the ‘birdc’ mode – more flexible
PLAYING WITH BIRD
• Good in handling prefix filter
     Very fast routing convergence

• Strict configuration change
     Change in some related neighbor parameters will flap the BGP session
          Neighbor name – ‘protocol name’
          Prepend flag

• Strict execution of BGP commands
     Unable to do short form on the commands while executing outside ‘birdc’ mode
PLAYING WITH BIRD
Very short routing convergence time…
PLAYING WITH BIRD
Very low CPU usage…
PLAYING WITH BIRD
The bad features…

• No BGP uptime timer
    The uptime timer displayed is the uptime timer of the related protocol name
    Soft BGP reload out will reset the protocol name’s uptime timer!!
    Requested BIRD developers to include BGP uptime timer

• No equivalent BGP “received-routes” command
    From my understanding, no way to get the routes that neighbor advertising before
     the filter
    Still can see the routes that are advertised by neighbor and permitted by the filter
PLAYING WITH BIRD
Single RIB Problem Revisit…
PLAYING WITH BIRD
Per-Client Loc-RIBs Revisit – Solution to Single RIB Problem
PLAYING WITH BIRD…
Testing Per-Client Loc-RIBs – 210K routes with 20 Loc-RIBs…
PLAYING WITH BIRD…
Testing Per-Client Loc-RIBs – 210K routes with 20 Loc-RIBs…
PLAYING WITH BIRD
Testing Per-Client Loc-RIBs – CPU looks ok..
PLAYING WITH BIRD
Testing Per-Client Loc-RIBs – Memory is depleting!!
PLAYING WITH BIRD
Testing Per-Client Loc-RIBs Summary...

• Addresses the problem of Single RIB
     Single RIB’s filter match best route only
     Alternative routes will still be advertised in Per-Client Loc-RIBs scenario if the best
      route is filtered out

• Increase in memory and CPU consumption
     The calculation changed from number of prefixes to number of clients and prefixes

• Testing is still on going!!
     Need to ensure the performance of the route server will not be impacted with the
      implementation of Per-Client Loc-RIBs
OPENBGPD VS BIRD

             OPENBGPD                                           BIRD
•   Three separate processes: parent,        •   One process but separate instances
    session engine, route decision engine        for IPv4 and IPv6
•   Same config file for IPv4 and IPv6       •   Separate config files for IPv4 and IPv6
•   More flexible in executing BGP           •   More rigid in executing BGP
    commands                                     commands
•   Flexible in doing configuration change   •   Strict configuration change
•   No good in handling prefix filter        •   Good in handling prefix filter resulting
    resulting in long route convergence          in very short route convergence
WHAT IS THE CHOICE?

                 • BIRD to go for?
                 • Software bugs
                       Get the stable version
                       Dual routing daemon’s approach?

                 • Keep on testing!!
Moving Away From OpenBGPd to BIRD?

More Related Content

Viewers also liked

Unknown Unicast Storm Control in Internet Exchange
Unknown Unicast Storm Control in Internet ExchangeUnknown Unicast Storm Control in Internet Exchange
Unknown Unicast Storm Control in Internet ExchangeJimmy Lim
 
Agile Tour Toulouse 2015 - Ekito
Agile Tour Toulouse 2015 - EkitoAgile Tour Toulouse 2015 - Ekito
Agile Tour Toulouse 2015 - EkitoAgile Toulouse
 
Mekanisme Evolusi 1 A ( Ch 22)
Mekanisme  Evolusi 1 A ( Ch 22)Mekanisme  Evolusi 1 A ( Ch 22)
Mekanisme Evolusi 1 A ( Ch 22)Biodas Unsoed
 
Дума и администрация о дорогах
Дума и администрация о дорогахДума и администрация о дорогах
Дума и администрация о дорогахОльга Бердецкая
 
La perdurabilidad en las empresas familiares maria perez
La perdurabilidad en las empresas familiares maria perezLa perdurabilidad en las empresas familiares maria perez
La perdurabilidad en las empresas familiares maria perezmariaperezgamboa
 
From GNETS to Home School
From GNETS to Home SchoolFrom GNETS to Home School
From GNETS to Home Schooleeniarrol
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontoRalph Whitbeck
 
JSConf.it 2011: A Wondrous Experience of Sound, Light, and Code
JSConf.it 2011: A Wondrous Experience of Sound, Light, and CodeJSConf.it 2011: A Wondrous Experience of Sound, Light, and Code
JSConf.it 2011: A Wondrous Experience of Sound, Light, and CodeJohannes Fahrenkrug
 
Ambient project in eksis komunika
Ambient project in eksis komunikaAmbient project in eksis komunika
Ambient project in eksis komunikaMuhammad Hibatullah
 
Presentation biologi
Presentation biologiPresentation biologi
Presentation biologiZinat Tamami
 

Viewers also liked (20)

Unknown Unicast Storm Control in Internet Exchange
Unknown Unicast Storm Control in Internet ExchangeUnknown Unicast Storm Control in Internet Exchange
Unknown Unicast Storm Control in Internet Exchange
 
Agile Tour Toulouse 2015 - Ekito
Agile Tour Toulouse 2015 - EkitoAgile Tour Toulouse 2015 - Ekito
Agile Tour Toulouse 2015 - Ekito
 
Dba i 9i
Dba i 9iDba i 9i
Dba i 9i
 
Presentation kaka
Presentation kakaPresentation kaka
Presentation kaka
 
Mekanisme Evolusi 1 A ( Ch 22)
Mekanisme  Evolusi 1 A ( Ch 22)Mekanisme  Evolusi 1 A ( Ch 22)
Mekanisme Evolusi 1 A ( Ch 22)
 
Дума и администрация о дорогах
Дума и администрация о дорогахДума и администрация о дорогах
Дума и администрация о дорогах
 
Tugas 1
Tugas 1Tugas 1
Tugas 1
 
La perdurabilidad en las empresas familiares maria perez
La perdurabilidad en las empresas familiares maria perezLa perdurabilidad en las empresas familiares maria perez
La perdurabilidad en las empresas familiares maria perez
 
Wc no
Wc noWc no
Wc no
 
From GNETS to Home School
From GNETS to Home SchoolFrom GNETS to Home School
From GNETS to Home School
 
Social networks
Social networksSocial networks
Social networks
 
Tec16grupo9 ide9610177 anexos1
Tec16grupo9 ide9610177 anexos1Tec16grupo9 ide9610177 anexos1
Tec16grupo9 ide9610177 anexos1
 
Platyhelmithes
PlatyhelmithesPlatyhelmithes
Platyhelmithes
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days Toronto
 
презентация5
презентация5презентация5
презентация5
 
JSConf.it 2011: A Wondrous Experience of Sound, Light, and Code
JSConf.it 2011: A Wondrous Experience of Sound, Light, and CodeJSConf.it 2011: A Wondrous Experience of Sound, Light, and Code
JSConf.it 2011: A Wondrous Experience of Sound, Light, and Code
 
Kt thn 4
Kt thn 4Kt thn 4
Kt thn 4
 
Ambient project in eksis komunika
Ambient project in eksis komunikaAmbient project in eksis komunika
Ambient project in eksis komunika
 
PKL_Report body
PKL_Report bodyPKL_Report body
PKL_Report body
 
Presentation biologi
Presentation biologiPresentation biologi
Presentation biologi
 

Similar to Moving Away From OpenBGPd to BIRD?

bgp features presentation routing protocle
bgp features presentation routing protoclebgp features presentation routing protocle
bgp features presentation routing protocleBadr Belhajja
 
NP - Unit 5 - Bootstrap, Autoconfigurion and BGP
NP - Unit 5 - Bootstrap, Autoconfigurion and BGPNP - Unit 5 - Bootstrap, Autoconfigurion and BGP
NP - Unit 5 - Bootstrap, Autoconfigurion and BGPhamsa nandhini
 
DEVNET-1191 BGP Enabled Application Development
DEVNET-1191	BGP Enabled Application DevelopmentDEVNET-1191	BGP Enabled Application Development
DEVNET-1191 BGP Enabled Application DevelopmentCisco DevNet
 
Best Current Operational Practice for Operators IPv6 prefix Assignment for en...
Best Current Operational Practice for Operators IPv6 prefix Assignment for en...Best Current Operational Practice for Operators IPv6 prefix Assignment for en...
Best Current Operational Practice for Operators IPv6 prefix Assignment for en...APNIC
 
Configuration & Routing of Clos Networks
Configuration & Routing of Clos NetworksConfiguration & Routing of Clos Networks
Configuration & Routing of Clos NetworksCumulus Networks
 
IETF 113: IPv6 fragmentation and EH behaviours
IETF 113: IPv6 fragmentation and EH behavioursIETF 113: IPv6 fragmentation and EH behaviours
IETF 113: IPv6 fragmentation and EH behavioursAPNIC
 
PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...
PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...
PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...PROIDEA
 
Operationalizing BGP in the SDDC
Operationalizing BGP in the SDDCOperationalizing BGP in the SDDC
Operationalizing BGP in the SDDCCumulus Networks
 
OpenThink Labs Workshop : CCNA BootCamp
OpenThink Labs Workshop : CCNA BootCampOpenThink Labs Workshop : CCNA BootCamp
OpenThink Labs Workshop : CCNA BootCampWildan Maulana
 
Indonesia IPv6 Update - APAN Hanoi 2010
Indonesia IPv6 Update - APAN Hanoi 2010Indonesia IPv6 Update - APAN Hanoi 2010
Indonesia IPv6 Update - APAN Hanoi 2010Affan Basalamah
 
Bgp 6 advanced transit as issues
Bgp 6   advanced transit as issuesBgp 6   advanced transit as issues
Bgp 6 advanced transit as issuesAuguste Behe
 

Similar to Moving Away From OpenBGPd to BIRD? (20)

Part8-ibgp.pptx
Part8-ibgp.pptxPart8-ibgp.pptx
Part8-ibgp.pptx
 
bgp features presentation routing protocle
bgp features presentation routing protoclebgp features presentation routing protocle
bgp features presentation routing protocle
 
Cumulus Linux 2.5.3
Cumulus Linux 2.5.3Cumulus Linux 2.5.3
Cumulus Linux 2.5.3
 
NP - Unit 5 - Bootstrap, Autoconfigurion and BGP
NP - Unit 5 - Bootstrap, Autoconfigurion and BGPNP - Unit 5 - Bootstrap, Autoconfigurion and BGP
NP - Unit 5 - Bootstrap, Autoconfigurion and BGP
 
Bgp protocol
Bgp protocolBgp protocol
Bgp protocol
 
DEVNET-1191 BGP Enabled Application Development
DEVNET-1191	BGP Enabled Application DevelopmentDEVNET-1191	BGP Enabled Application Development
DEVNET-1191 BGP Enabled Application Development
 
Computer networks protocols
Computer networks protocolsComputer networks protocols
Computer networks protocols
 
Best Current Operational Practice for Operators IPv6 prefix Assignment for en...
Best Current Operational Practice for Operators IPv6 prefix Assignment for en...Best Current Operational Practice for Operators IPv6 prefix Assignment for en...
Best Current Operational Practice for Operators IPv6 prefix Assignment for en...
 
Configuration & Routing of Clos Networks
Configuration & Routing of Clos NetworksConfiguration & Routing of Clos Networks
Configuration & Routing of Clos Networks
 
IETF 113: IPv6 fragmentation and EH behaviours
IETF 113: IPv6 fragmentation and EH behavioursIETF 113: IPv6 fragmentation and EH behaviours
IETF 113: IPv6 fragmentation and EH behaviours
 
Bgp Toc
Bgp TocBgp Toc
Bgp Toc
 
Bgp
BgpBgp
Bgp
 
PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...
PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...
PLNOG 6: Rafał Szarecki - Routing w Sieci - Praktyczne aspekty implementacji ...
 
Operationalizing BGP in the SDDC
Operationalizing BGP in the SDDCOperationalizing BGP in the SDDC
Operationalizing BGP in the SDDC
 
07.bgp
07.bgp07.bgp
07.bgp
 
OpenThink Labs Workshop : CCNA BootCamp
OpenThink Labs Workshop : CCNA BootCampOpenThink Labs Workshop : CCNA BootCamp
OpenThink Labs Workshop : CCNA BootCamp
 
Indonesia IPv6 Update - APAN Hanoi 2010
Indonesia IPv6 Update - APAN Hanoi 2010Indonesia IPv6 Update - APAN Hanoi 2010
Indonesia IPv6 Update - APAN Hanoi 2010
 
Bgp 6 advanced transit as issues
Bgp 6   advanced transit as issuesBgp 6   advanced transit as issues
Bgp 6 advanced transit as issues
 
IPv6 on the Interop Network
IPv6 on the Interop NetworkIPv6 on the Interop Network
IPv6 on the Interop Network
 
pps Matters
pps Matterspps Matters
pps Matters
 

Moving Away From OpenBGPd to BIRD?

  • 1. MOVING AWAY FROM OPENBGPD TO BIRD? Apricot 2013, Singapore Jimmy Halim jhalim@ap.equinix.com
  • 2. OPENBGPD IN A FLASH • 3 processes  Session Engine (SE): manages BGP sessions  Route Decision Engine (RDE): holds the BGP tables, takes routing decisions  Parent: enters routes into the kernel, starts SE and RDE • IPv4 and IPv6 in a single configuration • BGP commands  Using ‘bgpctl’ command for both IPv4 and IPv6
  • 3. WORKING WITH OPENBGPD The positive notes… • Stable with no related bug since upgrade to 4.8  4.3 has been bugged with bugs like BGP malformed attributes and IPv6 MD5 password errors • Provide the needed BGP functionality  Transparent AS support  BGP community support for route manipulation  Support prefix filtering • Flexible BGP commands execution and configuration change  Allow short form and help function from UNIX prompt
  • 4. WORKING WITH OPENBGPD The negative one… • No good in handling prefix filter  Especially if we implement prefix filter per neighbor  Means more prefix filters to be created and checked  Example if we have 100 peers in IX, then there are at least 100 prefix filters need to be created and checked considering if each peer only have 1 prefix  Resulting in a very long routing convergence  More peers in IX  More routes • Problem with long routing convergence  The routing convergence can take 2 hours, 6 hours, 12 hours, and even 1 day  The best route selection will not be optimal  Resulting in route blackhole!!
  • 6. WORKING WITH OPENBGPD Long routing convergence…
  • 8. WORKING WITH OPENBGPD The workaround… • Putting the peers into group’s filter  IPv4 peers  IPv6 peers • IPv4 prefix aggregation  Huge number of prefix filter reduction
  • 9. WORKING WITH OPENBGPD Reduced routing convergence time…
  • 10. BIRD FOR NEWBIE • One process handles all BGP functions  Separate instances for IPv4 and IPv6 though • Separate config files for IPv4 and IPv6 • BIRD BGP commands  ‘birdc’ for IPv4 and ‘birdc6’ for IPv6  2 ways to execute  Inside the ‘birdc’ mode  Outside the ‘birdc’ mode – more flexible
  • 11. PLAYING WITH BIRD • Good in handling prefix filter  Very fast routing convergence • Strict configuration change  Change in some related neighbor parameters will flap the BGP session  Neighbor name – ‘protocol name’  Prepend flag • Strict execution of BGP commands  Unable to do short form on the commands while executing outside ‘birdc’ mode
  • 12. PLAYING WITH BIRD Very short routing convergence time…
  • 13. PLAYING WITH BIRD Very low CPU usage…
  • 14. PLAYING WITH BIRD The bad features… • No BGP uptime timer  The uptime timer displayed is the uptime timer of the related protocol name  Soft BGP reload out will reset the protocol name’s uptime timer!!  Requested BIRD developers to include BGP uptime timer • No equivalent BGP “received-routes” command  From my understanding, no way to get the routes that neighbor advertising before the filter  Still can see the routes that are advertised by neighbor and permitted by the filter
  • 15. PLAYING WITH BIRD Single RIB Problem Revisit…
  • 16. PLAYING WITH BIRD Per-Client Loc-RIBs Revisit – Solution to Single RIB Problem
  • 17. PLAYING WITH BIRD… Testing Per-Client Loc-RIBs – 210K routes with 20 Loc-RIBs…
  • 18. PLAYING WITH BIRD… Testing Per-Client Loc-RIBs – 210K routes with 20 Loc-RIBs…
  • 19. PLAYING WITH BIRD Testing Per-Client Loc-RIBs – CPU looks ok..
  • 20. PLAYING WITH BIRD Testing Per-Client Loc-RIBs – Memory is depleting!!
  • 21. PLAYING WITH BIRD Testing Per-Client Loc-RIBs Summary... • Addresses the problem of Single RIB  Single RIB’s filter match best route only  Alternative routes will still be advertised in Per-Client Loc-RIBs scenario if the best route is filtered out • Increase in memory and CPU consumption  The calculation changed from number of prefixes to number of clients and prefixes • Testing is still on going!!  Need to ensure the performance of the route server will not be impacted with the implementation of Per-Client Loc-RIBs
  • 22. OPENBGPD VS BIRD OPENBGPD BIRD • Three separate processes: parent, • One process but separate instances session engine, route decision engine for IPv4 and IPv6 • Same config file for IPv4 and IPv6 • Separate config files for IPv4 and IPv6 • More flexible in executing BGP • More rigid in executing BGP commands commands • Flexible in doing configuration change • Strict configuration change • No good in handling prefix filter • Good in handling prefix filter resulting resulting in long route convergence in very short route convergence
  • 23. WHAT IS THE CHOICE? • BIRD to go for? • Software bugs  Get the stable version  Dual routing daemon’s approach? • Keep on testing!!

Editor's Notes

  1. ----- Meeting Notes (22/2/13 14:56) -----quick scenario introduction
  2. Automated IRR AS-SET filter is no good since
  3. ----- Meeting Notes (22/2/13 14:56) -----prepend self
  4. Automated IRR AS-SET filter is no good since
  5. Automated IRR AS-SET filter is no good since
  6. ----- Meeting Notes (22/2/13 14:56) -----toggle between 2 set of commandssupport 2 different routing daemon
  7. ----- Meeting Notes (22/2/13 14:56) -----toggle between 2 set of commandssupport 2 different routing daemon