RS Features list and details - euro-ix/rs-workshop-july-2017 GitHub Wiki
Topic | Feature | Bird | GoBGP | OpenBGPd | Comments |
---|---|---|---|---|---|
Global features | |||||
Scalabitity for the 1500+ peers | + | ? | ? | Bird support 1500 ok, above unknown OpenBGPd has long convergence time, need to test latest version (especially with filtering) |
|
Single RIB Support | + | - | + | ||
Per Peer (Multi) RIB Support | + | + | + | ||
Multi protocol support: IPv4/IPv6 | +- | + | + | https://tools.ietf.org/html/rfc4760 Bird v2 support this |
|
Fast BGP convergence times (Within milliseconds) | - | - | - | OpenBGPd has long convergence time, need to test latest version (especially with filtering) | |
Multi-Core support | - | + | ? | Bird BFD thread runs at different core | |
Tunable Logging & debugging | + | +- | + | ||
Configuration: Support for includes, templates and/or peer groups | +- | -+ | + | Bird support includes, templates, not support peer groups GoBGP support peer groups OpenBGPd support includes, templates, peer groups |
|
Additional features | |||||
Decent memory requirements | ? | ? | ? | Less than 64GB | |
Route Flap Dampening | - | - | + | https://tools.ietf.org/html/rfc2439 | |
BFD | + | - | + | https://tools.ietf.org/html/rfc5880 | |
RPKI Validation | +- | + | - | https://tools.ietf.org/html/rfc6810 https://tools.ietf.org/html/rfc6811 - Bird v2 has direct communication with RPKI validator - Bird less v2: to load ROA entries into BIRD an external tool must be used: rtrlib (https://github.com/rtrlib/bird-rtrlib-cli). The name of the table where send the ROAs to is 'RPKI'. |
|
BGPSec Validation | -+ | - | - | https://tools.ietf.org/html/draft-ietf-sidr-bgpsec-protocol-23 - Bird: external patch exist. Bird-devs have plans to merge code at Bird v2 |
|
Multi path: Add path | + | +- | - | https://tools.ietf.org/html/rfc7911 GoBGP: the rx support is already in master branch.Devs been working on the tx support. Looks like the very basic features works but needs more testings: https://github.com/fujita/gobgp/tree/addpath |
|
MRT support | +- | + | + | https://tools.ietf.org/html/rfc6396 | |
TCP-AO | + | - | ? | https://tools.ietf.org/html/rfc5925 | |
TCP MD5 passwords obsoleted by TCP-AO | + | - | + | https://tools.ietf.org/html/rfc2385 | |
Graceful restart | + | + | + | https://tools.ietf.org/html/rfc4724 | |
FlowSpec | +- | + | https://tools.ietf.org/html/rfc5575 - starting from Bird v2 |
||
Netconf | - | - | https://tools.ietf.org/html/rfc6241 | ||
Netconf over SSH | - | - | https://tools.ietf.org/html/rfc6242 | ||
Support any of: yaml/json/toml/hcl |
- | + | GoBGP support all BIRD doesn't support, external project JSON exists: https://github.com/inex/birdseye |
||
Route refresh (Enhanced Route Refresh) | + | + | +? | https://tools.ietf.org/html/rfc2918 https://tools.ietf.org/html/rfc7313 - OpenBGPd no info about enhanced route refresh |
|
SNMP | - | - | https://tools.ietf.org/html/draft-ietf-idr-bgp4-mibv2-15 | ||
BMP | - | + | https://tools.ietf.org/html/draft-ietf-grow-bmp-16 - Bird-devs have some plans to implement in 2017 |
||
GTSM (Generalized TTL Security Mechanism) | + | - | https://tools.ietf.org/html/rfc5082 | ||
Filtering features (most enabled by default) | |||||
Prefix filtering both for IPv4 and IPv6 |
+ | + | + | - to provide IRRDB policy filtering | |
AS-path filtering && manipulation |
+ | + | + | - to provide IRRDB policy filtering - AS-path prepending based on specific communities |
|
Community filtering && manipulation (add, delete, range support) | + | + | + | - clearing IXP control communities before announcing to,customers - add no-export according to IXP control community announced,by customer |
|
Next hop filtering && manipulation | + | + | + | - strict / same AS - RFC7948 section 4.8 - to implement BGP Blackhole Service - to deny or to rewrite BGP next hops which are not expected to see |
|
minimum and maximum IPv4/IPv6 prefix length; | + | + | + | Bird: if (net.len < 8) || (net.len > 32) then return false; # IPv4,corresponding for IPv6 | |
maximum AS_PATH length; | + | + | + | Bird: if bgp_path.len > 64 then return false | |
reject AS_PATHs containing transit-free ASNs; | + | + | + | ||
reject bogons (private/invalid) both for prefixes and ASN in as-path |
+ | + | + | ||
prefixes and origin ASNs enforcing via RPSL/IRRdb AS-SETs | + | + | + | RFC7948,section 4.6.2 | |
max-prefix limit based on global or client-specific values or on,PeeringDB data. | + | + | + | ||
Blackhole filtering support | |||||
signalling via BGP Communities (BLACKHOLE and custom communities); |
+ | + | + | ||
client-by-client control over propagation | + | + | + | ||
Control and informative communities | |||||
prefix/origin ASN present/not present in IRRDB data; | + | + | + | ||
routes RPKI validity state; | + | + | - | - OpenBGPd doesnt support RPKI validation | |
do (not) announce to any / peer; | + | + | + | ||
prepend to any / peer; | + | + | + | ||
add NO_EXPORT / NO_ADVERTISE to any / peer; | + | + | ? | ||
custom informational BGP communities. | + | + | + | ||
Classic community support | + | + | + | https://tools.ietf.org/html/rfc1997 | |
Extended community support | + | + | + | https://tools.ietf.org/html/rfc4360 | |
Large community support | + | + | + | https://tools.ietf.org/html/rfc8092 | |
Optional session features on a client-by-client basis | |||||
do not prepend route server own ASN | + | + | + | https://tools.ietf.org/html/rfc7947 section 2.2.2.1 | |
active/passive mode support | + | + | + | ||
Automatic building of clients list | |||||
integration with IXP-Manager; | + | - | +- | - OpenBGPd didn't have preconfigured template |