实验拓扑
实验需求
CE1模拟客户A的站点1设备,CE2模拟客户A的站点2设备,CE1及CE2上各有一个Loopback接口用来模拟站点内的客户路由。
CE1与PE1之间,CE2与PE2之间运行的PE-CE路由协议是OSPF,使用进程号1。
Backbone内使用OSPF打通骨干内的路由,OSPF使用进程号100。
PE1及PE2建立基于Loopback的MP-iBGP邻居关系。
完成相关配置,使得客户A的两个站点能够互通。
实验步骤
1.Backbone内运行OSPF,统一使用进程号100
在PE1、P1、P2、PE2上运行OSPF。运行该OSPF进程的目的是为了打通Backbone内的路由,四台路由器都要通告自己的Loopback0网段路由。这个IGP打通的路由一方面是为了LDP能够建立起邻接关系,并且能够正常的分发标签,另一方面也是为了PE1及PE2之间能够建立起基于Loopback的MP-iBGP邻居关系。
2.Backbone内运行LDP
在PE1、P1、P2、PE2上运行MPLS及LDP。我的设备上,LDP开始工作后,缺省情况下即会为/32的主机路由捆绑并分发标签。骨干网内四台路由器的Loopback路由都会建立LSP。这为后续的客户数据转发做了铺垫。
3.PE1及PE2创建VPN实例,并运行PE-CE路由协议
在PE1及PE2上创建一个VPN实例,命令为ABC,将连接到CE的接口添加到这个VPN实例中。同时PE1、PE2均与自己直连的CE路由器运行一个基于VPN实例的OSPF进程,统一使用进程号1。务必要注意的是这个OSPF进程是基于VPN实例ABC(也就是基于虚拟路由器)的,而不是基于全局路由器的。
4.PE1及PE2创建MP-BGP进程,并且建立MP-iBGP邻居关系
PE1及PE2基于Loopback建立MP-iBGP邻居关系,激活二者的VPNv4连接。
5.PE1及PE2上配置VPN路由与BGP路由的互重发布
由于PE-CE之间选用的路由协议是OSPF,因此为了将路由拉通,需要在两台PE上配置OSPF进程1,以及MP-BGP的路由双向重发布。
6.查看及验证
实验配置
1.Backbone内运行OSPF
本实验中所有设备的接口IP地址的配置这里不再罗列,请自行完成。
Backbone内的设备:PE1、PE2、P1、P2运行OSPF,统一使用进程号100。运行该OSPF进程的目的是为了打通骨干网内的路由,四台设备在互联接口上激活OSPF,并且通告自己的Loopback0接口路由。
PE1的配置如下:
[PE1]ospf100router-id2.2.2.2 [PE1-ospf-100]area0 [PE1-ospf-100-area-0.0.0.0]network2.2.2.20.0.0.0 [PE1-ospf-100-area-0.0.0.0]network10.1.23.20.0.0.0
P1的配置如下:
[P1]ospf100router-id3.3.3.3 [P1-ospf-100]area0 [P1-ospf-100-area-0.0.0.0]network3.3.3.30.0.0.0 [P1-ospf-100-area-0.0.0.0]network10.1.23.30.0.0.0 [P1-ospf-100-area-0.0.0.0]network10.1.34.30.0.0.0
P2的配置如下:
[P2]ospf100router-id4.4.4.4 [P2-ospf-100]area0 [P2-ospf-100-area-0.0.0.0]network4.4.4.40.0.0.0 [P2-ospf-100-area-0.0.0.0]network10.1.34.30.0.0.0 [P2-ospf-100-area-0.0.0.0]network10.1.45.40.0.0.0
PE2的配置如下:
[PE2]ospf100router-id5.5.5.5 [PE2-ospf-100]area0 [PE2-ospf-100-area-0.0.0.0]network5.5.5.50.0.0.0 [PE2-ospf-100-area-0.0.0.0]network10.1.45.50.0.0.0
完成配置后,在各设备上查看路由,确保路由表是正确的,例如R1的路由表:
displayiprouting-tableprotocolospf Destination/MaskProtoPreCostFlagsNextHopInterface 3.3.3.3/32OSPF101D10.1.23.3GigabitEthernet0/0/1 4.4.4.4/32OSPF102D10.1.23.3GigabitEthernet0/0/1 5.5.5.5/32OSPF103D10.1.23.3GigabitEthernet0/0/1 10.1.34.0/24OSPF102D10.1.23.3GigabitEthernet0/0/1 10.1.45.0/24OSPF103D10.1.23.3GigabitEthernet0/0/1
2.Backbone内运行MPLS及LDP
PE1的配置如下:
[PE1]mplslsr-id2.2.2.2#配置设备的LSRID [PE1]mpls#全局激活MPLS [PE1]mplsldp#全局激活LDP [PE1]interfaceGigabitEthernet0/0/1 [PE1-GigabitEthernet0/0/1]mpls#接口激活MPLS [PE1-GigabitEthernet0/0/1]mplsldp#接口激活LDP
P1的配置如下:
[P1]mplslsr-id3.3.3.3 [P1]mpls [P1]mplsldp [P1]interfaceGigabitEthernet0/0/0 [P1-GigabitEthernet0/0/0]mpls [P1-GigabitEthernet0/0/0]mplsldp [P1]interfaceGigabitEthernet0/0/1 [P1-GigabitEthernet0/0/1]mpls [P1-GigabitEthernet0/0/1]mplsldp
P2的配置如下:
[P2]mplslsr-id4.4.4.4 [P2]mpls [P2]mplsldp [P2]interfaceGigabitEthernet0/0/0 [P2-GigabitEthernet0/0/0]mpls [P2-GigabitEthernet0/0/0]mplsldp [P2]interfaceGigabitEthernet0/0/1 [P2-GigabitEthernet0/0/1]mpls [P2-GigabitEthernet0/0/1]mplsldp
PE2的配置如下:
[PE2]mplslsr-id5.5.5.5 [PE2]mpls [PE2]mplsldp [PE2]interfaceGigabitEthernet0/0/0 [PE2-GigabitEthernet0/0/0]mpls [PE2-GigabitEthernet0/0/0]mplsldp
完成配置后,确保所有的LDP邻居关系都正确的建立:
displaymplsldpsession LDPSession(s)inPublicNetwork Codes:LAM(LabelAdvertisementMode),SsnAgeUnit(DDDDMM) A'*'beforeasessionmeansthesessionisbeingdeleted. ------------------------------------------------------------------------------ PeerIDStatusLAMSsnRoleSsnAgeKASent/Rcv ------------------------------------------------------------------------------ 3.3.3.3:0OperationalDUPassive00000420/20 ------------------------------------------------------------------------------ TOTAL:1session(s)Found.
其他设备的查看不再赘述。
displaymplslsp ------------------------------------------------------------------------------- LSPInformation:LDPLSP ------------------------------------------------------------------------------- FECIn/OutLabelIn/OutIFVrfName 2.2.2.2/323/NULL-/- 3.3.3.3/32NULL/3-/GE0/0/1 3.3.3.3/321024/3-/GE0/0/1 4.4.4.4/32NULL/1025-/GE0/0/1 4.4.4.4/321025/1025-/GE0/0/1 5.5.5.5/32NULL/1026-/GE0/0/1 5.5.5.5/321026/1026-/GE0/0/1
上面输出的是PE1的标签转发表。我们看到关于网络中的/32主机路由都已经收到了标签。
3.PE1及PE2创建VPN实例,并运行PE-CE路由协议
PE1的配置如下:
[PE1]ipvpn-instanceABC#创建VPN实例 [PE1-vpn-instance-ABC]route-distinguisher2345:1#配置RD值 [PE1-vpn-instance-ABC-af-ipv4]vpn-target2345:11#配置RT值(导入及导出值均为 2345:11) [PE1]interfaceGigabitEthernet0/0/0 [PE1-GigabitEthernet0/0/0]ipbindingvpn-instanceABC#将该接口绑定到VPN实例ABC [PE1-GigabitEthernet0/0/0]ipaddress10.1.12.224 [PE1]ospf1vpn-instanceABC#运行基于VPN实例ABC的OSPF进程 [PE1-ospf-1]area0 [PE1-ospf-1-area-0.0.0.0]network10.1.12.20.0.0.0
CE1的配置如下:
[CE1]interfaceGigabitEthernet0/0/0 [CE1-GigabitEthernet0/0/0]ipaddress10.1.12.124 [CE1]interfaceLoopBack0 [CE1-LoopBack0]ipaddress1.1.1.132 [CE1]ospf1router-id1.1.1.1 [CE1-ospf-1]area0 [CE1-ospf-1-area-0.0.0.0]network10.1.12.10.0.0.0 [CE1-ospf-1-area-0.0.0.0]network1.1.1.10.0.0.0
PE2的配置如下:
[PE2]ipvpn-instanceABC [PE2-vpn-instance-ABC]route-distinguisher2345:1 [PE2-vpn-instance-ABC-af-ipv4]vpn-target2345:11 [PE2]interfaceGigabitEthernet0/0/1 [PE2-GigabitEthernet0/0/1]ipbindingvpn-instanceABC [PE2-GigabitEthernet0/0/1]ipaddress10.1.56.524 [PE2]ospf1vpn-instanceABC [PE2-ospf-1]area0 [PE2-ospf-1-area-0.0.0.0]network10.1.56.50.0.0.0
CE2的配置如下:
[CE2]interfaceGigabitEthernet0/0/0 [CE2-GigabitEthernet0/0/0]ipaddress10.1.56.624 [CE2]interfaceLoopBack0 [CE2-LoopBack0]ipaddress6.6.6.632 [CE2]ospf1router-id6.6.6.6 [CE2-ospf-1]area0 [CE2-ospf-1-area-0.0.0.0]network10.1.56.60.0.0.0 [CE2-ospf-1-area-0.0.0.0]network6.6.6.60.0.0.0
完成配置后,确保PE能够学习到直连CE的客户路由:
displayiprouting-tablevpn-instanceABC Destination/MaskProtoPreCostFlagsNextHopInterface 1.1.1.1/32OSPF101D10.1.12.1GigabitEthernet0/0/0 10.1.12.0/24Direct00D10.1.12.2GigabitEthernet0/0/0 10.1.12.2/32Direct00D127.0.0.1GigabitEthernet0/0/0 10.1.12.255/32Direct00D127.0.0.1GigabitEthernet0/0/0 255.255.255.255/32Direct00D127.0.0.1InLoopBack0
PE1上VPN实例ABC的路由表中已经通过OSPF学习到CE1的客户路由1.1.1.1/32。
4.PE1及PE2创建MP-BGP进程,并建立MP-iBGP邻居关系
PE1的配置如下:
[PE1]bgp2345 [PE1-bgp]router-id2.2.2.2 [PE1-bgp]undodefaultipv4-unicast#因为本实验中PE1-PE2之间无需交互IPv4路 由,因此取消IPv4单播协议的邻居关系自动建立 [PE1-bgp]peer5.5.5.5as-number2345 [PE1-bgp]peer5.5.5.5connect-interfaceLoopBack0 [PE1-bgp]ipv4-familyvpnv4unicast#进入IPv4的VPNv4地址族 [PE1-bgp-af-vpnv4]peer5.5.5.5enable#激活邻居5.5.5.5
PE2的配置如下:
[PE2]bgp2345 [PE2-bgp]router-id5.5.5.5 [PE2-bgp]undodefaultipv4-unicast [PE2-bgp]peer2.2.2.2as-number2345 [PE2-bgp]peer2.2.2.2connect-interfaceLoopBack0 [PE2-bgp]ipv4-familyvpnv4unicast [PE2-bgp-af-vpnv4]peer2.2.2.2enable [PE2]displaybgpvpnv4allpeer BGPlocalrouterID:5.5.5.5 LocalASnumber:2345 Totalnumberofpeers:1Peersinestablishedstate:1 PeerVASMsgRcvdMsgSentOutQUp/DownStatePrefRcv 2.2.2.2423452200036Established0
PE1及PE2的MP-iBGP邻居(VPNv4)关系已经建立成功。
5.PE1及PE2配置PE-CE路由协议与BGP的相互重发布
PE1的配置如下:
[PE1]bgp2345 [PE1-bgp]ipv4-familyvpn-instanceABC#将OSPF进程1的路由导入到BGP的VPN实例ABC对应的IPv4地址族中 [PE1-bgp-ABC]import-routeospf1 [PE1]ospf1vpn-instanceABC#将BGP路由导入到OSPF进程1 [PE1-ospf-1]import-routebgppermit-ibgp
PE2的配置如下:
[PE2]bgp2345 [PE2-bgp]ipv4-familyvpn-instanceABC [PE2-bgp-ABC]import-routeospf1 [PE2]ospf1vpn-instanceABC [PE2-ospf-1]import-routebgppermit-ibgpdisplayiprouting-tableprotocolospf Destination/MaskProtoPreCostFlagsNextHopInterface 6.6.6.6/32OSPF103D10.1.12.2GigabitEthernet0/0/0 10.1.56.0/24O_ASE1501D10.1.12.2GigabitEthernet0/0/0
CE1已经学习到了CE2所在站点的路由。
displayiprouting-tableprotocolospf Destination/MaskProtoPreCostFlagsNextHopInterface 1.1.1.1/32OSPF103D10.1.56.5GigabitEthernet0/0/0 10.1.12.0/24O_ASE1501D10.1.56.5GigabitEthernet0/0/0
CE2也已经学习到了CE1所在站点的路由。
6.查看及验证
[PE1]displaybgpvpnv4allrouting-table6.6.6.6 BGPlocalrouterID:2.2.2.2 LocalASnumber:2345 TotalroutesofRouteDistinguisher(23451 BGProutingtableentryinformationof6.6.6.6/32: Labelinformation(Received/Applied):1027/NULL From:5.5.5.5(5.5.5.5) RouteDuration:00h11m23s RelayIPNexthop:10.1.23.3 RelayIPOut-Interface:GigabitEthernet0/0/1 RelayTunnelOut-Interface:GigabitEthernet0/0/1 Relaytoken:0x5 Originalnexthop:5.5.5.5 Qosinformation:0x0 Ext-Community:RT<2345 : 11>,OSPFDOMAINID<0.0.0.0 : 0>, OSPFRT<0.0.0.0 : 1 : 0>,OSPFROUTERID<10.1.56.5 : 0> AS-pathNil,originincomplete,MED2,localpref100,pref-val0,valid,interna l,best,select,pre255,IGPcost3 Notadvertisedtoanypeeryet VPN-InstanceABC,RouterID2.2.2.2: TotalNumberofRoutes:1 BGProutingtableentryinformationof6.6.6.6/32: Labelinformation(Received/Applied):1027/NULL From:5.5.5.5(5.5.5.5) RouteDuration:00h11m23s RelayTunnelOut-Interface:GigabitEthernet0/0/1 Relaytoken:0x5 Originalnexthop:5.5.5.5 Qosinformation:0x0 Ext-Community:RT<2345 : 11>,OSPFDOMAINID<0.0.0.0 : 0>, OSPFRT<0.0.0.0 : 1 : 0>,OSPFROUTERID<10.1.56.5 : 0> AS-pathNil,originincomplete,MED2,localpref100,pref-val0,valid,interna l,best,select,active,pre255,IGPcost3 Notadvertisedtoanypeeryet
在PE1上查看路由6.6.6.6/32的详细信息。该条路由是通过MP-iBGP从PE2传递过来的。从详细信息的输出我们可以看到路由的下一跳是5.5.5.5。并且该路由捆绑的VPN标签是1027。因此当PE1收到IP数据包要去往6.6.6.6时,会为数据包压入VPN标签1027,同时为了让这个标签包能够正常的穿越骨干网并到达PE2上,还需为该标签包再增加一层标签。由于去往6.6.6.6的下一跳是5.5.5.5,因此在外层压入5.5.5.5路由对应的标签:
[PE1]displaymplslsp ------------------------------------------------------------------------------- LSPInformation:BGPLSP ------------------------------------------------------------------------------- FECIn/OutLabelIn/OutIFVrfName 1.1.1.1/321027/NULL-/-ABC 10.1.12.0/241028/NULL-/-ABC ------------------------------------------------------------------------------- LSPInformation:LDPLSP ------------------------------------------------------------------------------- FECIn/OutLabelIn/OutIFVrfName 2.2.2.2/323/NULL-/- 3.3.3.3/32NULL/3-/GE0/0/1 3.3.3.3/321024/3-/GE0/0/1 4.4.4.4/32NULL/1025-/GE0/0/1 4.4.4.4/321025/1025-/GE0/0/1 5.5.5.5/32NULL/1026-/GE0/0/1 5.5.5.5/321026/1026-/GE0/0/1
从上面的输出我们可以看到PE1的标签转发表中,5.5.5.5的出站标签是1026。所以最终去往6.6.6.6的IP包被压入两层标签。内层VPN标签值是1027,外层LDP标签是1026。报文被处理后转发给了P1。P1在收到这个标签包后查看自己的标签转发表,注意,它只会查看外层标签。
[P1]displaymplslsp ------------------------------------------------------------------------------- LSPInformation:LDPLSP ------------------------------------------------------------------------------- FECIn/OutLabelIn/OutIFVrfName 3.3.3.3/323/NULL-/- 2.2.2.2/32NULL/3-/GE0/0/0 2.2.2.2/321024/3-/GE0/0/0 4.4.4.4/32NULL/3-/GE0/0/1 4.4.4.4/321025/3-/GE0/0/1 5.5.5.5/32NULL/1026-/GE0/0/1 5.5.5.5/321026/1026-/GE0/0/1
从P1的转发表我们可以看出,1026的入站标签,对应的出站标签是1026,并且出站接口是GE0/0/1。因此它将收到的标签包的外层标签从1026置换成1026(碰巧置换前后标签值是一样的),然后从GE0/0/1口发出去。P2将收到这个标签包,也是查标签转发表:
displaymplslsp ------------------------------------------------------------------------------- LSPInformation:LDPLSP ------------------------------------------------------------------------------- FECIn/OutLabelIn/OutIFVrfName 2.2.2.2/32NULL/1024-/GE0/0/0 2.2.2.2/321024/1024-/GE0/0/0 4.4.4.4/323/NULL-/- 3.3.3.3/32NULL/3-/GE0/0/0 3.3.3.3/321025/3-/GE0/0/0 5.5.5.5/32NULL/3-/GE0/0/1 5.5.5.5/321026/3-/GE0/0/1
P2发现,1026的入站标签,对应的出站标签是3,而3是一个保留标签,意味着要将该顶层标签弹出。于是它将收到的标签数据的顶层标签弹出,然后剩余的数据从GE0/0/1口送出去。PE2将最终收到仍然携带者VPN标签的数据。由于这个VPN标签是它自己发给PE1的,因此它知道这个标签值意味着什么、与哪一个VPN实例对应。因此最终它将VPN标签剥去,然后将IP数据包转发给CE2。
在PE1上Tracert 6.6.6.6,可以查看到整个数据层面的过程:
tracert-vpn-instanceABC-v-a10.1.12.26.6.6.6 traceroutetoABC6.6.6.6(6.6.6.6),maxhops:30,packetlength:40,pressCTRL_Cto break 110.1.23.3[MPLSLabel=1026/1027Exp=0/0S=0/1TTL=1/1]110ms60ms70ms 210.1.34.4[MPLSLabel=1026/1027Exp=0/0S=0/1TTL=1/2]110ms50ms80ms 310.1.56.580ms80ms60ms 410.1.56.6110ms80ms70ms
实际上是这样的:
审核编辑:汤梓红
-
华为
+关注
关注
216文章
34431浏览量
251676 -
VPN
+关注
关注
4文章
292浏览量
29710 -
路由协议
+关注
关注
1文章
126浏览量
29565 -
MPLS
+关注
关注
0文章
131浏览量
24145
原文标题:华为实验 | MPLS VPN 基础实验
文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论