
funnysyc
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
💡 摘要 (Summary by DeepSeek-v4-Flash)
本文详细介绍了 BIRD 路由器中路由表的设计架构,涵盖了路由表的基本概念、网络类型(nettype)的定义及其在路由选择中的作用,以及如何通过一套系统化的最佳路由选择算法来确定和维护最优路由,帮助用户深入理解并高效配置 BIRD 路由器。
BIRD 的核心是路由表,每个路由表之间相互独立,一个路由表恰好包含一个拥有 nettype 属性的的路由。
BIRD 自带两个默认的路由表 —— master4 和 master6,分别用于存储 IPv4 和 IPv6 路由,如果你不需要其他路由表,可以直接使用它们。
每种 nettype 都为路由定义了一个主键。每个路由源可以为每个可能的主键提供一条路由;新的路由宣告替换同一路由源中旧的路由,其余路由保持不变。
BIRD 总会在所有已知路由中,为每个主键选择一个最佳路由,其余路由保留为欠佳的备选。在最佳路由被撤回后,BIRD 重新运行 最佳路由选择算法 以寻找新的最佳路由。
🧭 概念解释
在一个路由表内,对于来自不同源的路由列表,只有一条路由会被选为最终选定的路由,也就是 最佳路由。
但是需要注意的是,这里的 最佳路由 并不一定是 最优路由,不要混淆这两个概念。
全局的最佳路由选择算法大致如下 (参考 BIRD 官方文档 §2.1):
比较路由的 preference (偏好值) 属性:
preference 值 (0–65535 的整数,详见 路由偏好)。preference 值越大,优先级越高,即数值更大的路由胜出。该属性是 BIRD 全局路由排序的 首要且唯一 的跨协议比较依据,由网络管理员在协议或通道配置中设定 (见 通道选项 - 路由偏好)。比较路由源协议实例的 preference 属性:
preference 值相同,则进一步比较路由源协议实例本身的 preference 值。如果源协议相同 (例如同为 BGP 或同为 OSPF),执行协议对应的最佳路由选择算法:
转发地址 的路由。如果源协议不同 (例如 BGP 与 OSPF 之间):
preference 值完全相同的路由之间,BIRD 通常会从该网络的多条备选条目中选择一条作为选定路由,但哪一条被选中并不由 BIRD 保证。preference 值。例如在 BGP 协议块中设置 preference 100;,在 OSPF 协议块中设置 preference 200;,即可让 OSPF 在冲突时胜出。⚠️ 注意
BIRD 不存在 Cisco IOS 中的「管理距离 (Administrative Distance, AD)」概念。跨协议的路由比较 完全且仅由 preference 值决定,没有内置的协议优先级表。请勿将 Cisco 的 AD 数值表套用到 BIRD 的配置中。
可以根据 preference 或某个协议相关的 度量值 (metric) 使这些路由列表进行完全排序。有关详细信息,请参阅 sorted (排序路由) 选项。

译者

校对 & 原创内容作者
原文作者 <Ondrej Filip>, <Martin Mares>, <Maria Matejka>, <Ondrej Zajicek>
原文链接: https://bird.network.cz/?get_doc&v=20&f=bird-2.html#ss2.1
原文标题: 2.1 Routing tables
遵循协议: CC BY-NC-SA 4.0
译者: funnysyc
校对: hat
翻译时间: 2023-11-14
更新时间: 2026-06-16
本文链接: https://bird.xmsl.dev/docs/user-guide/2-1-routing-tables.html