华为实验|MPLS VPN基础实验

描述

实验拓扑

华为
华为
华为

实验需求

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] ospf 100 router-id 2.2.2.2
[PE1-ospf-100] area 0
[PE1-ospf-100-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[PE1-ospf-100-area-0.0.0.0] network 10.1.23.2 0.0.0.0

 

P1的配置如下:

 

[P1] ospf 100 router-id 3.3.3.3
[P1-ospf-100] area 0
[P1-ospf-100-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[P1-ospf-100-area-0.0.0.0] network 10.1.23.3 0.0.0.0
[P1-ospf-100-area-0.0.0.0] network 10.1.34.3 0.0.0.0

 

P2的配置如下:

 

[P2] ospf 100 router-id 4.4.4.4
[P2-ospf-100] area 0
[P2-ospf-100-area-0.0.0.0] network 4.4.4.4 0.0.0.0
[P2-ospf-100-area-0.0.0.0] network 10.1.34.3 0.0.0.0
[P2-ospf-100-area-0.0.0.0] network 10.1.45.4 0.0.0.0

 

PE2的配置如下:

 

[PE2] ospf 100 router-id 5.5.5.5
[PE2-ospf-100] area 0
[PE2-ospf-100-area-0.0.0.0] network 5.5.5.5 0.0.0.0
[PE2-ospf-100-area-0.0.0.0] network 10.1.45.5 0.0.0.0

 

完成配置后,在各设备上查看路由,确保路由表是正确的,例如R1的路由表:

 

display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
3.3.3.3/32 OSPF 10 1 D 10.1.23.3 GigabitEthernet0/0/1
4.4.4.4/32 OSPF 10 2 D 10.1.23.3 GigabitEthernet0/0/1
5.5.5.5/32 OSPF 10 3 D 10.1.23.3 GigabitEthernet0/0/1
10.1.34.0/24 OSPF  10 2 D 10.1.23.3 GigabitEthernet0/0/1
10.1.45.0/24 OSPF  10 3 D 10.1.23.3 GigabitEthernet0/0/1

 

2.Backbone内运行MPLS及LDP

PE1的配置如下:

 

[PE1] mpls lsr-id 2.2.2.2  #配置设备的LSR ID
[PE1] mpls  #全局激活MPLS
[PE1] mpls ldp  #全局激活LDP
[PE1] interface GigabitEthernet 0/0/1
[PE1-GigabitEthernet0/0/1] mpls  #接口激活MPLS
[PE1-GigabitEthernet0/0/1] mpls ldp #接口激活LDP

 

P1的配置如下:

 

[P1] mpls lsr-id 3.3.3.3
[P1] mpls
[P1] mpls ldp
[P1] interface GigabitEthernet 0/0/0
[P1-GigabitEthernet0/0/0] mpls
[P1-GigabitEthernet0/0/0] mpls ldp
[P1] interface GigabitEthernet 0/0/1
[P1-GigabitEthernet0/0/1] mpls
[P1-GigabitEthernet0/0/1] mpls ldp

 

P2的配置如下:

 

[P2] mpls lsr-id 4.4.4.4
[P2] mpls
[P2] mpls ldp
[P2] interface GigabitEthernet 0/0/0
[P2-GigabitEthernet0/0/0] mpls
[P2-GigabitEthernet0/0/0] mpls ldp
[P2] interface GigabitEthernet 0/0/1
[P2-GigabitEthernet0/0/1] mpls
[P2-GigabitEthernet0/0/1] mpls ldp

 

PE2的配置如下:

 

[PE2] mpls lsr-id 5.5.5.5
[PE2] mpls
[PE2] mpls ldp
[PE2] interface GigabitEthernet 0/0/0
[PE2-GigabitEthernet0/0/0] mpls
[PE2-GigabitEthernet0/0/0] mpls ldp

 

完成配置后,确保所有的LDP邻居关系都正确的建立:

 

display mpls ldp session
LDP Session(s) in Public Network
Codes: LAM(Label Advertisement Mode), SsnAge Unit(DDDDMM)
A '*' before a session means the session is being deleted.
------------------------------------------------------------------------------
PeerID Status LAM SsnRole SsnAge KASent/Rcv
------------------------------------------------------------------------------
3.3.3.3:0 Operational DU Passive 000004 20/20
------------------------------------------------------------------------------
TOTAL: 1 session(s) Found.

 

其他设备的查看不再赘述。

 

display mpls lsp
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
2.2.2.2/32 3/NULL -/-
3.3.3.3/32 NULL/3 -/GE0/0/1
3.3.3.3/32 1024/3 -/GE0/0/1
4.4.4.4/32 NULL/1025 -/GE0/0/1
4.4.4.4/32 1025/1025 -/GE0/0/1
5.5.5.5/32 NULL/1026 -/GE0/0/1
5.5.5.5/32 1026/1026 -/GE0/0/1

 

上面输出的是PE1的标签转发表。我们看到关于网络中的/32主机路由都已经收到了标签。

3.PE1及PE2创建VPN实例,并运行PE-CE路由协议

PE1的配置如下:

 

[PE1] ip vpn-instance ABC #创建VPN实例
[PE1-vpn-instance-ABC] route-distinguisher 2345:1  #配置RD值
[PE1-vpn-instance-ABC-af-ipv4] vpn-target 2345:11  #配置RT值(导入及导出值均为
2345:11)
[PE1] interface GigabitEthernet 0/0/0
[PE1-GigabitEthernet0/0/0] ip binding vpn-instance ABC  #将该接口绑定到VPN实例ABC
[PE1-GigabitEthernet0/0/0] ip address 10.1.12.2 24
[PE1] ospf 1 vpn-instance ABC #运行基于VPN实例ABC的OSPF进程
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.12.2 0.0.0.0

 

CE1的配置如下:

 

[CE1] interface GigabitEthernet 0/0/0
[CE1-GigabitEthernet0/0/0] ip address 10.1.12.1 24
[CE1] interface LoopBack 0
[CE1-LoopBack0] ip address 1.1.1.1 32
[CE1] ospf 1 router-id 1.1.1.1
[CE1-ospf-1] area 0
[CE1-ospf-1-area-0.0.0.0] network 10.1.12.1 0.0.0.0
[CE1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0

 

PE2的配置如下:

 

[PE2] ip vpn-instance ABC
[PE2-vpn-instance-ABC] route-distinguisher 2345:1
[PE2-vpn-instance-ABC-af-ipv4] vpn-target 2345:11
[PE2] interface GigabitEthernet 0/0/1
[PE2-GigabitEthernet0/0/1] ip binding vpn-instance ABC
[PE2-GigabitEthernet0/0/1] ip address 10.1.56.5 24
[PE2] ospf 1 vpn-instance ABC
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.1.56.5 0.0.0.0

 

CE2的配置如下:

 

[CE2] interface GigabitEthernet 0/0/0
[CE2-GigabitEthernet0/0/0] ip address 10.1.56.6 24
[CE2] interface LoopBack 0
[CE2-LoopBack0] ip address 6.6.6.6 32
[CE2] ospf 1 router-id 6.6.6.6
[CE2-ospf-1] area 0
[CE2-ospf-1-area-0.0.0.0] network 10.1.56.6 0.0.0.0
[CE2-ospf-1-area-0.0.0.0] network 6.6.6.6 0.0.0.0

 

完成配置后,确保PE能够学习到直连CE的客户路由:

 

display ip routing-table vpn-instance ABC
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 OSPF  10 1 D 10.1.12.1 GigabitEthernet0/0/0
10.1.12.0/24 Direct 0 0 D 10.1.12.2 GigabitEthernet0/0/0
10.1.12.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
10.1.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0

 

PE1上VPN实例ABC的路由表中已经通过OSPF学习到CE1的客户路由1.1.1.1/32。

4.PE1及PE2创建MP-BGP进程,并建立MP-iBGP邻居关系

PE1的配置如下:

 

[PE1] bgp 2345
[PE1-bgp] router-id 2.2.2.2
[PE1-bgp] undo default ipv4-unicast #因为本实验中PE1-PE2之间无需交互IPv4路
由,因此取消IPv4单播协议的邻居关系自动建立
[PE1-bgp] peer 5.5.5.5 as-number 2345
[PE1-bgp] peer 5.5.5.5 connect-interface LoopBack 0
[PE1-bgp] ipv4-family vpnv4 unicast #进入IPv4的VPNv4地址族
[PE1-bgp-af-vpnv4] peer 5.5.5.5 enable #激活邻居5.5.5.5

 

PE2的配置如下:

 

[PE2] bgp 2345
[PE2-bgp] router-id 5.5.5.5
[PE2-bgp] undo default ipv4-unicast
[PE2-bgp] peer 2.2.2.2 as-number 2345
[PE2-bgp] peer 2.2.2.2 connect-interface LoopBack 0
[PE2-bgp] ipv4-family vpnv4 unicast
[PE2-bgp-af-vpnv4] peer 2.2.2.2 enable
[PE2] display bgp vpnv4 all peer
BGP local router ID : 5.5.5.5
Local AS number : 2345
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pref Rcv
2.2.2.2 4 2345 2 2 0 0036 Established 0

 

PE1及PE2的MP-iBGP邻居(VPNv4)关系已经建立成功。

5.PE1及PE2配置PE-CE路由协议与BGP的相互重发布

PE1的配置如下:

 

[PE1] bgp 2345
[PE1-bgp] ipv4-family vpn-instance ABC #将OSPF进程1的路由导入到BGP的VPN实例ABC对应的IPv4地址族中
[PE1-bgp-ABC] import-route ospf 1
[PE1] ospf 1 vpn-instance ABC #将BGP路由导入到OSPF进程1
[PE1-ospf-1] import-route bgp permit-ibgp

 

PE2的配置如下:

 

[PE2] bgp 2345
[PE2-bgp] ipv4-family vpn-instance ABC
[PE2-bgp-ABC] import-route ospf 1
[PE2] ospf 1 vpn-instance ABC
[PE2-ospf-1] import-route bgp permit-ibgp
display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
6.6.6.6/32 OSPF 10 3 D 10.1.12.2 GigabitEthernet0/0/0
10.1.56.0/24 O_ASE 150 1 D 10.1.12.2 GigabitEthernet0/0/0

 

CE1已经学习到了CE2所在站点的路由。

 

display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 OSPF 10 3 D 10.1.56.5 GigabitEthernet0/0/0
10.1.12.0/24 O_ASE 150 1 D 10.1.56.5 GigabitEthernet0/0/0

 

CE2也已经学习到了CE1所在站点的路由。

6.查看及验证

 

[PE1] display bgp vpnv4 all routing-table 6.6.6.6
BGP local router ID : 2.2.2.2
Local AS number : 2345
Total routes of Route Distinguisher(2345 1
BGP routing table entry information of 6.6.6.6/32:
Label information (Received/Applied): 1027/NULL
From: 5.5.5.5 (5.5.5.5)
Route Duration: 00h11m23s
Relay IP Nexthop: 10.1.23.3
Relay IP Out-Interface: GigabitEthernet0/0/1
Relay Tunnel Out-Interface: GigabitEthernet0/0/1
Relay token: 0x5
Original nexthop: 5.5.5.5
Qos information : 0x0
Ext-Community:RT <2345 : 11>, OSPF DOMAIN ID <0.0.0.0 : 0>,
OSPF RT <0.0.0.0 : 1 : 0>, OSPF ROUTER ID <10.1.56.5 : 0>
AS-path Nil, origin incomplete, MED 2, localpref 100, pref-val 0, valid, interna
l, best, select, pre 255, IGP cost 3
Not advertised to any peer yet
VPN-Instance ABC, Router ID 2.2.2.2:
Total Number of Routes: 1
BGP routing table entry information of 6.6.6.6/32:
Label information (Received/Applied): 1027/NULL
From: 5.5.5.5 (5.5.5.5)
Route Duration: 00h11m23s
Relay Tunnel Out-Interface: GigabitEthernet0/0/1
Relay token: 0x5
Original nexthop: 5.5.5.5
Qos information : 0x0
Ext-Community:RT <2345 : 11>, OSPF DOMAIN ID <0.0.0.0 : 0>,
OSPF RT <0.0.0.0 : 1 : 0>, OSPF ROUTER ID <10.1.56.5 : 0>
AS-path Nil, origin incomplete, MED 2, localpref 100, pref-val 0, valid, interna
l, best, select, active, pre 255, IGP cost 3
Not advertised to any peer yet

 

在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] display mpls lsp
-------------------------------------------------------------------------------
LSP Information: BGP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
1.1.1.1/32 1027/NULL -/- ABC
10.1.12.0/24 1028/NULL -/- ABC
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
2.2.2.2/32 3/NULL -/-
3.3.3.3/32 NULL/3 -/GE0/0/1
3.3.3.3/32 1024/3 -/GE0/0/1
4.4.4.4/32 NULL/1025 -/GE0/0/1
4.4.4.4/32 1025/1025 -/GE0/0/1
5.5.5.5/32 NULL/1026 -/GE0/0/1
5.5.5.5/32 1026/1026 -/GE0/0/1

 

从上面的输出我们可以看到PE1的标签转发表中,5.5.5.5的出站标签是1026。所以最终去往6.6.6.6的IP包被压入两层标签。内层VPN标签值是1027,外层LDP标签是1026。报文被处理后转发给了P1。P1在收到这个标签包后查看自己的标签转发表,注意,它只会查看外层标签。

 

[P1]display mpls lsp
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
3.3.3.3/32 3/NULL -/-
2.2.2.2/32 NULL/3 -/GE0/0/0
2.2.2.2/32 1024/3 -/GE0/0/0
4.4.4.4/32 NULL/3 -/GE0/0/1
4.4.4.4/32 1025/3 -/GE0/0/1
5.5.5.5/32 NULL/1026 -/GE0/0/1
5.5.5.5/32 1026/1026 -/GE0/0/1

 

从P1的转发表我们可以看出,1026的入站标签,对应的出站标签是1026,并且出站接口是GE0/0/1。因此它将收到的标签包的外层标签从1026置换成1026(碰巧置换前后标签值是一样的),然后从GE0/0/1口发出去。P2将收到这个标签包,也是查标签转发表:

 

display mpls lsp
-------------------------------------------------------------------------------
LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC In/Out Label In/Out IF Vrf Name
2.2.2.2/32 NULL/1024 -/GE0/0/0
2.2.2.2/32 1024/1024 -/GE0/0/0
4.4.4.4/32 3/NULL -/-
3.3.3.3/32 NULL/3 -/GE0/0/0
3.3.3.3/32 1025/3 -/GE0/0/0
5.5.5.5/32 NULL/3 -/GE0/0/1
5.5.5.5/32 1026/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-instance ABC -v -a 10.1.12.2 6.6.6.6
traceroute to ABC 6.6.6.6(6.6.6.6), max hops: 30 ,packet length: 40,press CTRL_C to
break
1 10.1.23.3[MPLS Label=1026/1027 Exp=0/0 S=0/1 TTL=1/1] 110 ms 60 ms 70 ms
2 10.1.34.4[MPLS Label=1026/1027 Exp=0/0 S=0/1 TTL=1/2] 110 ms 50 ms 80 ms
3 10.1.56.5 80 ms 80 ms 60 ms
4 10.1.56.6 110 ms 80 ms 70 ms

 

实际上是这样的:

华为

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分