
Nelson
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
💡 技巧小贴士
本页内容较多,您可以使用 Ctrl/Command + F 快速查找本页面的关键词。
如果想快速搜索全站内容,也可以在页面中单击 / 键 快速全文检索关键词。
对于小屏用户,您可以点击右上角的 放大镜 (🔍) 图标以输入关键词进行全文检索。
请注意查看下方的本节目录,点击目录中的链接可以快速跳转到对应的内容。
💡 摘要 (Powered by OpenAI)
本文是 BIRD 用户指南的第五章第五节,主要介绍了 BIRD 的过滤器的路由属性 (Route Attributes),包括路由表主键、路由类型、接口类型、MPLS 标签属性等内容。
过滤器隐含地传递 (implicitly passed) 了一条路由 (route),并且它可以像访问变量一样访问其属性,包括常见的路由属性 (common route attributes)、特定协议的路由属性 (protocol-specific route attributes) 和自定义路由属性 (custom route attributes)。
defined(attribute)来检查一个属性是否已被定义。对于这条规则的一个显著例外是 bgppath和*clist类型的属性,在大多数情况下,未定义的值被视为空的bgppath/*clist。attribute 全局选项 声明。你可以使用 unset(attribute) 操作符来取消 (undefine) 可选属性。常见的路由属性有:
💡 技巧小贴士
特定于协议的路由属性请参考 相应协议章节 中的描述。
参见 关于路由 章节
net 前缀 (prefix) 或与路由 (route) 有关的任何其他内容prefixscope 路由范围 (route scope)enumSCOPE_UNIVERSESCOPE_HOST 用于本地主机的路由SCOPE_LINK 用于特定于物理链接的路由SCOPE_SITE 和 SCOPE_ORGANIZATION 用于私有路由SCOPE_UNIVERSE 用于全球可见的路由。参见 关于路由 章节
preference 路由的偏好int (整数)0 - 65535from 路由来源 (origination)ip (IPv4 或 IPv6 地址)gw 使用此路由转发的数据包应该被转发到的下一跳 (next hop)ip (IPv4 或 IPv6 地址)proto 路由来源协议名称 (protocol name)string (字符串)source 路由来源协议 (protocol)enum (枚举)RTS_STATIC 静态路由RTS_INHERIT 继承路由RTS_DEVICE 直连路由RTS_RIP RIP 路由RTS_OSPF OSPF 路由 RTS_OSPF_IA OSPF 间接路由RTS_OSPF_EXT1 OSPF 外部类型 1 路由RTS_OSPF_EXT2 OSPF 外部类型 2 路由RTS_BGP BGP 路由RTS_PIPE 管道路由RTS_BABEL Babel 路由dest 数据包转发目的地类型enum (枚举)RTD_ROUTER: 转发到邻近 (neighboring) 的路由器,只读RTD_DEVICE: 转发到直接相联 (directly-connected) 的网络,只读RTD_MULTIPATH: 转发到多重路径 (multipass) 目的地,只读RTD_BLACKHOLE: 将被静默丢弃的数据包RTD_UNREACHABLE: 返回 ICMP 主机不可达 (ICMP unreachable)RTD_PROHIBIT: 返回 ICMP 管理禁止 (ICMP administratively prohibited) 消息的数据包💡 技巧小贴士
英文汇聚路由 (sink routes),比如:
没有关联的网络接口,因此 ifname 对于这些路由将返回空字符串 (empty string)。
注意
设置 ifname 会将路由被更改为直接路由,网关 (gateway) 会被取消设置。
string注意
创建/移除 iface 时索引可能会变化,并且对于未定义出站接口的路由会返回零 (zero)。
ifindex 出站接口的索引值 (index), 系统范围内的接口索引。可用于接口 (interface) 匹配intonlink == true 表示指定的下一跳在接口上可访问,无视接口上配置的 IP 前缀。booltrue, false通过设置 onlink = true, ifname 和 gw,可以使用 onlink 属性配置 下一跳 (next hop)
weight 路由下一跳的多路径权重int1 - 256读取该数值将返回 第一个下一跳 (first next hop) 的权重,设置它则会将所有下一跳的权重设置为指定值。
因此,此属性对于操纵个别 ECMP 路由的下一跳不是很有用。
当然,在启用 merge paths 选项时,BGP 多路径 (BGP multipath) 与 ECMP 路由合并导出到 Kernel 协议时可以设置个别路由的权重。
💡 技巧小贴士
这是一个实验性选项,目前只支持第一个下一跳和标签堆栈中的一个标签,未来可能会更改以处理完整的 MPLS 标签堆栈 (full MPLS label stack)。
gw_mpls 路由的出站 MPLS 标签 (下一跳路由器对于此 标签交换路径 (label-switched path) 的入站 MPLS 标签)int读取返回标签值,设置它会将其设置到标签堆栈的开始。设置 隐式空标签 (implicit-NULL label)(3)会禁用 MPLS 标签堆栈。
igp_metric 指定对于没有 原生协议度量属性 (protocol metric attribute)(如 OSPF 路由的 ospf_metric1)的路由的网络距离。主要被 BGP 用来比较到边界路由器的内部距离(见下文)。
intmpls_label 路由的本地 MPLS 标签int本属性由 MPLS 感知协议 (MPLS-aware protocols) 为带标签的路由生成。
可以在 导入过滤器 (import filter) 中设置实现 静态标签 (static label) 分配,但这也需要 静态 MPLS 标签策略 (static MPLS label policy)。
mpls_policy 对于 MPLS 感知协议 (MPLS-aware protocols), 此属性定义将用于路由的 MPLS 标签策略,可以在 导入过滤器 (import filter) 中设置它以更改每条路由的策略 (per-route basis)。enumMPLS_POLICY_NONE: 无标签MPLS_POLICY_STATIC: 静态标签MPLS_POLICY_PREFIX: 针对单一前缀的标签MPLS_POLICY_AGGREGATE: 聚合标签MPLS_POLICY_VRF: 针对单一 VRF 的标签更多详情请参见 3-6 MPLS 标签策略
mpls_class当 MPLS 标签策略 被设置为 aggregate 时,可能需要比基于下一跳的单一聚合更精细的聚合。
当路由的此属性值不同时,即使它们有相同的下一跳,它们也不会在一个本地标签下聚合。
int
译者

校对
原文作者: <Ondrej Filip>, <Martin Mares>, <Maria Matejka>, <Ondrej Zajicek>
原文链接: https://bird.network.cz/?get_doc&v=20&f=bird-5.html#ss5.5
原文标题: 5.5 Route Attributes
遵循协议: CC BY-NC-SA 4.0
译者: nelson
校对: hat
翻译时间: 2023-12-15
更新时间: 2024-09-17
本文链接: https://bird.xmsl.dev/docs/user-guide/5-5-route-attributes.html