更新日志 (Changelog)
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
💡 技巧小贴士
本页内容较多,您可以使用
Ctrl/Command
+F
快速查找本页面的关键词。如果想快速搜索全站内容,也可以在页面中单击
/
键 快速全文检索关键词。对于小屏用户,您可以点击右上角的
放大镜
(🔍) 图标以输入关键词进行全文检索。
请注意查看下方的本节目录,点击目录中的链接可以快速跳转到对应的内容。
📖 本节目录
版本 2.15.1 (2024-03-22) 最新版 | Latest
- OSPF: 修复处理 PtP 链路时的回归问题
- RPKI:正确处理连接重置
- Static: 拒绝无效的选项组合
- 修复使用有限协议集构建的问题
版本 2.15 (2024-03-10) 旧版 | Archive
- BGP: 发送保持计时器
- BGP: 新选项以指定所需的 BGP 能力
- BFD: "show bfd sessions" 命令的改进
- RPKI: 新的 "local address" 配置选项
- Linux: 支持更多的路由属性,包括 TCP 拥塞控制算法
- 支持 UDP 日志记录
- 静态路由可以同时指定下一跳和接口
- BIRD 客户端中命令选项的完成
- 许多错误修复和改进
版本 2.14 (2023-10-06) 旧版 | Archive
- 支持 MPLS 子系统
- L3VPN:支持 BGP/MPLS VPN (RFC 4346)
- BGP:允许访问未知路由属性 (Route Attributes)
- RAdv:自定义选项
- Babel:RTT 指标扩展
- BMP:
- 重构的路由监控
- 多个 BMP 协议实例
- 预策略和后策略监控
- 实验性路由聚合
- 过滤器 (Filter):
- 方法框架
- 函数有返回类型语句
- 新的字节串数据类型
- 内核 (Kernel): 学习内核路由的选项
- 许多错误修复和改进。
原文
Version 2.15.1 (2024-03-22)
- OSPF: Fix regression in handling PtP links
- RPKI: Handle connection resets properly
- Static: Reject invalid combination of options
- Fix builds with limited set of protocols
Version 2.15 (2024-03-10)
- BGP: Send hold timer
- BGP: New options to specify required BGP capabilities
- BFD: Improvements to "show bfd sessions" command
- RPKI: New "local address" configuration option
- Linux: Support for more route attributes, including
TCP congestion control algorithm
- Support for UDP logging
- Static routes can have both nexthop and interface specified
- Completion of command options in BIRD client
- Many bugfixes and improvements
Version 2.14 (2023-10-06)
- MPLS subsystem
- L3VPN: BGP/MPLS VPNs (RFC 4364)
- BGP: Access to unknown route attributes
- RAdv: Custom options
- Babel: RTT metric extension
- BMP: Refactored route monitoring
- BMP: Multiple instances of BMP protocol
- BMP: Both pre-policy and post-policy monitoring
- Experimental route aggregation
- Filter: Method framework
- Filter: Functions have return type statements
- Filter: New bytestring data type
- Kernel: Option to learn kernel routes
- Many bugfixes and improvements
Notes:
User-defined filter functions that return values now should have return type
statements. We still accept functions without such statement, if they could be
properly typed.
For loops allowed to use both existing iterator variables or ones defined in
the for statement. We no longer support the first case, all iterator variables
must be defined in the for statement (e.g. "for int i in bgp_path ...").
Due to oversight, VRF interfaces were not included in respective VRFs, this is
fixed now.
Version 2.13.1 (2023-06-23)
- BGP: Fix role check when no capability option is present
- Filter: Fixed segfault when a case option had an empty block
This is a bugfix version.
Version 2.13 (2023-04-21)
- Babel: IPv4 via IPv6 extension (RFC 9229)
- Babel: Improve authentication on lossy networks
- BGP: New "allow bgp_med" option
- BSD: Support for IPv4 routes with IPv6 nexthop on FreeBSD
- Experimental BMP protocol implementation
- Important bugfixes
Notes:
We changed versioning scheme from <epoch>.<major>.<minor> to more common
<major>.<minor>.<patch> . From now on, you may expect that BIRD 2.13.x will be
strictly only fixing bugs found in 2.13, whereas BIRD 2.14 will also contain
new features.
This BIRD version contains an alpha release of BMP protocol implementation.
It is not ready for production usage and therefore it is not compiled by
default and have to be enabled during installation.
Version 2.0.12 (2023-01-23)
- Filter: New "onlink" route attribute
- Compile-time option to use 4-way tries instead of 16-way ones
- BSD: Support for kernel route metric and other improvements
- Important bugfixes
Version 2.0.11 (2022-11-12)
- BGP roles (RFC 9234)
- BGP: Keepalive time scaling
- BGP: New "min hold time" and "min keepalive time" options
- BGP: New "next hop prefer global" option
- Filter: For loops and direct recursion
- Filter: Mixed declarations of local variables
- Filter: Improved static type checks
- Filter: Literal [] for empty set
- Linux: Netlink KRT improvements
- BSD: Experimental support for Netlink API
- Memory management improvements
- Many bugfixes
Notes:
In contrast to prior versions, configured keepalive time in BGP now scales
with negotiated hold time to maintain proportion between the keepalive time
and the hold time.
The Linux KRT was updated to use the recent API for IPv6 ECMP routes instead
-f the legacy one. Consequently, the Linux versions older than 4.11 are no
longer supported, at least for IPv6 ECMP routes. Also, routing table scanning
now runs separately for each table to avoid congestion.
There is a minor change in recursive next hop processing. Previously,
recursive next hop must be resolved through a non-recursive route, now it must
be resolved through a prefix where both the best route and all routes with the
same preference (as the best route) are non-recursive. The old behavior might
lead in some corner cases to an infinite loop of recursive next hop resolution
due to a priority inversion.
There is a minor change in the "configure undo" command, it is no longer
available after failed reconfiguration, as the old configuration is already
released.
Version 2.0.10 (2022-06-16)
- BGP performance improvements
- BFD: New "strict bind" option
- RPKI: VRF support
- Allow use of 240.0.0.0/4 as a private range
- BIRD client uses exit status to report errors
- Important bugfixes
Version 2.0.9 (2022-02-09)
- BGP: Flowspec validation procedure
- Babel: MAC authentication support
- Routing table configuration blocks
- Optional prefix trie in routing table for faster LPM/interval queries
- CLI: New "show route in <prefix>" command
- Filter: Faster (16-way) prefix sets
- Filter: MPLS label route attribute
- Filter: Operators to pick community components
- Filter: Operators to find minimum and maximum element of lists
- BGP: New "free bind" option
- BGP: Log route updates that were changed to withdraws
- BGP: Improved "invalid next hop" error reporting
- OSPF: Allow ifaces with host address as unnumbered PtP or PtMP ifaces
- OSPF: All packets on PtP networks should be sent to AllSPFRouters address
- Scripts for apkg-powered upstream packaging for deb and rpm
- Support for Blake2s and Blake2b hash functions
- Security keys / passwords can be entered in hexadecimal digits
- Memory statistics split into Effective and Overhead
- Linux: New option "netlink rx buffer" to specify netlink socket buffer size
- BSD: Assume onlink flag on ifaces with only host addresses
- Many bugfixes
Notes:
For OSPF on PtP network, BIRD now sends all packets to multicast AllSPFRouters
address (as required in RFC 2328 8.1). This likely breaks setups with multiple
neighbors on a network configured as PtP, which worked in previous versions.
Such links should be configured as PtMP.
Since Linux 5.3, netlink socket can be flooded by route cache entries during
route table scan. This version mitigates that issue by using strict netlink
filtering.
Version 2.0.8 (2021-03-18)
- Automatic channel reloads based on RPKI changes
- Multiple static routes with the same network
- Use bitmaps to keep track of exported routes
- Per-channel debug flags
- CLI commands show info from multiple protocols
- Linux: IPv4 routes with IPv6 nexthops
- Filter: Optimized redesign of prefix sets
- Filter: Improved type checking of user filters
- Filter: New src/dst accessors for Flowspec and SADR
- Filter: New "weight" route attribute
- Filter: BGP path mask loop operator
- Filter: Remove quitbird command
- RIP: Demand circuit support (RFC 2091)
- BGP: New "allow as sets" and "enforce first as" options
- BGP: Support for BGP hostname capability
- BGP: Support for MD5SIG with dynamic BGP
- BFD: Optional separation of IPv4 / IPv6 BFD instances
- BFD: Per-peer session options
- RPKI: Allow build without libSSH
- RPKI: New "ignore max length" option
- OSPF: Redesign of handling of unnumbered PtPs
- OSPF: Allow key id 0 in authentication
- Babel: Use onlink flag for routes with unreachable next hop
- Many bugfixes
Notes:
Automatic channel reloads based on RPKI changes are enabled by default,
but require import table enabled when used in BGP import filter.
BIRD now uses bitmaps to keep track of exported routes instead of
re-evaluation of export filters. That should improve speed and accuracy in
route export handling during reconfiguration, but takes some more memory.
Per-channel debug logging and some CLI commands (like "show ospf neighbors")
defaulting to all protocol instances lead to some minor changes in log and
CLI output. Caution is recommended when logs or CLI output are monitored by
scripts.
Version 2.0.7 (2019-10-11)
- BGP: Accumulated IGP metric (RFC 7311)
- Important filter reconfiguration bugfix
- Several other bugfixes
Version 2.0.6 (2019-09-10)
- RAdv: Solicited unicast RAs
- BGP: Optional Adj-RIB-Out
- BGP: Extended optional parameters length
- Filter: Sets and set expressions in path masks
- Several important bugfixes
Version 2.0.5 (2019-08-01)
- OSPF Graceful restart (RFC 3623, RFC 5187)
- BGP: Dynamic BGP
- BGP: Promiscuous ASN mode
- BGP: Mandatory option for channels
- BFD: Support for VRFs
- Graceful restart command
- Redesigned filtering code
- Many bugfixes
Notes:
Previous version introduced an error in handling of OSPF NSSA-LSA, causing
compatibility issues with proper implementations. The error is fixed in this
version, therefore there are compatibility issues in OSPF NSSA areas between
this and previous version.
Version 2.0.4 (2019-02-27)
- OSPF: Opaque LSAs (RFC 5250)
- OSPF: DN-bit handling (RFC 4576)
- Preferred route counters are back
- Important BGP bugfix
- Several bugfixes related to route propagation
- some minor bugfixes
Version 2.0.3 (2019-01-05)
- MRT table dumps (RFC 6396)
- BGP Long-lived graceful restart
- BGP: Optional import table (Adj-RIB-In)
- BGP: Extend "next hop keep" and "next hop self" options
- BGP: Improved VRF support
- OSPF: Authentication trailer for OSPFv3 (RFC 7166)
- Babel: New option to randomize router ID
- Filter: Custom route attributes
- Filter: Support for src accessor to SADR source prefix
- Filter: Support for VPN_RD sets
- Filter: Make ifname attribute modifiable
- Perf: Protocol to measure BIRD performance internally
- More verbose error messages in config processing
- Log file size limit / log rotation
- Many bugfixes
Notes:
Export of routes to RS EBGP (route server) sessions from other sources than
RS EBGP sessions was changed that ASN is no longer prepended to BGP_PATH in
that case. The change does not affect regular BGP configurations or regular
route servers that have only RS EBGP peers.
For BGP route servers and route reflectors, the default value of option
"next hop keep" was changed to a more appropriate value.
Attributes for OSPF and Babel metrics are no longer reset when exported to
these protocols and could be set anywhere in BIRD. As a result, OSPF metric is
kept when a route is reannounced between OSPF instances. Also, when route is
exported to OSPF with both ospf_metric1 and ospf_metric2 attributes it is now
propagated as OSPF-E2 route instead of as OSPF-E1 route.
Compiling BIRD with --enable-debug no longer automatically activates debug
mode (-d option) nor local mode (-l option). Also, debug mode with output to
file (-D option) no longer not forces foreground mode (-f option).
The configure script now uses standard option --runstatedir, the old option
--with-runtimedir is deprecated.
Version 2.0.2 (2018-03-22)
- Source-specific routing support for Linux kernel and Babel
- BGP: New option "disable after cease"
- Filter: Allow silent filter execution
- Filter: Fixed stack overflow in BGP mask expressions.
- Several bugfixes
Notes:
Syntax prefix:netmask for IPv4 prefixes was dropped. Just use prefix/pxlen.
Version 2.0.1 (2018-01-16)
- Linux MPLS kernel support
- Better handling of channels inherited from templates
- Default EBGP Route Propagation Behavior without Policies (RFC 8212)
- Many bugfixes
Notes:
To satisfy requirements of RFC 8212, external BGP protocols now require
explicit configuration of import and export policies.
Version 2.0.0 (2017-12-11)
- Integrated IPv4 + IPv6 design
- Support for MPLS next hops
- Support for VPNv4 and VPNv6 networks
- Microsecond timers infrastructure
- Basic VRF support
- Babel: Support for dual-stack IPv4/IPv6
- Babel: Many improvements and bugfixes
- Major BGP protocol redesign
- Full support for Multiprotocol BGP
- BGP multicast support (SAFI 2)
- BGP flowspec support (RFC 5575)
- BGP with MPLS labels (RFC 3107)
- BGP MPLS/VPN support (RFC 4364)
- BGP 6PE - IPv6 NLRI over IPv4 MPLS (RFC 4798)
- BGP IPv4 NLRI with an IPv6 Next Hop (RFC 5549)
- BGP Confederations (RFC 5065)
- BGP Shutdown communication (RFC 8203)
- BGP: Allow exchanging LOCAL_PREF with eBGP peers
- BGP: Allow to specify interface for regular sessions
- OSPF: Support of address families in OSPFv3
- OSPF: Enable ECMP and Link detection by default
- RAdv: Support for more specific routes (RFC 4191)
- RAdv: Proper handling of prefix retraction
- RIP: Enable ECMP and Link detection by default
- Redesign of RPKI handling
- New RPKI-Router protocol
- Static: Minor overhaul
- Static: Support for all new route types
- Kenrel: Default Linux kernel metric changed to 32
- Kernel: Fix IPv6 ECMP handling with Linux 4.11+
- Update of show route command
- BIRD client persistent history
- New build system
- Unit tests
- ...
Notes:
Tables are now defined with appropriate net type keyword. Protocols and tables
are now connected by explicit channels, most related protocol options (table,
import, export, ...) are now channel options. See doc/bird.conf.example2 for
configuration examples. Some options were removed/replaced.