基于 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 服务提供商的网络中连接在一起的客户边缘路由器和 PE 路由器上配置 MPLS。
VPN 服务提供商作为客户
VPN 服务提供商的客户本身可以是 VPN 服务提供商。在这种类型的配置(也称为分层或递归 VPN)中,客户 VPN 服务提供商的 VPN-IPv4 路由被视为外部路由,骨干 VPN 服务提供商不会将其导入其 VRF 表中。主干 VPN 服务提供商仅将客户 VPN 服务提供商的内部路由导入其 VRF 表中。
提供商 表 1间 VPN 和运营商间 VPN 之间的异同如如 中所示。
功能 |
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 层次结构中的每个服务提供商都需要在其 P 路由器中维护自己的内部路由,并在其 PE 路由器中维护其客户的内部路由。通过递归应用此规则,可以创建VPN层次结构。
以下是特定于提供商间和运营商间 VPN 的 PE 路由器类型的定义:
AS 边界路由器位于 AS 边界,负责处理进出 AS 的流量。
终端 PE 路由器是客户 VPN 中的 PE 路由器;它连接到最终客户站点的客户边缘路由器。
为提供 VPN 服务的客户配置运营商间 VPN
您可以为需要 VPN 服务的客户配置载波至载波 VPN 服务。
要在客户和提供商的网络中配置路由器(或交换机)以启用载波至载波 VPN 服务,请执行以下步骤:
配置载波至载波客户的 PE 路由器
载波至载波客户的 PE 路由器(或交换机)连接到最终客户的客户边缘路由器(或交换机)。
以下部分介绍如何配置载波至载波客户的 PE 路由器(或交换机):
配置 MPLS
要在载波至载波客户的 PE 路由器(或交换机)上配置 MPLS,请包含以下 mpls
语句:
mpls { interface interface-name; interface interface-name; }
您可以在以下层次结构级别包含此语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 BGP
在与载波至载波客户客户边缘路由器(或交换机)的 IBGP 会话配置中包括该labeled-unicast
语句,并将该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 服务
要在载波至载波客户的 PE 路由器(或交换机)上为最终客户的客户边缘路由器(或交换机)配置 VPN 服务,请包括以下语句:
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]
配置策略选项
要配置策略选项以导入和导出与最终客户的客户边缘路由器(或交换机)之间的路由,请包括 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]
配置载波至载波客户的客户边缘路由器(或交换机)
载波至载波客户的客户边缘路由器(或交换机)连接到提供商的 PE 路由器(或交换机)。完成以下部分中的说明,配置载波至载波客户的客户边缘路由器(或交换机):
配置 MPLS
在载波至载波客户的客户边缘路由器(或交换机)的 MPLS 配置中,包括到提供商的 PE 路由器(或交换机)和客户网络中的 P 路由器(或交换机)的接口:
mpls { traffic-engineering bgp-igp; interface interface-name; interface interface-name; }
您可以在以下层次结构级别包含这些语句:
[edit protocols]
[edit logical-systems logical-system-name protocols]
配置 BGP
在载波至载波客户的客户边缘路由器(或交换机)的 BGP 配置中,配置一个包含语句的 labeled-unicast
组,以将 VPN 服务扩展到连接到最终客户的客户边缘路由器(或交换机)的 PE 路由器(或交换机):
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,请添加 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]
配置策略选项
要在载波至载波客户的客户边缘路由器(或交换机)上配置策略选项,请包含以下 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 路由器(或交换机)连接到运营商客户的客户边缘路由器(或交换机)。完成以下部分中的说明以配置提供商的 PE 路由器(或交换机):
配置 MPLS
在 MPLS 配置中,至少指定两个接口,一个连接到客户的客户边缘路由器(或交换机),另一个连接到提供商网络另一端的提供商 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
and 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]
配置路由实例以将路由发送到客户边缘路由器
要在提供商的 PE 路由器(或交换机)上配置路由实例,以便将标记的路由发送到运营商客户的客户边缘路由器(或交换机),请包含以下语句:
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]
另请参阅
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。