| Both sides previous revision Previous revision Next revision | Previous revision |
| projects:birdplan:start [2020-08-20 07:18] – [BirdPlan] nkukard | projects:birdplan:start [2023-12-02 23:45] (current) – [TODO] nkukard |
|---|
| ====== BirdPlan ====== | ====== BirdPlan ====== |
| |
| Project repository: https://oscdev.io/software/birdplan | |
| |
| ^ Components ^^ | ^ Components ^^ |
| | BirdPlan | [[https://oscdev.io/software/birdplan/-/commits/master|{{https://oscdev.io/software/birdplan/badges/master/pipeline.svg?.png?}}]] [[https://oscdev.io/software/birdplan/-/commits/master|{{https://oscdev.io/software/birdplan/badges/master/coverage.svg?.png?}}]] | | | [[https://gitlab.oscdev.io/software/birdplan|BirdPlan]] | [[https://gitlab.oscdev.io/software/birdplan/-/commits/master|{{https://gitlab.oscdev.io/software/birdplan/badges/master/pipeline.svg?.png?}}]] [[https://gitlab.oscdev.io/software/birdplan/-/commits/master|{{https://gitlab.oscdev.io/software/birdplan/badges/master/coverage.svg?.png?}}]] | |
| | python-nsnetsim | [[https://oscdev.io/software/nsnetsim/-/commits/master|{{https://oscdev.io/software/nsnetsim/badges/master/pipeline.svg?.png?}}]] [[https://oscdev.io/software/nsnetsim/-/commits/master|{{https://oscdev.io/software/nsnetsim/badges/master/coverage.svg?.png?}}]] | | | [[https://gitlab.oscdev.io/software/nsnetsim|nsnetsim]] | [[https://gitlab.oscdev.io/software/nsnetsim/-/commits/master|{{https://gitlab.oscdev.io/software/nsnetsim/badges/master/pipeline.svg?.png?}}]] [[https://gitlab.oscdev.io/software/nsnetsim/-/commits/master|{{https://gitlab.oscdev.io/software/nsnetsim/badges/master/coverage.svg?.png?}}]] | |
| | python-birdclient | [[https://oscdev.io/software/birdclient/-/commits/master|{{https://oscdev.io/software/birdclient/badges/master/pipeline.svg?.png?}}]] [[https://oscdev.io/software/birdclient/-/commits/master|{{https://oscdev.io/software/birdclient/badges/master/coverage.svg?.png?}}]] | | | [[https://gitlab.oscdev.io/software/birdclient|birdclient]] | [[https://gitlab.oscdev.io/software/birdclient/-/commits/master|{{https://gitlab.oscdev.io/software/birdclient/badges/master/pipeline.svg?.png?}}]] [[https://gitlab.oscdev.io/software/birdclient/-/commits/master|{{https://gitlab.oscdev.io/software/birdclient/badges/master/coverage.svg?.png?}}]] | |
| |
| <html> | |
| <center> | |
| <script type='text/javascript' src='https://www.openhub.net/p/birdplan/widgets/project_cocomo?format=js'></script> | |
| <script type='text/javascript' src='https://www.openhub.net/p/nsnetsim/widgets/project_cocomo?format=js'></script> | |
| <script type='text/javascript' src='https://www.openhub.net/p/birdclient/widgets/project_cocomo?format=js'></script> | |
| </center> | |
| </html> | |
| ===== Purpose ===== | ===== Purpose ===== |
| |
| Tool to automatically configure [[https://bird.network.cz/|BIRD]] and unit test configurations. | Tool to automatically configure [[https://bird.network.cz/|BIRD]] and unit test configurations, because proper BGP configuration for a carrier/ISP with a somewhat complete featureset is a complex task. |
| |
| We will be using a new advanced network virtualization system that is capable of spinning up hundreds of routers to create something like this... | We will be using a new advanced network virtualization system that is capable of spinning up <del>hundreds</del> thousands of routers to create testing scenarios like this... |
| |
| {{projects:birdplan:diagram.png?direct&400|}} | {{projects:birdplan:diagram.png?direct&400|}} |
| |
| * BGP configuration | * BGP configuration |
| * Peer types: customer, peer, upstream, rrclient, rrserver, rrserver-rrserver, routecollector, routeserver | * Peer types: customer, internal, peer, rrclient, rrserver, rrserver-rrserver, routecollector, routeserver, transit |
| * OSPF configuration | * OSPF configuration |
| * RIPv2 configuration | * RIPv2 configuration |
| * Networking protocols: BGP, RIPv2, OSPF | * Networking protocols: BGP, RIPv2, OSPF |
| * Network simulation using light weight network namespaces | * Network simulation using light weight network namespaces |
| |
| Related software: | |
| * [[https://oscdev.io/software/nsnetsim|nsnetsim]] - Network simulation | * [[https://oscdev.io/software/nsnetsim|nsnetsim]] - Network simulation |
| * [[https://oscdev.io/software/birdclient|birdclient]] - Python library for parsing BIRD output | * [[https://oscdev.io/software/birdclient|birdclient]] - Python library for parsing BIRD output |
| |
| * <del>Pull in static config</del> | * <del>Pull in static config</del> |
| * Unit tests | * <del>Unit tests</del> |
| * Pull in RIP configuration | * <del>Pull in RIP configuration</del> |
| * Pull in OSPF configuration | * <del>Pull in OSPF configuration</del> |
| * Pull in BGP configuration | * <del>Pull in BGP configuration</del> |
| | * Support for RPKI |
| | * Tests tests tests! |
| * Better documentation for nsnetsim code | * Better documentation for nsnetsim code |
| * Better documentation for birdclient code | * Better documentation for birdclient code |
| * Documentation for birdplan code | * Documentation for birdplan code |
| |
| ===== Usage Ideas ===== | |
| |
| Generate Bird configuration... (takes /etc/birdplan.yml and creates /etc/bird.conf) | |
| <code> | |
| birdplan --generate | |
| birdplan --load | |
| </code> | |
| |