中心辐射型 VPN
配置中心辐射型 VPN 拓扑结构: 一个接口
使用单接口配置从一个或多个中枢播发默认路由。
的中心辐射型 VPN 拓扑示例
图 1 展示了一个第 3 层 VPN 中心辐射型应用,其中集线器 CE (CE1) 和集线器 PE (PE1) 之间只有一个接口。这是配置中心辐射型拓扑的推荐方法。
在此配置中,默认路由将从中枢播发到分支。如果需要在分支 CE 路由器之间交换更具体的分支 CE 路由,则在中枢 CE 和中枢 PE 之间需要两个接口。有关双接口示例,请参阅配置中心辐射型 VPN 拓扑:两个接口。
在此配置示例中,分支路由分布如下:
-
Spoke CE2 宣传其前往 PE2 的路由。
-
分支 PE2 将来自 CE2 的路由安装到其 VPN 路由和转发 (VRF) 表中。
-
分支 PE2 检查其 VRF 导出策略,添加路由目标社区,并通告到中枢 PE1 的路由。
-
集线器 PE1 检查其 VRF 导入策略,并将与导入策略匹配的路由安装到表 bgp.l3vpn.0 中。
-
中心 PE1 将表 bgp.l3vpn.0 中的路由安装到中心 VRF 表中。
-
集线器 PE1 播告从集线器 VRF 表到集线器 CE1 的路由。
在此配置示例中,默认路由分布如下:
-
集线器 CE1 播告到集线器 PE1 的默认路由。
-
中心 PE1 将默认路由安装到中心 VRF 表中。
-
中心 PE1 检查其 VRF 导出策略,添加路由目标社区,并通告分支 PE2 和 PE3 的默认路由。
-
分支 PE2 和 PE3 检查其 VRF 导入策略,并将默认路由安装到表 bgp.l3vpn.0 中。
-
分支 PE2 和 PE3 将表 bgp.l3vpn.0 中的路由安装到其分支 VRF 表中。
-
分支 PE2 和 PE3 通告从分支 VRF 表到分支 CE2 和 CE3 的默认路由。
以下各节介绍如何基于 图 1 所示的拓扑配置具有一个接口的中心辐射型拓扑:
配置 Hub CE1
按如下方式配置集线器 CE1:
[edit routing-options]
static {
route 0.0.0.0/0 discard;
}
autonomous-system 100;
[edit protocols]
bgp {
group hub {
type external;
export default;
peer-as 200;
neighbor 10.49.4.1;
}
}
[edit policy-options]
policy-statement default {
term 1 {
from {
protocol static;
route-filter 0.0.0.0/0 exact;
}
then accept;
}
term 2 {
then reject;
}
}
配置集线器 PE1
按如下方式配置集线器 PE1:
[edit]
routing-instances {
hub {
instance-type vrf;
interface t3-0/0/0;
route-distinguisher 10.255.14.176:2;
vrf-target {
import target:200:100;
export target:200:101;
}
protocols {
bgp {
group hub {
type external;
peer-as 100;
as-override;
neighbor 10.49.4.2;
}
}
}
}
}
配置 P 路由器
按以下步骤配置 P 路由器:
[edit]
interfaces {
t3-0/1/1 {
unit 0 {
family inet {
address 10.49.2.1/30;
}
family mpls;
}
}
t3-0/1/3 {
unit 0 {
family inet {
address 10.49.0.2/30;
}
family mpls;
}
}
t1-0/2/0 {
unit 0 {
family inet {
address 10.49.1.2/30;
}
family mpls;
}
}
}
[edit]
protocols {
ospf {
area 0.0.0.0 {
interface t3-0/1/3.0;
interface t1-0/2/0.0;
interface t3-0/1/1.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface t3-0/1/1.0;
interface t3-0/1/3.0;
interface t1-0/2/0.0;
}
}
配置分支 PE2
按如下方式配置分支 PE2:
[edit]
interfaces {
t3-0/0/0 {
unit 0 {
family inet {
address 10.49.0.1/30;
}
family mpls;
}
}
t1-0/1/2 {
unit 0 {
family inet {
address 10.49.3.1/30;
}
}
}
}
[edit protocols]
bgp {
group ibgp {
type internal;
local-address 10.255.14.182;
peer-as 200;
neighbor 10.255.14.176 {
family inet-vpn {
unicast;
}
}
}
}
ospf {
area 0.0.0.0 {
interface t3-0/0/0.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface t3-0/0/0.0;
}
[edit]
routing-instances {
spoke {
instance-type vrf;
interface t1-0/1/2.0;
route-distinguisher 10.255.14.182:20;
vrf-target {
import target:200:101;
export target:200:100;
}
protocols {
bgp {
group spoke {
type external;
peer-as 100;
as-override;
neighbor 10.49.3.2;
}
}
}
}
}
配置分支 PE3
按如下方式配置分支 PE3:
[edit]
interfaces {
t3-0/0/0 {
unit 0 {
family inet {
address 10.49.6.1/30;
}
}
}
t3-0/0/1 {
unit 0 {
family inet {
address 10.49.2.2/30;
}
family mpls;
}
}
}
[edit protocols}
bgp {
group ibgp {
type internal;
local-address 10.255.14.178;
peer-as 200;
neighbor 10.255.14.176 {
family inet-vpn {
unicast;
}
}
}
}
ospf {
area 0.0.0.0 {
interface t3-0/0/1.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface t3-0/0/1.0;
}
[edit]
routing-instances {
spoke {
instance-type vrf;
interface t3-0/0/0.0;
route-distinguisher 10.255.14.178:30;
vrf-target {
import target:200:101;
export target:200:100;
}
protocols {
bgp {
group spoke {
type external;
peer-as 100;
as-override;
neighbor 10.49.6.2;
}
}
}
}
}
配置分支 CE2
按如下方式配置分支 CE2:
[edit routing-options]
autonomous-system 100;
{edit protocols]
bgp {
group spoke {
type external;
export loopback;
peer-as 200;
neighbor 10.49.3.1;
}
}
配置分支 CE3
按如下方式配置分支 CE3:
[edit routing-options]
autonomous-system 100;
[edit protocols]
bgp {
group spoke {
type external;
export loopback;
peer-as 200;
neighbor 10.49.6.1;
}
}
在此配置示例中,分支 CE2 和中枢 CE1 之间的流量转发如下所示:
-
分支 CE2 使用从分支 PE2 到 BGP 获知的默认路由转发流量。
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0 -
分支 PE2 在分支 VRF 表中执行路由查找,并使用通过 BGP 获知的默认路由将流量转发至中枢 PE1(通过 P 路由器 — PE2 推送两个标签)。
0.0.0.0/0 *[BGP/170] 01:35:45, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/1.0, Push 100336, Push 100224(top) -
Hub PE1 会在 mpls.0 表中查找 VPN 标签
100336的路由。100336 *[VPN/170] 01:37:03 > to 10.49.4.2 via t3-0/0/0.0, Pop -
集线器 PE1 将流量从接口
t3-0/0/0.0转发到集线器 CE1。
在此配置示例中,中枢 CE1 和分支 CE2 之间的流量转发如下:
-
中枢 CE1 使用通过 BGP 获知的路由将流量转发至中枢 PE1。
10.49.10.250/32 *[BGP/170] 02:28:46, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0 -
集线器 PE1 在集线器 VRF 表中查找路由,并将流量转发至分支 PE2(通过 P 路由器 — PE1 推送两个标签)。
10.49.10.250/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.182 AS path: 100 I > via t1-0/1/0.0, Push 100352, Push 100208(top) -
分支 PE2 在 mpls.0 表中查找 VPN 标签
100352的路由。100352 *[VPN/170] 02:31:39 > to 10.49.3.2 via t1-0/1/2.0, Pop -
分支 PE2 将流量从接口
t1-0/1/2.0转发到分支 CE2。
在此配置示例中,分支 CE2 和分支 CE3 之间的流量转发如下:
-
分支 CE2 使用从分支 PE2 到 BGP 获知的默认路由转发流量。
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0 -
分支 PE2 在分支 VRF 表中查找路由,并使用通过 BGP 获知的默认路由将流量转发到中枢 PE1(通过 P 路由器 — PE2 推送两个标签)。
0.0.0.0/0 *[BGP/170] 01:35:45, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/1.0, Push 100336, Push 100224(top) -
Hub PE1 会在 mpls.0 表中查找 VPN 标签
100336的路由。100336 *[VPN/170] 01:37:03 > to 10.49.4.2 via t3-0/0/0.0, Pop -
中枢 PE1 将流量从接口
t3-0/0/0.0转发到中枢 CE1。 -
集线器 CE1 使用通过 BGP 获知的路由器将流量转发至集线器 PE1。
10.49.10.253/32 *[BGP/170] 02:40:03, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0 -
中心 PE1 在中心 VRF 表中查找路由,并将流量转发到分支 PE3(通过 P 路由器 — PE1 推送两个标签)。
10.49.10.253/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top) -
分支 PE3 会在 mpls.0 表中查找 VPN 标签
100128的路由。100128 *[VPN/170] 02:41:30 > to 10.49.6.2 via t3-0/0/0.0, Pop -
分支 PE3 将流量从接口
t3-0/0/0.0转发到分支 CE3。
如果中枢 PE 上需要需要在中枢 VRF 路由表上进行 IP 转发查找的出口功能,请参阅在中枢 PE 路由器上启用出口功能。
在集线器 PE 路由器上启用出口功能
此示例与 配置中心辐射型 VPN 拓扑:一个接口一起提供。此示例还使用了 图 1 所示的拓扑。
如果中心 PE 上需要出口功能,且需要在中心 VRF 路由表上进行 IP 转发查找,则配置 中心辐射型 VPN 拓扑: 一个接口 将无法正常工作中详述的配置。对中心路由实例应用 vrf-table-label 语句会强制将来自远程分支 PE 的流量转发到中心 PE,并强制执行 IP 查找。由于特定分支路由位于中心 VRF 表中,因此流量将转发至分支 PE,而无需通过中心 CE。
中枢 PE 使用 VPN 标签 1028 按如下方式播发默认路由:
hub.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
* 0.0.0.0/0 (1 entry, 1 announced)
BGP group ibgp type Internal
Route Distinguisher: 10.255.14.176:2
VPN Label: 1028
Nexthop: Self
Localpref: 100
AS path: 100 I
Communities: target:200:101
传入流量使用 VPN 标签 1028 进行转发。mpls.0 表显示需要在表 hub.inet.0 中进行 IP 查找:
1028 *[VPN/0] 00:00:27
to table hub.inet.0, Pop
但是,中心 VRF 表 hub.inet.0 包含特定的分支路由:
10.49.10.250/32 *[BGP/170] 00:00:05, localpref 100, from 10.255.14.182
AS path: 100 I
> via t1-0/1/0.0, Push 100352, Push 100208(top)
10.49.10.253/32 *[BGP/170] 00:00:05, localpref 100, from 10.255.14.178
AS path: 100 I
> via t1-0/1/0.0, Push 100128, Push 100192(top)
因此,流量会直接转发到分支 PE,而无需通过中枢 CE。为防止出现这种情况,您必须为中枢 PE1 中的下游流量配置辅助路由实例。
配置集线器 PE1
按如下方式配置集线器 PE1:
[edit]
routing-instances {
hub {
instance-type vrf;
interface t3-0/0/0.0;
route-distinguisher 10.255.14.176:2;
vrf-target {
import target:200:100;
export target:200:101;
}
no-vrf-advertise;
routing-options {
auto-export;
}
protocols {
bgp {
group hub {
type external;
peer-as 100;
as-override;
neighbor 10.49.4.2;
}
}
}
}
hub-downstream {
instance-type vrf;
route-guisher 10.255.14.176:3;
vrf-target target:200:101;
vrf-table-label;
routing-options {
auto-export;
}
}
}
no-vrf-advertise在[edit routing-instances hub]层次结构级别使用语句时,不需要路由表组或 VRF 导出策略。该no-vrf-advertise语句将中心 PE 配置为不通告来自主路由实例hub的 VPN 路由。而是从辅助路由实例hub_downstream播发这些路由。有关语no-vrf-advertise句的详细信息,请参阅 Junos OS 路由协议库。
auto-export层次结构级别的语句[edit routing-instances hub-downstream routing-options]通过查看为每个路由实例定义的路由目标,识别从中心实例导出到中心下游实例的路由。有关使用语auto-export句的详细信息,请参阅 Junos OS 路由协议库。有关导出策略的更多示例,请参阅使用自动路由导出配置重叠 VPN。
通过在中心 PE 上配置此配置,辐辐式 CE 流量将通过中心 CE,并允许在中心 PE 上启用出口功能(如过滤)。
在此配置示例中,分支 CE2 和分支 CE3 之间的流量转发如下:
-
分支 CE2 使用从分支 PE2 到 BGP 获知的默认路由转发流量。
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0 -
分支 PE2 在分支 VRF 表中查找路由,并使用通过 BGP 获知的默认路由将流量转发到中枢 PE1(通过 P 路由器 — PE2 推送两个标签)。
spoke.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[BGP/170] 00:00:09, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/0.0, Push 1029, Push 100224(top) -
Hub PE1 会在 mpls.0 表中查找 VPN 标签
1029的路由。mpls.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 1029 *[VPN/0] 00:11:49 to table hub_downstream.inet.0, Pop公布 VPN 标签
1029的原因是:-
该
vrf-table-label语句在中心 PE1 配置中的层次结构级别应用[edit routing-instances hub_downsteam]。 -
语
no-vrf-advertise句在[edit routing-instances hub]层次结构级别应用,指示路由器从辅助表播发路由。
因此,IP 查找将在 hub_downstream.inet.0 表中执行,而不是在 hub.inet.0 表中执行。
在中心 PE 上向分支 PE 发出
show route advertising-protocol命令,以验证 VPN 标签1029播发:user@host> show route advertising-protocol hub_downstream.inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) * 0.0.0.0/0 (1 entry, 1 announced) BGP group ibgp type Internal Route Distinguisher: 10.255.14.176:3 VPN Label: 1029 Nexthop: Self Localpref: 100 AS path: 100 I Communities: target:200:101 -
-
集线器 PE1 在表中执行 IP 查找,
hub_downstream.inet.0并将流量传出接口t3-0/0/0.0转发至集线器 CE1。hub_downstream.inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) 0.0.0.0/0 (1 entry, 1 announced) *BGP Preference: 170/-101 Next-hop reference count: 4 Source: 10.49.4.2 Next hop: 10.49.4.2 via t3-0/0/0.0, selected State: <Secondary Active Ext> Peer AS: 100 Age: 3:03 Task: BGP_100.10.49.4.2+1707 Announcement bits (2): 0-KRT 2-BGP.0.0.0.0+179 AS path: 100 I Communities: target:200:101 Localpref: 100 Router ID: 10.49.10.251 Primary Routing Table hub.inet.0主路由表为
hub.inet.0,表示此路由已从表hub.inet.0导出到此 hub_downstream.inet.0 表中,这是no-vrf-advertise由于中心 PE1 配置中[edit routing-instances hub]层次结构级别的语句和auto-export层次结构级别的语句[edit routing-instances hub-downstream routing-options]的结果。 -
集线器 CE1 使用通过 BGP 获知的路由器将流量转发回集线器 PE1。
10.49.10.253/32 *[BGP/170] 02:40:03, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0 -
集线器 PE1 在集线器 VRF 表中执行路由查找,并将流量转发至分支 PE3(通过 P 路由器 — PE1 推送两个标签)。
10.49.10.253/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top) -
分支 PE3 在 mpls.0 表中为 VPN 标签
100128执行路由查找。100128 *[VPN/170] 02:41:30 > to 10.49.6.2 via t3-0/0/0.0, Pop -
分支 PE3 将流量输出接口
t3-0/0/0.0转发至分支 CE3。
配置中心辐射型 VPN 拓扑结构: 两个接口
使用双接口配置将路由从分支传播到分支。
本节中的示例使用以下组件将中心辐射型网络拓扑与两个接口进行配置(参见 图 2):
-
一个集线器 PE 路由器(路由器 D)。
-
一台连接到集线器 PE 路由器的集线器 CE 路由器。要使此中心辐射型 VPN 拓扑正常运行,必须有两个接口将中心 PE 路由器连接到中心 CE 路由器,并且每个接口在 PE 路由器上必须有自己的 VRF 表:
-
第一个接口(此处为接口 ge-0/0/0.0)用于通告到中枢 CE 路由器的分支路由。与此接口关联的 VRF 表包含分支 PE 路由器向中枢 CE 路由器通告的路由。
-
第二个接口(此处为接口 ge-0/0/1.0)用于接收来自中枢 CE 的路由通告,这些通告发往中心辐射型路由器。与此接口关联的 VRF 表包含集线器 CE 路由器向分支 PE 路由器通告的路由。此示例使用两个单独的物理接口。如果要配置两个单独的逻辑接口,在中心 PE 路由器和中心 CE 路由器之间共享相同的物理接口,则该接口也可以运行。
-
-
两个分支 PE 路由器(路由器 E 和路由器 F)。
-
两个分支 CE 路由器(CE1 和 CE2),一个连接到每个分支 PE 路由器。
-
LDP 作为信令协议。
在此配置中,分支 CE 路由器 CE1 的路由分配按如下方式进行:
-
分支路由器 CE1 宣布其分支 PE 路由器 E 的路由。
-
路由器 E 将 CE1 中的路由安装到其 VRF 表中。
-
检查其 VRF 导出策略后,路由器 E 会将分支目标社区添加到通过策略的路由器 CE1 的路由中,并将这些路由通告给中枢 PE 路由器 D。
-
路由器 D 检查与接口 ge-0/0/0.0 关联的 VRF 导入策略,并将来自分支 PE 路由器且与该策略匹配的所有路由放入其 bgp.l3vpn 路由表中。(任何不匹配的路由都将被丢弃。
-
路由器 D 检查其与接口 ge-0/0/0.0 关联的 VRF 导入策略,并将所有匹配的路由安装到其分支 VRF 表中。路由随分支目标社区一起安装。
-
路由器 D 通过接口 ge-0/0/0 通告到中枢 CE 的路由。
-
中枢 CE 路由器通过中枢路由器的第二个接口(接口 ge-0/0/1)通告返回中枢 PE 路由器 D 的路由。
-
中心 PE 路由器将从中心 CE 路由器获知的路由安装到其中心 VRF 表中,该表与接口 ge-0/0/1 相关联。
-
添加中心目标社区后,中心 PE 路由器会检查与接口 ge-0/0/1.0 关联的 VRF 导出策略,并通告与所有分支匹配的所有路由。
图 3 说明了路由如何从此分支路由器分布到另一分支 CE 路由器(路由器 CE2)。如果从路由器 CE1 向路由器 CE2 发出traceroute命令,则遵循相同的路径。
此示例的最后一部分“ 由路由器汇总的中心辐射型 VPN 配置”整合了 为图 2 所示的每个服务提供商路由器配置 VPN 功能所需的语句。
之间的路由分布
以下部分介绍了如何在中心辐射型 PE 路由器上为中心辐射型 PE 路由器上的中心辐射型拓扑配置 VPN 功能。CE 路由器没有关于 VPN 的任何信息,因此您可以正常配置它们。
- 在中心辐射型 PE 路由器上启用 IGP
- 在中心辐射型 PE 路由器上配置 LDP
- 在 PE 路由器上配置 IBGP
- 在中心辐射型 PE 路由器上配置 VPN 路由实例
- 在 PE 路由器上配置 VPN 策略
- 按路由器汇总的中心辐射型 VPN 配置
在中心辐射型 PE 路由器上启用 IGP
要允许中心辐射型 PE 路由器交换路由信息,您必须在所有这些路由器上配置 IGP,或者必须配置静态路由。您可以在路由协议进程 (rpd) 的主实例上(即在 [edit protocols] 层次结构级别上)上配置 IGP,而不在路由实例内(即,不在 [edit routing-instances] 层次结构级别上)。
以标准方式配置 IGP。此配置示例不包括此部分配置。
在中心辐射型拓扑的路由分布中,如果中枢站点的 CE 和 PE 路由器之间使用的协议是 BGP,则中心 CE 路由器会通告从中枢 PE 路由器和分支路由器接收到的中心 PE 路由器和所有分支路由器的所有路由。这意味着中心辐射型 PE 路由器接收的路由包含其 AS 编号。通常,当路由包含此信息时,表示发生了路由环路,路由器拒绝了路由。但是,要使 VPN 配置正常工作,中心 PE 路由器和分支路由器必须接受这些路由。要启用此功能,请在中心 PE 路由器和所有分支路由器上的[edit routing-options]层次结构级别配置 AS 时包含该loops选项。对于此示例配置,您指定值 1。您可以指定一个从 0 到 10 的数字。
[edit routing-options] autonomous-system as-number loops 1;
在中心辐射型 PE 路由器上配置 LDP
在参与 VPN 的中心辐射型 PE 路由器之间的接口上配置 LDP。
在集线器 PE 路由器 D 上,配置 LDP:
[edit protocols]
ldp {
interface so-1/0/0.0;
interface t3-1/1/0.0;
}
在分支 PE 路由器 E 上,配置 LDP:
[edit protocols]
ldp {
interface fe-0/1/2.0;
}
在辐射型 PE 路由器路由器 F 上,配置 LDP:
[edit protocols]
ldp {
interface fe-1/0/0.0;
}
在 PE 路由器上配置 IBGP
在中心辐射型 PE 路由器上,使用以下属性配置 IBGP 会话:
-
VPN 家族 - 要指示 IBGP 会话用于 VPN,请添加
family inet-vpn语句。 -
环路地址 — 包括
local-address语句,用于指定本地 PE 路由器的环路地址。VPN 的 IBGP 会话通过环路地址运行。您还必须在[edit interfaces]层次结构级别配置lo0接口。该示例不包括路由器配置的这一部分。 -
邻居地址 - 包括
neighbor语句。在中心路由器上,指定每个分支 PE 路由器的 IP 地址,在分支路由器上,指定中心 PE 路由器的地址。
对于中心路由器,您针对每个分支路由器配置一个 IBGP 会话,对于每个分支路由器,您需要配置一个与中枢的 IBGP 会话。两个分支路由器之间没有 IBGP 会话。
在集线器路由器 D 上,配置 IBGP。第一条 neighbor 语句将 IBGP 会话配置到分支路由器 E,第二条语句将会话配置到分支路由器 F。
[edit protocols]
bgp {
group Hub-to-Spokes {
type internal;
local-address 10.255.14.174;
family inet-vpn {
unicast;
}
neighbor 10.255.14.180;
neighbor 10.255.14.182;
}
}
在分支路由器 E 上,配置到中枢路由器的 IBGP 会话:
[edit protocols]
bgp {
group Spoke-E-to-Hub {
type internal;
local-address 10.255.14.180;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
在分支路由器 F 上,配置到中枢路由器的 IBGP 会话:
[edit protocols]
bgp {
group Spoke-F-to-Hub {
type internal;
local-address 10.255.14.182;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
在中心辐射型 PE 路由器上配置 VPN 路由实例
要使中心 PE 路由器能够区分进出分支 PE 路由器的数据包,必须为其配置两个路由实例:
-
一个路由实例(在本例中为
Spokes-to-Hub-CE)与将数据包从中枢 PE 路由器传送到中枢 CE 路由器(此例中为 接口ge-0/0/0.0)的接口相关联。其 VRF 表包含由分支 PE 路由器和中心 PE 路由器通告到中枢 CE 路由器的路由。 -
第二个路由实例(在本例中为
Hub-CE-to-Spokes)与将数据包从中枢 CE 路由器传送到中枢 PE 路由器(此例中为 接口ge-0/0/1.0)的接口相关联。其 VRF 表包含从中枢 CE 路由器到中心辐射型 PE 路由器的通告路由。
在每个分支路由器上,必须配置一个路由实例。
您必须在路由实例中定义以下内容:
-
路由识别符,用于区分一个 VPN 中的地址和另一个 VPN 中的地址。
-
的实例类型
vrf,用于在 PE 路由器上创建 VRF 表。 -
属于 VPN 的接口,用于将 PE 路由器连接到其 CE 路由器。
-
VRF 导入和导出策略。两个导入策略都必须包含对社区的引用。否则,当您尝试提交配置时,提交将失败。(例外情况是导入策略仅包含语
then reject句。在 VRF 导出策略中,分支 PE 路由器附加分支目标社区。 -
PE 和 CE 路由器之间的路由,这是 PE 路由器将 VPN 相关路由分发到连接的 CE 路由器和从连接的 CE 路由器分发 VPN 相关路由所必需的。您可以配置路由协议(BGP、OSPF 或 RIP),也可以配置静态路由。
对于中心辐射型拓扑,您必须在中心 CE 路由器上的每个路由实例中配置不同的策略。对于与将数据包从中枢 PE 路由器传输到中枢 CE 路由器的接口相关联的路由实例(在本例中为 Spokes-to-Hub-CE),导入策略必须接受在中心辐射型 PE 路由器之间的 IBGP 会话中接收的所有路由,并且导出策略必须拒绝从中枢 CE 路由器接收的所有路由。对于与将数据包从中枢 CE 路由器传输到中枢 PE 路由器的接口相关联的路由实例(在本例中为 Hub-CE-to-Spokes),导入策略必须拒绝从分支 PE 路由器接收的所有路由,并且导出策略必须导出到所有分支路由器。
在集线器 PE 路由器 D 上,配置以下路由实例。路由器 D 使用 OSPF 分配与中枢 CE 路由器之间的路由。
[edit]
routing-instance {
Spokes-to-Hub-CE {
instance-type vrf;
interface ge-0/0/0.0;
route-distinguisher 10.255.1.174:65535;
vrf-import spoke;
vrf-export null;
protocols {
ospf {
domain-id disable;
export redistribute-vpn;
domain-vpn-tag 0;
area 0.0.0.0 {
interface ge-0/0/0;
}
}
}
}
Hub-CE-to-Spokes {
instance-type vrf;
interface ge-0/0/1.0;
route-distinguisher 10.255.1.174:65534;
vrf-import null;
vrf-export hub;
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface ge-0/0/1.0;
}
}
}
}
}
在分支 PE 路由器 E 上,配置以下路由实例。路由器 E 使用 OSPF 分配进出分支 CE 路由器 CE1 的路由。
[edit]
routing-instance {
Spoke-E-to-Hub {
instance-type vrf;
interface fe-0/1/0.0;
route-distinguisher 10.255.14.80:65035;
vrf-import hub;
vrf-export spoke;
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-0/1/0.0;
}
}
}
}
}
在分支 PE 路由器 F 上,配置以下路由实例。路由器 F 使用 OSPF 分配与分支 CE 路由器 CE2 之间的路由。
[edit]
routing-instance {
Spoke-F-to-Hub {
instance-type vrf;
interface fe-1/0/1.0;
route-distinguisher 10.255.14.182:65135;
vrf-import hub;
vrf-export spoke;
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-1/0/1.0;
}
}
}
}
}
在 PE 路由器上配置 VPN 策略
您必须在每台中心辐射型 PE 路由器上配置 VPN 导入和导出策略,以便它们在 VRF 表中安装相应的路由,用于在每个 VPN 中转发数据包。
在分支路由器上,您可以定义策略以与中枢路由器交换路由。
在中枢路由器上,您可以定义策略以接受来自分支 PE 路由器的路由并将其分发到中枢 CE 路由器,反之亦然。中心 PE 路由器有两个 VRF 表:
-
辐条到中心 VRF 表 — 处理从分支路由器接收的路由,并将这些路由通告到中心 CE 路由器。对于此 VRF 表,导入策略必须检查分支目标名称是否存在,以及路由是否是从中心 PE 和分支 PE 路由器之间的 IBGP 会话接收的。此 VRF 表不得导出任何路由,因此其导出策略应拒绝所有内容。
-
中心到分支 VRF 表 — 处理从中心 CE 路由器接收的路由,并将其通告给分支路由器。对于此 VRF 表,导出策略必须添加中心目标社区。此 VRF 表不得导入任何路由,因此其导入策略应拒绝所有内容。
在 VPN 策略中,您还可以配置 VPN 目标社区。
在集线器 PE 路由器 D 上,配置以下策略以应用于 VRF 表:
-
spoke- 接受从 IBGP 会话与包含社区目标spoke的分支 PE 路由器之间的路由,并拒绝所有其他路由。 -
hub- 将社区目标中枢添加到从 OSPF 接收的所有路由(即,从 OSPF 与中枢 CE 路由器之间的会话)。它拒绝所有其他路由。 -
null- 拒绝所有路由。 -
redistribute-vpn- 将 OSPF 路由重新分配给路由实例中的邻接方。[edit] policy-options { policy-statement spoke { term a { from { protocol bgp; community spoke; } then accept; } term b { then reject; } } policy-statement hub { term a { from protocol ospf; then { community add hub; accept; } } term b { then reject; } } policy-statement null { then reject; } policy-statement redistribute-vpn { term a { from protocol bgp; then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target:65535:2; }
要在路由器 D 上应用 VRF 策略,请在配置路由实例时加入 vrf-export 和 vrf-import 语句:
[edit]
routing-instance {
Spokes-to-Hub-CE {
vrf-import spoke;
vrf-export null;
}
Hub-CE-to-Spokes {
vrf-import null;
vrf-export hub;
}
}
在分支 PE 路由器 E 和路由器 F 上,配置以下策略以应用于 VRF 表:
-
hub—接受从IBGP会话与包含社区目标hub的中枢PE路由器之间的路由接收的路由,并拒绝所有其他路由。 -
spoke- 将社区目标分支添加到从 OSPF 接收的所有路由(即,从 OSPF 与中枢 CE 路由器之间的会话接收的路由)拒绝所有其他路由。 -
redistribute-vpn- 将 OSPF 路由重新分配给路由实例中的邻接方。
在分支 PE 路由器 E 和路由器 F 上,配置以下 VPN 导入和导出策略:
[edit]
policy-options {
policy-statement hub {
term a {
from {
protocol bgp;
community hub;
}
then accept;
}
term b {
then reject;
}
}
policy-statement spoke {
term a {
from protocol ospf;
then {
community add spoke;
accept;
}
}
term b {
then reject;
}
}
policy-statement redistribute-vpn {
term a {
from protocol bgp;
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target 65535:2;
}
要在分支路由器上应用 VRF 策略,请在配置路由实例时包括 vrf-export 和 vrf-import 语句:
[edit]
routing-instance {
Spoke-E-to-Hub {
vrf-import hub;
vrf-export spoke;
}
}
[edit]
routing-instance {
Spoke-F-to-Hub {
vrf-import hub;
vrf-export spoke;
}
}
按路由器汇总的中心辐射型 VPN 配置
路由器 D(集线器 PE 路由器)
用于将分支路由分发到 Hub CE 的路由实例
Spokes-to-Hub-CE {
instance-type vrf;
interface fe-0/0/0.0;
route-distinguisher 10.255.1.174:65535;
vrf-import spoke;
vrf-export null;
}
实例路由协议
protocols {
ospf {
domain-id disable;
domain-vpn-tag 0;
export redistribute-vpn;
area 0.0.0.0 {
interface ge-0/0/0.0;
}
}
}
用于将 Hub CE 路由分发到分支的路由实例
Hub-CE-to-Spokes {
instance-type vrf;
interface ge-0/0/1.0;
route-distinguisher 10.255.1.174:65534;
vrf-import null;
vrf-export hub;
}
路由实例路由协议
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface ge-0/0/1.0;
}
}
}
路由选项(主实例)
routing-options {
autonomous-system 1 loops 1;
}
协议(主实例)
protocols {
}
启用 LDP
ldp {
interface so-1/0/0.0;
interface t3-1/1/0.0;
}
配置 IBGP
bgp {
group Hub-to-Spokes {
type internal;
local-address 10.255.14.174;
family inet-vpn {
unicast;
}
neighbor 10.255.14.180;
neighbor 10.255.14.182;
}
}
配置 VPN 策略
policy-options {
policy-statement spoke {
term a {
from {
protocol bgp;
community spoke;
}
then accept;
}
term b {
then reject;
}
}
policy-statement hub {
term a {
from protocol ospf;
then {
community add hub;
accept;
}
}
term b {
then reject;
}
}
policy-statement null {
then reject;
}
policy-statement redistribute-vpn {
term a {
from protocol bgp;
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target:65535:2;
}
路由器 E(辐射型 PE 路由器)
路由实例
routing-instance {
Spoke-E-to-Hub {
instance-type vrf;
interface fe-0/1/0.0;
route-distinguisher 10.255.14.80:65035;
vrf-import hub;
vrf-export spoke;
}
}
实例路由协议
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-0/1/0.0;
}
}
}
路由选项(主实例)
routing-options {
autonomous-system 1 loops 1;
}
协议(主实例)
protocols {
}
启用 LDP
ldp {
interface fe-0/1/2.0;
}
配置 IBGP
bgp {
group Spoke-E-to-Hub {
type internal;
local-address 10.255.14.180;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
配置 VPN 策略
policy-options {
policy-statement hub {
term a {
from {
protocol bgp;
community hub;
}
then accept;
}
term b {
then reject;
}
}
policy-statement spoke {
term a {
from protocol ospf;
then {
community add spoke;
accept;
}
}
term b {
then reject;
}
}
policy-statement redistribute-vpn {
term a {
from protocol bgp;
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target:65535:2;
}
路由器 F(辐射型 PE 路由器)
路由实例
routing-instance {
Spoke-F-to-Hub {
instance-type vrf;
interface fe-1/0/1.0;
route-distinguisher 10.255.14.182:65135;
vrf-import hub;
vrf-export spoke;
}
}
实例路由协议
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-1/0/1.0;
}
}
}
路由选项(主实例)
routing-options {
autonomous-system 1 loops 1;
}
协议(主实例)
protocols {
}
启用 LDP
ldp {
interface fe-1/0/0.0;
}
配置 IBGP
bgp {
group Spoke-F-to-Hub {
type internal;
local-address 10.255.14.182;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
配置 VPN 策略
policy-options {
policy-statement hub {
term a {
from {
protocol bgp;
community hub;
}
then accept;
}
term b {
then reject;
}
}
policy-statement spoke {
term a {
from protocol ospf;
then {
community add spoke;
accept;
}
}
term b {
then reject;
}
}
policy-statement redistribute-vpn {
term a {
from {
protocol bgp;
}
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target:65535:2;
}