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) 有关的任何其他内容prefix
scope
路由范围 (route scope)enum
SCOPE_UNIVERSE
SCOPE_HOST
用于本地主机的路由SCOPE_LINK
用于特定于物理链接的路由SCOPE_SITE
和 SCOPE_ORGANIZATION
用于私有路由SCOPE_UNIVERSE
用于全球可见的路由。参见 关于路由 章节
preference
路由的偏好int
(整数)0 - 65535
from
路由来源 (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) 匹配int
onlink == true
表示指定的下一跳在接口上可访问,无视接口上配置的 IP 前缀。bool
true
, false
通过设置 onlink = true
, ifname
和 gw
,可以使用 onlink
属性配置 下一跳 (next hop)
weight
路由下一跳的多路径权重int
1 - 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 用来比较到边界路由器的内部距离(见下文)。
int
mpls_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)。enum
MPLS_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