基于 BGP 的 VPN
了解运营商中的运营商 VPN
VPN 服务提供商的客户可能是最终客户的服务提供商。以下是两种主要类型的载波至载波 VPN(如 RFC 4364 所述):
作为客户的互联网服务提供商— VPN 客户是使用 VPN 服务提供商的网络连接其地理上不同的区域网络的 ISP。客户不必在其区域网络中配置 MPLS。
作为客户的 VPN 服务提供商—VPN 客户本身就是一家向客户提供 VPN 服务的 VPN 服务提供商。运营商间 VPN 服务客户依赖主干 VPN 服务提供商进行站点间连接。客户 VPN 服务提供商需要在其区域网络中运行 MPLS。
图 1 展示了用于运营商级 VPN 服务的网络架构。

本主题涵盖以下内容:
作为客户的互联网服务提供商
在这种载波至载波 VPN 配置中,ISP A 将其网络配置为向 ISP B 提供互联网服务。ISP B 提供与需要互联网服务的客户的连接,但实际互联网服务由 ISP A 提供。
这种类型的载波式 VPN 配置具有以下特征:
载波至载波 VPN 服务客户 (ISP B) 无需在其网络上配置 MPLS。
运营商级 VPN 服务提供商 (ISP A) 必须在其网络上配置 MPLS。
此外,还必须在运营商的 VPN 服务客户和运营商的运营商 VPN 服务提供商网络中连接的 CE 路由器和 PE 路由器上配置 MPLS。
作为客户的 VPN 服务提供商
VPN 服务提供商可以让客户自己是 VPN 服务提供商。在这种配置(也称为分层或递归 VPN)中,客户 VPN 服务提供商的 VPN-IPv4 路由被视为外部路由,而主干 VPN 服务提供商不会将其导入其 VRF 表中。主干 VPN 服务提供商仅将客户 VPN 服务提供商的内部路由导入其 VRF 表中。
提供商间 VPN 与运营商间 VPN 的异同之处如中 表 1所示。
功能 |
ISP 客户 |
VPN 服务提供商客户 |
---|---|---|
客户边缘设备 |
AS 边界路由器 |
PE 路由器 |
IBGP 会话 |
携带 IPv4 路由 |
携带带有关联标签的外部 VPN-IPv4 路由 |
客户网络内的转发 |
MPLS 可选 |
需要 MPLS |
从 Junos OS 17.1R1 版开始,QFX10000 交换机支持作为客户的 VPN 服务。
了解跨运营商和运营商的 VPN
所有提供商间和运营商间 VPN 均具有以下特征:
每个跨提供商或运营商的 VPN 客户都必须区分内部和外部客户路由。
内部客户路由必须由 VPN 服务提供商在其 PE 路由器中维护。
外部客户路由仅由客户的路由平台承载,VPN 服务提供商的路由平台不承载。
提供商间 VPN 和运营商级 VPN 之间的主要区别在于客户站点是属于同一 AS 还是属于单独的 AS:
提供商间 VPN — 客户站点属于不同的 AS。您需要配置 EBGP 来交换客户的外部路由。
了解运营商中的运营商 VPN — 客户站点属于同一 AS。您需要配置 IBGP 来交换客户的外部路由。
通常,VPN 层次结构中的每个服务提供商都需要在其 P 路由器中维护自己的内部路由,并在其 PE 路由器中维护客户的内部路由。通过递归应用此规则,可以创建 VPN 层次结构。
以下是特定于提供商间 VPN 和运营商运营商 VPN 的 PE 路由器类型:
AS 边界路由器位于 AS 边界处,可处理离开和进入 AS 的流量。
终端 PE 路由器是客户 VPN 中的 PE 路由器;连接到最终客户站点的 CE 路由器
为提供 VPN 服务的客户配置载波至载波 VPN
您可以为需要 VPN 服务的客户配置运营商间 VPN 服务。
要配置客户和提供商网络中的路由器(或交换机),以启用运营商级 VPN 服务,请执行以下部分中的步骤:
配置载波至运营商客户的 PE 路由器
运营商级运营商客户的 PE 路由器(或交换机)连接到最终客户的 CE 路由器(或交换机)。
以下部分介绍如何配置运营商的运营商级运营商的 PE 路由器(或交换机):
配置 MPLS
要配置载波至运营商客户的 PE 路由器(或交换机)MPLS,请添加以下 mpls
语句:
mpls { interface interface-name; interface interface-name; }
您可以在以下层级包含此语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 BGP
labeled-unicast
在 IBGP 会话到运营商的 CE 路由器(或交换机)的配置中包括该语句,并将 IBGP 会话的语句添加到family-inet-vpn
网络另一端的运营商级 PE 路由器(或交换机)的 IBGP 会话配置中:
bgp { group group-name { type internal; local-address address; neighbor address { family inet { labeled-unicast; resolve-vpn; } } } neighbor address { family inet-vpn { any; } } }
您可以在以下层次结构级别包括这些语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 OSPF
要配置运营商的 PE 路由器(或交换机)上的 OSPF,请添加以下 ospf
语句:
ospf { area area-id { interface interface-name { passive; } interface interface-name; } }
您可以在以下层级包含此语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 LDP
要配置载波运营商的 PE 路由器(或交换机)上的 LDP,请添加以下 ldp
语句:
ldp { interface interface-name; }
您可以在以下层级包含此语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
在路由实例中配置 VPN 服务
要为最终客户的 CE 路由器(或交换机)配置 VPN 服务,请在运营商的 PE 路由器(或交换机)上,包括以下语句:
instance-type vrf; interface interface-name; route-distinguisher address; vrf-import policy-name; vrf-export policy-name; protocols { bgp { group group-name { peer-as as-number; neighbor address; } } }
您可以在以下层次结构级别包括这些语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
配置策略选项
要配置用于从最终客户的 CE 路由器(或交换机)导入和导出路由的策略选项,请添加 policy-statement
和 community
语句:
policy-statement policy-name { term term-name { from { protocol bgp; community community-name; } then accept; } term term-name { then reject; } } policy-statement policy-name { term term-name { from protocol bgp; then { community add community-name; accept; } } term term-name { then reject; } } community community-name members value;
您可以在以下层次结构级别包括这些语句:
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
配置运营商中的运营商客户的 CE 路由器(或交换机)
运营商的运营商-运营商客户的 CE 路由器(或交换机)连接到提供商的 PE 路由器(或交换机)。完成以下部分中的说明,以配置运营商级运营商客户的 CE 路由器(或交换机):
配置 MPLS
在运营商的 CE 路由器(或交换机)的 MPLS 配置中,包括提供商 PE 路由器(或交换机)和客户网络中 P 路由器(或交换机)的接口:
mpls { traffic-engineering bgp-igp; interface interface-name; interface interface-name; }
您可以在以下层次结构级别包括这些语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 BGP
在运营商级客户的 CE 路由器(或交换机)的 BGP 配置中,配置一个包含将 VPN 服务扩展到最终客户的 CE 路由器(或交换机)的语句的组 labeled-unicast
:
bgp { group group-name { type internal; local-address address; neighbor address { family inet { labeled-unicast; } } } }
您可以在以下层级包含语句 bgp
:
[edit protocols]
[edit logical-systems logical-system-name protocols]
要配置一个组,以便将标记的内部路由发送到提供商的 PE 路由器(或交换机),请添加以下 bgp
语句:
bgp { group group-name { export internal; peer-as as-number; neighbor address { family inet { labeled-unicast; } } } }
您可以在以下层级包含此语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 OSPF 和 LDP
要配置 OSPF 和 LDP 的运营商的 CE 路由器(或交换机),请添加 ospf
和 ldp
语句:
ospf { area area-id { interface interface-name { passive; } interface interface-name; } } ldp { interface interface-name; }
您可以在以下层次结构级别包括这些语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置策略选项
要配置载波至运营商客户的 CE 路由器(或交换机)上的策略选项,请添加以下 policy-statement
语句:
policy-statement policy-statement-name { term term-name { from protocol [ ospf direct ldp ]; then accept; } term term-name { then reject; } }
您可以在以下层级包含此语句:
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
配置提供商的 PE 路由器或交换机
运营商中的运营商提供商的 PE 路由器(或交换机)连接到运营商客户的 CE 路由器(或交换机)。完成以下部分中的说明以配置提供商的 PE 路由器(或交换机):
配置 MPLS
在 MPLS 配置中,至少指定两个接口—一个连接到客户的 CE 路由器(或交换机),一个用于连接到提供商网络另一端的 PE 路由器(或交换机):
interface interface-name; interface interface-name;
您可以在以下层次结构级别包括这些语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
配置 PE 到 PE BGP 会话
要配置提供商的 PE 路由器(或交换机)上的 PE 到 PE BGP 会话,以允许 VPN-IPv4 路由在 PE 路由器(或交换机)之间传递,请添加以下 bgp
语句:
bgp { group group-name { type internal; local-address address; family inet-vpn { any; } neighbor address; } }
您可以在以下层级包含此语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 IS-IS 和 LDP
要配置提供商的 PE 路由器(或交换机)上的 IS-IS 和 LDP,请添加 isis
和 ldp
语句:
isis { interface interface-name; interface interface-name { passive; } } ldp { interface interface-name; }
您可以在以下层次结构级别包括这些语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置策略选项
要配置提供商的 PE 路由器(或交换机)上的策略语句,以便将路由导出到运营商客户的网络以及从运营商客户网络导入路由,请包括 policy-statement
和 community
语句:
policy-statement statement-name { term term-name { from { protocol bgp; community community-name; } then accept; } term term-name { then reject; } } policy-statement statement-name { term term-name { from protocol bgp; then { community add community-name; accept; } } term term-name { then reject; } } community community-name members value;
您可以在以下层次结构级别包括这些语句:
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
配置路由实例以将路由发送到 CE 路由器
要配置提供商 PE 路由器(或交换机)上的路由实例,以便将带有标签的路由发送到运营商客户的 CE 路由器(或交换机),请执行以下操作:
instance-type vrf; interface interface-name; route-distinguisher value; vrf-import policy-name; vrf-export policy-name; protocols { bgp { group group-name { peer-as as-number; neighbor address { family inet { labeled-unicast; } } } } }
您可以在以下层次结构级别包括这些语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]