全网状 VPN
配置简单的全网状 VPN 拓扑
此示例显示如何设置由以下组件组成的简单全网状服务提供商 VPN 配置(请参阅 图 1):
两个独立的 VPN(VPN-A 和 VPN-B)
两个提供商边缘 (PE) 路由器,两者均服务 VPN-A 和 VPN-B
RSVP 作为信号协议
一个 RSVP 标签交换系列 (LSP),通过一个提供商 (P) 路由器在两个 PE 路由器之间穿过隧道

在此配置中,从路由器 VPN-A-Paris 到路由器 VPN-A-Tokyo 的 VPN A 中的路由分配如下:
客户边缘 (客户边缘) 路由器 VPN-A-Paris 公布 PE 路由器 A 的路由。
路由器 A 将收到的已公布路由安装到其 VPN 路由和转发 (VRF) 表中,即 VPN-A.inet.0 。
路由器 A 会为 MPLS与路由器 VPN-A-Paris 之间的接口创建一个安全标签。
路由器 A 检查其 VRF 导出策略。
路由器 A 使用其路由识别器将互联网协议版本 4 (IPv4) 路由从路由器 VPN-A-Paris 转换为 VPN IPv4 格式,然后通过两个 PE 路由器之间的 IBGP 宣布这些路由至 PE 路由器 C。
路由器 C 检查其 VRF 导入策略,将符合策略的所有路由安装到其 bgp.l3vpn.0 路由表中。(不匹配的任何路由都将被丢弃。)
路由器 C 检查其 VRF 导入策略,并安装所有匹配到其 VPN-A.inet.0 路由表中的路由。路由以 IPv4 格式安装。
路由器 C 宣布客户边缘路由器 VPN-A-Tokyo,该路由器将其安装到其主路由表中。(对于运行 Junos OS 的路由平台,主路由表是 inet.0。)
路由器 C 在路由器 C 和路由器 A 之间使用 LSP 从路由器 VPN-A-Tokyo 路由发往路由器 VPN-A-Paris 的所有数据包。
此示例的最后一节整合了在每个服务 P 路由器上配置 VPN 功能所需的语句,如 图 1 所示。
此示例为路由识别器及路由目标使用专用自治系统 (AS) 编号。此数字仅用于插图。配置 VPN 时,应该使用分配的AS编号。
以下部分介绍如何在 PE 和 P 路由器上配置 VPN 功能。路由器客户边缘 VPN 信息,因此您可以正常配置它们。
- 在 PE IGP P 路由器上启用路由
- 在 P 路由器MPLS RSVP 和路由
- 在 PE MPLS之间配置 LSP 隧道
- 在 PE 路由器上配置 IBGP
- 在 PE 路由器上配置 VPN 的路由实例
- 在 PE 路由器上配置 VPN 策略
- 路由器汇总的简单 VPN 配置
在 PE IGP P 路由器上启用路由
要允许 PE 和 P 路由器相互交换路由信息,您必须在所有这些路由器上配置内部网关协议 (IGP),或者必须配置静态路由。您可以在路由协议进程 (rpd) 的主实例(即层级)上配置 IGP,而不是 VPN 路由实例(即不在层级)。 [edit protocols]
[edit routing-instances]
您可IGP标准方式配置网络。此配置示例不包括此配置部分。
在 P 路由器上MPLS RSVP 和路由
在 P 路由器 B 上,您必须配置 RSVP 和 MPLS,因为此路由器存在于两个 PE 路由器(路由器 A 和路由器 C)之间的 MPLS LSP 路径上:
[edit] protocols { rsvp { interface so-4/0/0.0; interface so-6/0/0.0; } mpls { interface so-4/0/0.0; interface so-6/0/0.0; } }
在 PE MPLS之间配置 LSP 隧道
在此配置示例中,RSVP 用于 VPN 信号发送。因此,除了配置 RSVP,还必须在虚拟设备中启用信息流工程IGP并且必须创建一个MPLS LSP 来为 VPN 信息流建立隧道。
在 PE 路由器 A 上,启用 RSVP 并配置 LSP 通道MPLS端。此示例为安全网络启用了信息流工程OSPF。配置 LSP MPLS时,请包括参与 MPLS 的所有接口的语句,包括 PE 和 客户边缘 interface
路由器的接口。PE 路由器与 客户边缘之间的接口语句需要,以便 PE 路由器可创建专用MPLS标签。在这种情况下,第一个语句MPLS连接到 LSP 的接口上的配置,其余三个语句在将 PE 路由器连接到 客户边缘 路由器的接口上配置 interface
MPLS。
[edit] protocols { rsvp { interface so-3/0/0.0; } mpls { label-switched-path RouterA-to-RouterC { to 10.255.245.47; } interface so-3/0/0.0; interface so-6/0/0.0; interface so-6/0/1.0; interface ge-0/3/0.0; } ospf { traffic-engineering; area 0.0.0.0 { interface so-3/0/0.0; } } }
在 PE 路由器 C 上,启用 RSVP 并配置 LSP 通道MPLS端。同样,流量工程支持OSPF,您可以在与 LSP 和 客户边缘路由器的接口上配置MPLS路由。
[edit] protocols { rsvp { interface so-2/0/0.0; } mpls { label-switched-path RouterC-to-RouterA { to 10.255.245.68; } interface so-2/0/0.0; interface ge-1/0/0.0; interface at-1/2/0.0; } ospf { traffic-engineering; area 0.0.0.0 { interface so-2/0/0.0; } } }
在 PE 路由器上配置 IBGP
在 PE 路由器上,使用以下属性配置 IBGP 会话:
VPN 家族 - 要指示 IBGP 会话用于 VPN,请包含
family inet-vpn
该语句。环路地址 — 包括
local-address
语句,指定本地 PE 路由器的环路地址。VPN 的 IBGP 会话通过环路地址运行。您还必须在lo0
层次结构级别配置[edit interfaces]
接口。示例不包括路由器配置的这一部分。邻接地址 — 包括 语句,指定邻接 PE 路由器的 IP 地址
neighbor
,这是其环路 (lo0
) 地址。
在 PE 路由器 A 上,配置 IBGP:
[edit] protocols { bgp { group PE-RouterA-to-PE-RouterC { type internal; local-address 10.255.245.68; family inet-vpn { unicast; } neighbor 10.255.245.47; } } }
在 PE 路由器 C 上,配置 IBGP:
[edit] protocols { bgp { group PE-RouterC-to-PE-RouterA { type internal; local-address 10.255.245.47; family inet-vpn { unicast; } neighbor 10.255.245.68; } } }
在 PE 路由器上配置 VPN 的路由实例
两个 PE 路由器都服务 VPN-A 和 VPN-B,因此您必须在每个路由器上配置两个路由实例,每个 VPN 一个。对于每个 VPN,您必须在路由实例中定义以下项:
路由区分器,必须为 PE 路由器上的每个路由实例唯一。
它用于区分一个 VPN 中的地址与另一个 VPN 中的地址。
的实例类型
vrf
,在 PE 路由器上创建 VRF 表。连接到路由器的客户边缘。
VRF 导入和导出策略,在提供相同 VPN 的每个 PE 路由器上必须相同。除非导入策略仅包含
then reject
一个语句,否则它必须包括对社区的参考。否则,当您尝试提交配置时,提交失败。注意:此示例为路由识别AS专用路由编号。此数字仅用于插图。配置 VPN 时,应该使用分配的AS编号。
PE 路由器与 客户边缘 路由器之间的路由,PE 路由器需要此路由将 VPN 相关路由分发至已连接路由器客户边缘路由。您可以配置路由协议(BGP、OSPF或 RIP)或者配置静态路由。
在 PE 路由器 A 上,为 VPN-A 配置以下路由实例。此示例中,路由器 A 使用静态路由将路由分配至与客户边缘路由器之间的路由。
[edit] routing-instance { VPN-A-Paris-Munich { instance-type vrf; interface so-6/0/0.0; interface so-6/0/1.0; route-distinguisher 65535:0; vrf-import VPN-A-import; vrf-export VPN-A-export; routing-options { static { route 172.16.0.0/16 next-hop so-6/0/0.0; route 172.17.0.0/16 next-hop so-6/0/1.0; } } } }
在 PE 路由器 C 上,为 VPN-A 配置以下路由实例。此示例中,路由器 C 使用BGP将路由分配至客户边缘路由器的路由。
[edit] routing-instance { VPN-A-Tokyo { instance-type vrf; interface ge-1/0/0.0; route-distinguisher 65535:1; vrf-import VPN-A-import; vrf-export VPN-A-export; protocols { bgp { group VPN-A-Site2 { peer-as 1; neighbor 10.12.1.2; } } } } }
在 PE 路由器 A 上,为 VPN-B 配置以下路由实例。此示例中,路由器 A OSPF将路由分配至客户边缘路由器的路由。
[edit] policy-options { policy-statement bgp-to-ospf { from { protocol bgp; route-filter 192.168.1.0/24 orlonger; } then accept; } } routing-instance { VPN-B-Madrid { instance-type vrf; interface ge-0/3/0.0; route-distinguisher 65535:2; vrf-import VPN-B-import; vrf-export VPN-B-export; protocols { ospf { export bgp-to-ospf; area 0.0.0.0 { interface ge-0/3/0; } } } } }
在 PE 路由器 C 上,为 VPN-B 配置以下路由实例。此示例中,路由器 C 使用 RIP 将路由分配至客户边缘路由器的路由。
[edit] policy-options { policy-statement bgp-to-rip { from { protocol bgp; route-filter 192.168.2.0/24 orlonger; } then accept; } } routing-instance { VPN-B-Osaka { instance-type vrf; interface at-1/2/0.0; route-distinguisher 65535:3; vrf-import VPN-B-import; vrf-export VPN-B-export; protocols { rip { group PE-C-to-VPN-B { export bgp-to-rip; neighbor at-1/2/0; } } } } }
在 PE 路由器上配置 VPN 策略
在每个 PE 路由器上配置 VPN 导入和导出策略,以便将相应的路由安装在 PE 路由器的 VRF 表中。VRF 表用于在 VPN 内转发数据包。对于 VPN-A,VRF 表是 VPN-A.inet.0,对于 VPN-B,它是 VPN-B.inet.0。
在 VPN 策略中,您也可配置 VPN 目标社区。
以下示例中,路由AS专用路由编号。此数字仅用于插图。配置 VPN 时,应该使用分配的AS编号。此示例中显示的策略资格只是 VPN 正常工作所需的条件。您可以根据需要为配置的任何策略配置其他资格资格。
在 PE 路由器 A 上,配置以下 VPN 导入和导出策略:
[edit] policy-options { policy-statement VPN-A-import { term a { from { protocol bgp; community VPN-A; } then accept; } term b { then reject; } } policy-statement VPN-A-export { term a { from protocol static; then { community add VPN-A; accept; } } term b { then reject; } } policy-statement VPN-B-import { term a { from { protocol bgp; community VPN-B; } then accept; } term b { then reject; } } policy-statement VPN-B-export { term a { from protocol ospf; then { community add VPN-B; accept; } } term b { then reject; } } community VPN-A members target:65535:4; community VPN-B members target:65535:5; }
在 PE 路由器 C 上,配置以下 VPN 导入和导出策略:
[edit] policy-options { policy-statement VPN-A-import { term a { from { protocol bgp; community VPN-A; } then accept; } term b { then reject; } } policy-statement VPN-A-export { term a { from protocol bgp; then { community add VPN-A; accept; } } term b { then reject; } } policy-statement VPN-B-import { term a { from { protocol bgp; community VPN-B; } then accept; } term b { then reject; } } policy-statement VPN-B-export { term a { from protocol rip; then { community add VPN-B; accept; } } term b { then reject; } } community VPN-A members target:65535:4; community VPN-B members target:65535:5; }
要向路由器应用 VPN 策略,在配置路由实例时请包括 vrf-export
vrf-import
和 语句。对于两个 VPN,VRF 导入和导出策略将处理 PE 路由器之间运行的 IBGP 会话中的路由分配。
要应用 PE 路由器 A 上的 VPN 策略,请包括以下语句:
[edit] routing-instance { VPN-A-Paris-Munich { vrf-import VPN-A-import; vrf-export VPN-A-export; } VPN-B-Madrid { vrf-import VPN-B-import; vrf-export VPN-B-export; } }
要应用 PE 路由器 C 上的 VPN 策略,请包含以下语句:
[edit] routing-instance { VPN-A-Tokyo { vrf-import VPN-A-import; vrf-export VPN-A-export; } VPN-B-Osaka { vrf-import VPN-B-import; vrf-export VPN-B-export; } }
路由器汇总的简单 VPN 配置
路由器 A(PE 路由器)
VPN-A 的路由实例
routing-instance { VPN-A-Paris-Munich { instance-type vrf; interface so-6/0/0.0; interface so-6/0/1.0; route-distinguisher 65535:0; vrf-import VPN-A-import; vrf-export VPN-A-export; } }
实例路由协议
routing-options { static { route 172.16.0.0/16 next-hop so-6/0/0.0; route 172.17.0.0/16 next-hop so-6/0/1.0; } }
VPN-B 的路由实例
routing-instance { VPN-B-Madrid { instance-type vrf; interface ge-0/3/0.0; route-distinguisher 65535:2; vrf-import VPN-B-import; vrf-export VPN-B-export; } }
实例路由协议
protocols { ospf { area 0.0.0.0 { interface ge-0/3/0; } } }
主协议实例
protocols { }
启用 RSVP
rsvp { interface so-3/0/0.0; }
配置 MPLS LSP
mpls { label-switched-path RouterA-to-RouterC { to 10.255.245.47; } interface so-3/0/0.0; interface so-6/0/0.0; interface so-6/0/1.0; interface ge-0/3/0.0; }
配置 IBGP
bgp { group PE-RouterA-to-PE-RouterC { type internal; local-address 10.255.245.68; family inet-vpn { unicast; } neighbor 10.255.245.47; } }
配置OSPF工程支持
ospf { traffic-engineering; area 0.0.0.0 { interface so-3/0/0.0; } }
配置 VPN 策略
policy-options { policy-statement VPN-A-import { term a { from { protocol bgp; community VPN-A; } then accept; } term b { then reject; } } policy-statement VPN-A-export { term a { from protocol static; then { community add VPN-A; accept; } } term b { then reject; } } policy-statement VPN-B-import { term a { from { protocol bgp; community VPN-B; } then accept; } term b { then reject; } } policy-statement VPN-B-export { term a { from protocol ospf; then { community add VPN-B; accept; } } term b { then reject; } } community VPN-A members target:65535:4; community VPN-B members target:65535:5; }
路由器 B(P 路由器)
主协议实例
protocols { }
启用 RSVP
rsvp { interface so-4/0/0.0; interface so-6/0/0.0; }
启用MPLS
mpls { interface so-4/0/0.0; interface so-6/0/0.0; }
路由器 C(PE 路由器)
VPN-A 的路由实例
routing-instance { VPN-A-Tokyo { instance-type vrf; interface ge-1/0/0.0; route-distinguisher 65535:1; vrf-import VPN-A-import; vrf-export VPN-A-export; } }
实例路由协议
protocols { bgp { group VPN-A-Site2 { peer-as 1; neighbor 10.12.1.2; } } }
VPN-B 的路由实例
VPN-B-Osaka { instance-type vrf; interface at-1/2/0.0; route-distinguisher 65535:3; vrf-import VPN-B-import; vrf-export VPN-B-export; }
实例路由协议
protocols { rip { group PE-C-to-VPN-B { neighbor at-1/2/0; } } }
主协议实例
protocols { }
启用 RSVP
rsvp { interface so-2/0/0.0; }
配置 MPLS LSP
mpls { label-switched-path RouterC-to-RouterA { to 10.255.245.68; } interface so-2/0/0.0; interface ge-1/0/0.0; interface at-1/2/0.0; }
配置 IBGP
bgp { group PE-RouterC-to-PE-RouterA { type internal; local-address 10.255.245.47; family inet-vpn { unicast; } neighbor 10.255.245.68; } }
为OSPF工程支持配置策略
ospf { traffic-engineering; area 0.0.0.0 { interface so-2/0/0.0; } }
配置 VPN 策略
policy-options { policy-statement VPN-A-import { term a { from { protocol bgp; community VPN-A; } then accept; } term b { then reject; } } policy-statement VPN-A-export { term a { from protocol bgp; then { community add VPN-A; accept; } } term b { then reject; } } policy-statement VPN-B-import { term a { from { protocol bgp; community VPN-B; } then accept; } term b { then reject; } } policy-statement VPN-B-export { term a { from protocol rip; then { community add VPN-B; accept; } } term b { then reject; } } community VPN-A members target:65535:4; community VPN-B members target:65535:5; }
使用路由反射器配置全网状 VPN 拓扑
此示例是全网状 VPN 拓扑示例(在 配置简单全网状 VPN拓扑中介绍)的变体,其中一个 PE 路由器是一BGP反射器。在此变体中, 配置简单 全网状 VPN 拓扑中的路由器 C 是路由反射器。其配置的唯一更改是,在配置组时,需要 cluster
包含 语句BGP:
[edit] protocols { bgp { group PE-RouterC-to-PE-RouterA { type internal; local-address 10.255.245.47; family inet-vpn { unicast; } neighbor 10.255.245.68; cluster 4.3.2.1; } } }