
Hat
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
💡 摘要 (Powered by OpenAI)
本文是 BIRD 用户指南的第六章第十二节,介绍了 BIRD 的三层 VPN 协议 (L3VPN),包括其作为 IP 与 VPN 路由转换器的工作方式、路由目标机制和配置语法,以便您更好地理解相关内容。
L3VPN 协议 在 IP 路由和 VPN 路由之间充当转换器。它是 BGP/MPLS IP VPN(RFC 4364)的组成部分,实现了其中定义的策略。
与管道协议 (Pipe) 不同,L3VPN 协议仅传播每个网络的最佳路由。
在 BGP/MPLS IP VPN 中,路由分发由 路由目标 (Route Target, RT) 控制。每个 VRF 关联一个或多个 RT,路由也关联一个或多个 RT(编码为路由目标扩展团体属性,参见 bgp_ext_community)。路由会被导入到所有共享相同 Route Target 的 VRF 中。L3VPN 协议通过必选的 import target 和 export target 协议选项实现此机制。
L3VPN 配置包含若干必选选项和多个通道定义。为方便使用,L3VPN 通道中的默认 export 过滤器为 all,因为控制路由导入和导出的主要方式是通过 import target 和 export target 选项。
如果使用自定义过滤器,请注意:输入通道的 export 过滤器在路由转换之前应用,而输出通道的 import 过滤器在路由转换之后应用。
与管道协议不同,L3VPN 协议可以在一个实例中同时处理 IPv4 和 IPv6 路由,IP 侧和 VPN 侧分别表示为独立的通道(虽然未来可能有所调整)。L3VPN 始终是 MPLS 感知协议,因此 MPLS 通道是必选的。总体而言,L3VPN 最多可拥有 5 个通道:ipv4、ipv6、vpn4、vpn6 和 mpls。
route distinguisher rd
附加到导出路由上的路由区分符。必须配置。
rd rd
route distinguisher 选项的简写形式。
import target ec|ec-set|none|all
指定哪些路由应被导入的路由目标扩展团体属性。可指定一个团体或一个集合。当路由的扩展团体属性与 L3VPN 协议的导入目标之间存在非空交集时,该路由即被导入。必须配置。
export target ec|ec-set|none
在导出方向上附加到路由的路由目标扩展团体属性。可指定一个团体或一个集合。其他路由目标扩展团体属性将被移除。必须配置。
route target ec|ec-set|none
import target 和 export target 两者的简写形式。
L3VPN 协议不定义任何路由属性。
以下是一个具有一个 VPN 和 BGP 上联的 L3VPN 配置示例。从 VPN 客户学到的 IP 路由存储在 vrf0vX 表中(这些表映射到内核 VRF vrf0),路由还可通过 BGP 与托管该 VPN 的不同站点进行交换。跨网络的 VPN 流量转发由 MPLS 处理。
示例中省略了与客户交换路由的某种路由协议,以及用于解析 BGP VPN 路由下一跳的某种 MPLS 感知 IGP。
# MPLS 基础配置
mpls domain mdom;
mpls table mtab;
protocol kernel krt_mpls {
mpls { table mtab; export all; };
}
vpn4 table vpntab4;
vpn6 table vpntab6;
# 通过 BGP 交换 VPN 路由
protocol bgp {
vpn4 { table vpntab4; import all; export all; };
vpn6 { table vpntab6; import all; export all; };
mpls { label policy aggregate; };
local 10.0.0.1 as 10;
neighbor 10.0.0.2 as 10;
}
# VRF 0
ipv4 table vrf0v4;
ipv6 table vrf0v6;
protocol kernel kernel0v4 {
vrf "vrf0";
ipv4 { table vrf0v4; export all; };
kernel table 100;
}
protocol kernel kernel0v6 {
vrf "vrf0";
ipv6 { table vrf0v6; export all; };
kernel table 100;
}
protocol l3vpn l3vpn0 {
vrf "vrf0";
ipv4 { table vrf0v4; };
ipv6 { table vrf0v6; };
vpn4 { table vpntab4; };
vpn6 { table vpntab6; };
mpls { label policy vrf; };
rd 10:12;
import target [(rt, 10, 32..40)];
export target [(rt, 10, 30), (rt, 10, 31)];
}
译者
原文作者: <Ondrej Filip>, <Martin Mares>, <Maria Matejka>, <Ondrej Zajicek>
原文链接: https://bird.network.cz/?get_doc&v=20&f=bird-6.html#ss6.12
原文标题: 6.12 L3VPN
遵循协议: CC BY-NC-SA 4.0
译者: hat
翻译时间: 2026-05-01
更新时间: 2026-05-01
本文链接: https://bird.xmsl.dev/docs/user-guide/6-12-l3vpn.html