
eki
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
💡 技巧小贴士
本页内容较多,您可以使用 Ctrl/Command
+ F
快速查找本页面的关键词。
如果想快速搜索全站内容,也可以在页面中单击 /
键 快速全文检索关键词。
对于小屏用户,您可以点击右上角的 放大镜
(🔍) 图标以输入关键词进行全文检索。
请注意查看下方的本节目录,点击目录中的链接可以快速跳转到对应的内容。
💡 摘要 (Powered by OpenAI)
在本文中,我们将介绍 BIRD 的通道配置项(Channel Options), 包括通道调试选项、指定路由表、路由偏好、导入过滤器、导出过滤器、保留被过滤路由、自动重载 RPKI、导入路由限制、接收路由限制、导出路由限制等内容。
每个通道都属于一个协议实例,并在协议实例的配置块中被指定。
最简单的通道配置可以为一个空通道,此时所有的配置项都将使用默认值。通道的名称暗示指定通道的网络类型。
通道的定义可以从协议模版中继承而来。虽然同一个通道不可以被定义多次,但从模版中继承而来的通道定义可以被更新覆盖。
debug all|off|{ states|routes|filters [, ...] }
off
设定通道的调试选项。与 协议调试 相同,每个通道都可以将它相关的工作记录写到日志文件中(需要将日志等级设为 trace)。
你可以用 all 开关请求所有的追踪信息 (trace messages) 被输出,也可以选择仅输出一部分信息:
剩余的调试选项不在通道调试中可用。
table name
指定通道关联的路由表。
preference expr
设置此协议生成,并从此通道导入的路由的 preference。
import all | none | filter name | filter { filter commands } | where boolean filter expression
all
(除了对于 EBGP)。指定一个过滤器,用于过滤从协议到路由表的路由交换。all 用于接受所有路由,none 用于拒绝所有路由。对于过滤器的详细内容,请参考 第五章:过滤器。
export filter
none
(除了对于 EBGP 和 L3VPN)。与导入过滤器相似,但工作方向为路由表至协议。
import keep filtered switch
off
通常在 import 过滤器拒绝某条路由时,这条路由将被完全忘记。当此选项被启用时,这些被拒绝的路由将被保留在路由表中,但处于隐藏状态并不会广播至其他协议。
在命令行中使用 show route filtered 将输出此类路由。需要注意的是此选项不对 pipe 协议可用。
rpki reload switch
on
导入或导出过滤器可能使用路由的 RPKI 状态(使用 roa_check() 函数)。与其他过滤器函数不同,对于同一条路由,这个状态可能随 ROA 表的改变而变化。当这个选项被启用时,BIRD 将在 ROA 表被更新后(并在短暂的冷却时间后)自动重新导入受影响的通道。被禁用时,路由刷新需要被手动请求。
如果 roa_check() 没有在通道过滤器中被使用,这个选项将被自动忽略。需要注意的是对于 BGP 通道,自动刷新需要 import table 或 export table(对于每个方向)。
import limit [number | off ] [action warn | block | restart | disable]
off
指定一个导入路由限制(从协议导入的最大路由数量),并可选的指定一个达到限制时的动作。可用动作有:
需要注意的是,在协议被重新配置,重载或重启时,计数器将被重置。
receive limit [number | off ] [action warn | block | restart | disable]
off
指定一个接收路由限制(从协议接收并记忆的最大路由数量)。与 import limit 几乎相同,区别为如果 import keep filtered 选项启用时,被过滤的路由将被计数,而被 block 的路由将被忘掉。
这个区别的原因是,receive limit 的意义在于保护路由表不溢出,而 import limit 仅计数被接受的路由,且被限制 block 的路由将像被过滤的路由一样处理。
export limit [ number | off ] [action warn | block | restart | disable]
off
指定一个导出路由限制。与 import limit 相似,但对于向协议导出的路由有效。
这个选项是实验性的,其行为存在一些问题:在协议重载(reload)时,导出路由的数量可能短暂的超过限制而不触发对应的动作;导出的路由计数器无视路由 blocking;以及 block 动作也禁止已经被导出的路由的更新。这些问题可能在未来改变。
不指定通道设置时,配置块可能如下。
protocol rip ng {
ipv6;
interface "*";
}
指定通道设置时,配置块可能如下。
protocol rip ng {
ipv6 {
table mytable6;
import filter { ... };
export filter { ... };
import limit 50;
};
interface "*";
}
template bgp {
local 198.51.100.14 as 65000;
ipv4 {
table mytable4;
import filter { ... };
export none;
};
ipv6 {
table mytable6;
import filter { ... };
export none;
};
}
protocol bgp from {
neighbor 198.51.100.130 as 64496;
# IPv4 channel is inherited as-is, while IPv6
# channel is adjusted by export filter option
ipv6 {
export filter { ... };
};
}
译者
校对
原文作者: <Ondrej Filip>
, <Martin Mares>
, <Maria Matejka>
, <Ondrej Zajicek>
原文链接: https://bird.network.cz/?get_doc&v=20&f=bird-3.html#ss3.5
原文标题: 3.5 Channel options
遵循协议: CC BY-NC-SA 4.0
译者: eki
校对: hat
翻译时间: 2024-02-23
更新时间: 2024-03-16
本文链接: https://bird.xmsl.dev/docs/user-guide/3-5-channel-options.html