eki
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
💡 技巧小贴士
本页内容较多,您可以使用 Ctrl/Command
+ F
快速查找本页面的关键词。
如果想快速搜索全站内容,也可以在页面中单击 /
键 快速全文检索关键词。
对于小屏用户,您可以点击右上角的 放大镜
(🔍) 图标以输入关键词进行全文检索。
请注意查看下方的本节目录,点击目录中的链接可以快速跳转到对应的内容。
💡 摘要 (Powered by OpenAI)
在本文中,我们将介绍 BIRD 的协议配置项(Protocol Options),包括开关配置项、禁用协议实例、协议调试选项、mrtdump 选项、路由器标识符、协议描述、指定 VRF、定义频道、仅对于特定协议存在意义的配置项等内容。
每个协议实例都有许多可以配置的选项。在这一小节中被讨论的配置项都是对于多个协议类型通用的;对于某些协议特有的配置项,请参考各个协议对应的章节。
on
(开启,可以理解为“沉默表示肯定”)有些配置项属于 “开关 (switch)” 类型。对于这些配置项,可以使用 "on", "yes", 或任何一个非 0 的数学表达式以启用它;并使用 "off", "no", 或一个值为 0 的数学表达式以禁用它。
disabled
switch
参见前文 #switchdisabled switch
你也可以不改变配置文件的情况下从命令行接口改变协议实例的 启用/禁用 状态。被禁用的协议不会被激活。
debug
debug all|off|{ states|routes|filters|interfaces|events|packets [, ...] }
这个配置项用于设定协议的调试选项。在被要求的情况下,每个协议实例都可以将它相关的工作记录写到日志文件中(需要将日志等级设为 trace)。
对于调试信息的详细程度,你可以用 all 开关请求所有的追踪信息 (trace messages) 被输出,也可以选择仅输出一部分信息:
routes 和 filters 开关也可以在 频道调试选项 中对每个频道分别设置。
mrtdump all|off|{ states|messages [, ...] }
设置协议的 MRTdump 旗子。MRTdump 是一个标准的二进制协议,用于记录路由协议和进程的信息。这些设置旗子指定哪些信息将从协议被记录,并被写入 MRTdump 文件(此文件需要被全局选项 mrtdump 设置,参考全局配置项章节)。
虽然这些旗子和 debug 配置项 相似,它们的意义对每一个协议不同。对于 BGP,states 记录 BGP 的协议状态变化,messages 记录收到的 BGP 信息。其他的协议暂不支持 MRTdump。
本条详见 3.2 全局配置项
router id <IPv4 address>
设置 BIRD 的路由器标识符,应为一串 全球唯一 的 32 位整数,通常使用路由器的 IPv4 地址。
默认值:非回环接口上的最小的 IPv4 地址。
description "text"
用于设置一个对协议的可选描述。这个描述将在 "show protocols all" 命令中被输出。
vrf "text"|default
用于将协议实例与某个特定的 VRF 关联。此时这个协议实例将被限制到 VRF 指定的网络接口与 sockets。一个对应的 VRF 接口必须在操作系统层面存在。对于 kernel 协议,一个合适的路由表必须被 table 选项设定。
如果选定 default,则协议实例将与默认 VRF 关联,即将被限制到没有绑定任意一个常规 VRF 的网络接口。需要注意的是,这与完全不声明 vrf 选项不同(完全不声明此选项时,协议实例可以无视网络接口的 VRF 状态以使用任何接口)。
对于正常的 VRF 支持,最低可用的 Linux 内核版本为 4.14 。此前的 Linux 内核仅有受限的 VRF 实现。
在 Linux 内核版本 5.0 之前,一个绑定到默认 VRF 的某个端口的 VRF 将于其他常规 VRF 碰撞矛盾,但这个问题可以使用 strict bind 配置项回避。
channel name [{channel config}]
每个频道都必须被显式声明。参考每个协议特有的配置项以获得可用的频道名称。参考 频道配置项 章节以获得频道的定义。
有一些选项仅对一些特别的协议有意义。
interface [-] [ "mask" ] [ prefix ] [, ...] [ { option; [...] } ]
指定协议将被激活的网络接口,并指定这个接口特有的配置选项。也可以使用 网络接口规则 (interface pattern) 以一次性指定多个网络接口。网络接口将按照接口名称被匹配。
网络接口规则 包括 一系列被逗号分隔的表达式,而每一个表达式都是一个类似 shell 表达式的规则。仅需满足任意一个表达式,一个网络接口就会被判定为符合整体规则。如果规则的初始字符为 "-",则匹配的网络接口将被排除(即反向判断)。规则从左向右匹配。
interface "eth0", -"eth*", "*";
这个规则将匹配 eth0 与所有非 ethernet 的网络接口。
某些协议(OSPFv2 与 Direct)支持可能包含一个 mask,或一个 prefix,或两者都存在的扩展语句。此时,网络接口将在 mask 匹配(如果被指定) 并且 prefix 匹配(如果被指定)时符合匹配规则。扩展语句将在协议独立地处理某个网络接口上的多个地址时被使用。
一个 interface 配置项可以被指定多次,每次指定不同的接口特有的选项。在这种情况下,网络接口匹配的第一个配置项将被使用。
interface 配置项在 Babel, BFD, Device, Direct, OSPF, RAdv 和 RIP 协议中可用,并在 OSPF 的 area 分区中可用。
配置例子:
interface "*" { type broadcast; };
在所有网络接口上,使用 broadcast 选项启用此协议。
interface "eth1", "eth4", "eth5" { type ptp; };
在这三个网络接口上使用 ptp 模式启用协议。
interface -192.168.1.0/24, 192.168.0.0/16;
在所有网络地址属于 192.168.0.0/16,但不属于 192.168.1.0/24 的网络接口上启用此协议。
interface "eth*" 192.168.1.0/24;
在所有网络地址属于 192.168.1.0/24 的 ethernet 接口上启用此协议。
tx class|dscp num
对于此协议的出向数据包,指定 IP header 中的 ToS/DS/Class 值。这可能影响数据包相对于其他网络包将如何被处理。
对于 class 关键词,除了为 ECN 保留的两位外,值(0 - 255
)将被用于整个 ToS/Class octet。
对于 dscp 关键词,值(0 - 63
)将仅被用于 DS 域。默认值为 0xc0
(DSCP 0x30 - CS6)。
tx priority num
7
(最高优先级,优先流量)。指定这个协议的数据包的本地优先级。这可能影响本地对于协议的数据包在 TX 队列中的处理方式。这个选项是 Linux 特有的。
password "password" | bytestring [ { password options } ]
对于此协议,指定一个密码作为共有的私钥。此选项也可以被指定多次,以声明多个密码。如果多个密码被声明,则哪个密码被使用将由协议实例本身决定。
声明密码不代表身份验证将被启用;身份验证使用另一个,与协议独立的 authentication 开关启用。
密码可以使用 字符串 或 16进制数字串(bytestring) 指定。
密码选项在 BFD, OSPF, RIP, 以及 Babel 协议中可用。虽然 BGP 中也有 password 选项,但它略有不同并将被单独讨论。
密码的可选配置 (password options) 可以包含以下的一部分选项。
id num
指定密码的编号(0-255
)。如果不被指定,BIRD 将对于这个网络接口的密码,从 1 开始,按照顺序自动编号,即某个网络接口的第二个密码项目的编号为 2。BIRD 允许密码编号 0,但其他的实现可能不允许它。ID 也被某些协议用于识别哪个密码用于验证协议数据包。
generate from "time"
dd-mm-yyyy HH:MM:SS
(以下配置选项中相同,不再赘述。)开始使用密码进行数据包签名的时间。
generate to "time"
停止使用密码进行数据包签名的时间。
accept from "time"
开始使用密码进行数据包验证的时间。
accept to "time"
停止使用密码进行数据包验证的时间。
from "time"
同时指定 generate from 和 accept from。
to "time"
同时指定 generate to 和 accept to。
algorithm ( keyed md5 | keyed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 | blake2s128 | blake2s256 | blake2b256 | blake2b512 )
在加密验证被启用时使用的消息验证算法。
译者
校对
原文作者: <Ondrej Filip>
, <Martin Mares>
, <Maria Matejka>
, <Ondrej Zajicek>
原文链接: https://bird.network.cz/?get_doc&v=20&f=bird-3.html#ss3.4
原文标题: 3.4 Protocol options
遵循协议: CC BY-NC-SA 4.0
译者: eki
校对: hat
翻译时间: 2024-02-23
更新时间: 2024-11-17
本文链接: https://bird.xmsl.dev/docs/user-guide/3-4-protocol-options.html