详解 mpls vpn 的实现

来源:互联网 发布:java内建的annotation 编辑:程序博客网 时间:2024/05/24 05:13

MPLSVPN的实现

 

一、实验目的

该实验通过MPLSVPN的数据配置,使学生掌握路由器相关接口的IP地址设置、路由协议的配置以及MPLS VPN的完整的创建过程,从而加深对IP网络的IP编址、路由协议以及MPLS的相关理论的理解。

 

二、实验内容

利用网络模拟器GNS3模拟Cisco的实验环境,搭建IP网络,完成CE、PE和P路由器上的数据配置,使属于同一VPN的两个路由器能够互通。

 

三、实验设备

1.硬件:PC机。

2.软件:

①网络模拟器GNS3-0.8.6-all-in-one

②终端仿真程序SecureCRT6.7

③Cisco IOS文件C3640-JK9O3S-M-12.4(7a).BIN

 

四、实验步骤及要求

1. 创建网络拓扑

1)创建工程

打开GNS3软件,新建项目,命名为:MPLS_VPN_学号,如下图所示。

2)选择路由器

从左竖栏路由器图标中拖出7个c3600路由器,分别为R1~R7,其中R1、R3为PE,R2为P路由器,R1~R3组成MPLS骨干网,R4和R5为CE,R6和R7为普通路由器,R4和R6组成VPN1Site1,R5和R7组成VPN1 Site2,如下图所示。

 

 

可以使用绘制椭圆按钮来绘制椭圆形标记以标识骨干网和VPN的边界,如下图所示。

3)配置路由器插槽

选择R1,右键选择"配置"项,设置插槽如下图所示:

同理设置R2~R7,其中R6和R7只需设置插槽口slot0即可,不需设置slot1。

4)连接路由器

使用左栏连接线按钮连接各路由器,如下图所示。

连接路由器时注意各路由器的接口选择如下图所示,连接结束后点击显示接口标记按钮则各路由器接口间连接设置显示如下。

5)使用保存工程按钮保存工程。

3. 接口配置

R1:

 

configt    

int f0/0

ip address 12.1.1.1255.255.255.0

noshutdown

int f1/0

ip address 14.1.1.1255.255.255.0

noshutdown

intloopback0

ip address 1.1.1.1255.255.255.255

end    

show ip intb

write

 

 

 

R2:

 

config t

int f0/0

ip address 12.1.1.2255.255.255.0

noshutdown

int f1/0

ip address 23.1.1.2255.255.255.0

noshutdown

intloopback0

ip address 2.2.2.2255.255.255.255

end

show ip intb

write

 

 

R3:

 

configt    

intf0/0    

ip address 35.1.1.3255.255.255.0

noshutdown

int f1/0

ip address 23.1.1.3255.255.255.0

noshutdown

intloopback0

ip address 3.3.3.3255.255.255.255

end

show ip intb

write

 

 

R4:

 

config t

int f0/0

ip address 46.1.1.4255.255.255.0

noshutdown

int f1/0

ip address 14.1.1.4255.255.255.0

noshutdown

end    

show ip intb

write

 

 

R5:

 

configt    

int f0/0

ip address 57.1.1.5255.255.255.0

noshutdown

int f1/0

ip address 35.1.1.5255.255.255.0

noshutdown

end

show ip intb

write

 

R6:

 

config t

int f0/0

ip address 46.1.1.6255.255.255.0

noshutdown

intloopback0

ip address 6.6.6.6255.255.255.255

end    

show ip intb

write

 

R7:

 

config t

int f0/0

ip address 57.1.1.7255.255.255.0    

noshutdown

intloopback0

ip address 7.7.7.7255.255.255.255

end    

show ip intb

write

4. 骨干网内路由协议配置

在MPLS域内配置路由协议为OSPF协议,确保MPLS域内的R1、R2和R3在域内的所有直连接口和Loopback0口互通。具体配置命令如下:

R1:

 

configt

router ospf123

router-id1.1.1.1

network 1.1.1.1 0.0.0.0 a0

network 12.1.1.00.0.0.255 a 0

 

 

R2:

 

configt

router ospf123

router-id2.2.2.2

network 2.2.2.20.0.0.0 a 0

network 12.1.1.00.0.0.255 a 0

network 23.1.1.00.0.0.255 a 0

exit

intf0/0

ipospf priority 255

intf1/0

ipospf priority 255

 

 

R3:

 

config t

router ospf123

router-id3.3.3.3

network 3.3.3.30.0.0.0 a 0

network 23.1.1.0 0.0.0.255 a0

5. 骨干网内MPLS协议配置

1)全局开启CEF(必须配置):

R1(config)#ipcef

R2(config)#ipcef

R3(config)#ipcef

 

  1. 配置LDP (必须配置):

    配置R1、R2和R3在骨干网内的接口开通LDP。

     

    R1:

     

    intf0/0

    mpls labelprotocol ldp

    mpls ip

    end

    write

     

    R2:

     

    intf0/0

    mpls labelprotocol ldp

    mpls ip

    intf1/0

    mpls labelprotocol ldp

    mpls ip

    end

    write

     

    R3:

     

    intf1/0

    mpls labelprotocol ldp

    mpls ip

    end

    write

     

  2. 检查配置

    配置完毕后测试R1~R3的loopback0口是否实现标签交换,命令如下:

    R1#traceroute3.3.3.3 source 1.1.1.1

     

    6. 配置普通BGP

    在R1和R3之间配置普通BGP,因为在配置MP-BGP之前,需要保证正常的BGP邻居是正常连通的。

    1)在R1上配置普通BGP:

    R1:

     

    configt

    router bgp100

    bgprouter-id 1.1.1.1

    noauto-summary

    nosynchronization

    neighbor 3.3.3.3remote-as 100

    neighbor 3.3.3.3update-source loopback0

    2)在R3上配置普通BGP:

    R3:

     

    configt

    router bgp100

    bgprouter-id 3.3.3.3

    noauto-summary

    nosynchronization

    neighbor 1.1.1.1remote-as 100

    neighbor 1.1.1.1update-source loopback0

  3. 查看普通BGP邻居关系:

    R1(config-router)#end

    R1#show ip bgpsummary

    5 5 1 0 0 00:04:250

    R3(config-router)#end

    R3#show ip bgpsummary

    4)保存

    检查无误后保存路由器配置和工程。

    7. 在PE上创建VRF

    在PE上为用户创建相应的VRF,并且指定RD值,需要通信的两个用户网络之间,VRF和RD值保持一致。

    1)在R1上创建VRF,并指定RD值:

    R1(config)#ip vrfvpn1

    R1(config-vrf)#rd100:1

    2)在R3上创建VRF,并指定RD值:

    R3(config)#ip vrfvpn1

    R3(config-vrf)#rd100:1

    3)在PE上将连CE的接口划入VRF

    在PE上将相应的CE接口划入相应的VRF,以后从该接口进入的用户数据包,则属于相应的VRF,该用户的数据只能根据该VRF路由表作出转发决策。

    ① 在R1上将连CER4的接口f1/0划入VRF:

    R1

     

    intf1/0

    ipvrf forwarding vpn1

    ip add 14.1.1.1 255.255.255.0

    ② 在R3上将连CER5的接口f0/0划入VRF:

    R3:

     

    intf0/0

    ipvrf forwarding vpn1

    ipadd 35.1.1.3 255.255.255.0

    4)在PE上查看VRF的路由表情况

    从用户发到PE的数据包,PE只能根据该用户的VRF路由表作出转发决策,也就是说,如果两个要通信的用户网络,如果各自的内网路由没有出现在PE的VRF路由表里,那么他们将不能通信。

    ① 在PE R1上查看VRFvpn1的路由表:

    R1#show ip routevrf vpn1

     

    ② 查看PER1的全局路由表,已经不会再有连CE接口f1/0的路由了:

    R1#show iproute

    可以看见,PE R1在将连CE R4的接口f1/0划入VRFvpn1之后,该接口就进入VRF vpn1的路由表。并且要说明的是,该接口就不会再出现在全局路由表里。

    5)保存

    检查无误后保存路由器配置和工程。

    8. 创建MP-BGP

    通过上面在PE上查看VRF路由表发现,VRF路由表中并没有双方用户的路由,所以必须创建MP-BGP,来为双方用户网络传递路由信息。

    1)在PER1及R3上创建MP-BGP:

    R1:

     

    configt

    router bgp100

    noauto-summary

    address-familyvpnv4

    neighbor 3.3.3.3activate

    neighbor 3.3.3.3send-community both

     

     

    R3:

     

    configt

    router bgp100

    noauto-summary

    address-familyvpnv4

    neighbor 1.1.1.1activate

    neighbor 1.1.1.1send-community both

     

     

    配置好后,还需查看MP-BGP邻居:

    R1#show ip bgp allsummary

    可以看到,R1上已经和R3建立普通BGP邻居关系,同时也建立MP-BGP邻居关系。

    2)为MP-BGP创建VRF

    MP-BGP在收到用户的路由信息后,必须将其放入相应的VRF路由表,但是这个VRF表是要手工创建的,并且和该用户相关联的VRF名字保持一致:

    R1:

     

    router bgp100

    address-familyipv4 vrf vpn1

    nosynchronization

     

    R3:

     

    router bgp100

    address-familyipv4 vrf vpn1

    nosynchronization

    3)配置RT控制VRF路由信息

    MP-BGP的VRF路由表能让什么样的路由进入,是靠RT来控制的,要想让用户的路由被MP-BGP传递,就必须为VRF配置相应的RT,只有RT允许的RD路由,才能进入和出去VRF表。

    R1:

     

    ipvrf vpn1

    route-target both100:1

     

     

    R3:

     

    ipvrf vpn1

    route-target both 100:1

    由以上设置可实现VRFvpn1允许RD为100:1的路由进入和出去。

    配置好可以用show ip vrfdetail查看VRF的详细参数,如RD、RT、接口等。

    R1#show ip vrf detail

     

    4)配置PE-CE的路由协议,并将MP-BGP的路由重分布进该路由协议

    虽然MP-BGP的VRF已经允许相应的用户路由进入,但是在PE上,此时并不能获知用户的路由信息,所以MP-BGP的VRF路由表中,依然为空,要想让MP-BGP的VRF路由表能够导入相应的用户路由,那就必须和用户CE之前启用路由协议,以获得对方的路由信息,从而导入MP-BGP的VRF表。

    ① 在PER1一端启用RIP路由协议:

  4. 在PE R1上配置RIP:

    R1:

     

    routerrip

    version2

    noauto-summary

    address-familyipv4 vrf vpn1

    noauto-summary

    network14.0.0.0

    redistribute bgp100 metric 1

    发布路由都是在address-family中进行的,并且请关闭自动汇总功能,且将MP-BGP的路由重分布进RIP,否则对方CE将无法得知远程用户的路由信息。

  5. 在CE R4上配置RIP:

    R4:

     

    configt

    routerrip

    version2

    noauto-summary

    network14.0.0.0

    network46.0.0.0

    end

    write

     

    ② 在PER3一端启用OSPF路由协议:

  6. 在PE R3上配置OSPF:

    R3:

     

    router ospf 100vrf vpn1

    router-id35.1.1.3

    network 35.1.1.30.0.0.0 a 0

    redistribute bgp100 subnets

     

    同样也要将MP-BGP的路由重分布进OSPF,以便传递给CE端。

  7. 在CE R5上配置OSPF:

    R5:

     

    configt

    router ospf100

    router-id5.5.5.5

    network 35.1.1.50.0.0.0 a 0

    network 57.1.1.50.0.0.0 a 0

    end

    write

     

    5)将PE-CE间的路由重分布进MP-BGP

    PE-CE之间在运行IGP时,无法自动导入MP-BGP,所以手工重分布。

    ①在R1上将RIP路由导入MP-BGP:

    R1:

     

    router bgp100

    address-familyipv4 vrf vpn1

    redistributerip

    end

    write

     

    ②在R3上将OSPP路由导入MP-BGP:

    R3:

     

    router bgp100

    address-familyipv4 vrf vpn1

    redistribute ospf100

    end

    write

     

    6)保存

    检查无误后保存路由器配置和工程。

    9. 用户端路由器的配置

    用户端(通常称为C路由器)R6及R7加入各自CE的路由协议进程:

    R6:

     

    configt

    router rip

    version 2

    no auto-summary

    network 46.0.0.0

    network 6.6.6.6

    end

    write

     

    R7:

     

    configt

    router ospf100

    router-id7.7.7.7

    network 7.7.7.70.0.0.0 a 0

    network 57.1.1.00.0.0.255 a 0

    end

    write

     

    保存路由器配置和工程。

    至此,设置已完全结束。

    10. 验证:查看路由

    1)查看MP-BGP路由

    R2#show ip bgpvpnv4 all

     

    R3#show ip bgpvpnv4 all

     

    R3#show ip bgpvpnv4 vrf vpn1 6.6.6.6/32

     

    可以看出,MP-BGP已经拥有双方用户网络的内部路由信息,并且通过查看MP-BGP路由详细信息可知,这些路由带有BGP扩展属性RT即ExtendedCommunity: RT:100:1。

    2)查看PE上VRF路由

    R1#show ip routevrf vpn1

    R3#show ip routevrf vpn1

    可以看出,PE R1及PER3上的VRF已经拥有双方用户的网络信息。

  8. 查看CE路由

    因为PE上已经拥有双方用户的路由信息,并且PE和CE之间也运行路由协议,这些路由也会出现在CE的路由表中,从而双方用户可以实现通信:

    R4#show iproute

    同理查看R6,可以看到,两个CE 上已经拥有所有用户的内部路由。

    4)查看客户端路由

    R6#show iproute

    同理可以查看R7上路由,可以看出,经过设置,两个客户端终于有了去往对方的路由信息。

    11. 测试用户间通信并跟踪路由

    R6#ping 7.7.7.7source 6.6.6.6

    R6#traceroute7.7.7.7 source 6.6.6.6

    由上可以看出,R6和R7之间已经成功穿越MPLS网络将数据包发送给对方远程用户网络,MPLS_VPN配置成功,工作正常。

     

    五、实验报告

    实验报告的内容:包括实验名称;实验目的;实验内容(实验操作的步骤或实验过程,要求步骤完整);实验结果(实验结果分析,实验中遇到的问题及解决方法)。

    实验报告的要求:

    实验报告以纸质文档形式递交。实验报告要书写规范、文字简练、语句通顺、图表清晰。

     

    六、实验思考题

    1.简述三层MPLSVPN的基本原理。

    答:整个MPLSVPN体系结构可以分成控制面和数据面,控制面定义了LSP的建立和VPN路由信息的分发过程,数据面则定义了VPN数据的转发过程。在控制层面,客户路由器是通过CE和PE路由器之间、PE路由器之间的路由交互知道属于某个VPN的网络拓扑信息。除了路由协议之外,在控制层面工作的还有LDP,它在整个MPLS网络中进行标签的分发,形成数据转发的逻辑通道LSP。 
    在数据转发层面,MPLS VPN网络中传输的VPN业务数据采用外标签(隧道标签)和内标签(VPN标签)两层标签栈结构。当VPN分组被打上两层标签后,就通过PE输出接口转发出去,然后在MPLS骨干网中沿着LSP被逐级转发。在出口PE之前的最后一个P路由器上,外层标签被弹出,P路由器将只含有VPN标签的分组转发给出口PE路由器。出口PE路由器根据内层标签查找对应的输出接口,在弹出VPN标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现了整个数据转发过程。
    2.简述三层MPLS VPN中PE路由器的配置步骤。
    答:① 配置PE路由器相关接口的IP地址;     
    ②配置路由协议; 
    ③在PE上创建VRF;     
    ④创建MP-BGP;
    3.MPLS VPN中P路由器转发的数据包有两层标签,说明这两层标签分别是由什么协议分配的。
    答:外层标签一般由LDP来分配,如果做流量工程的话也可以用RSVP-TE分配; 
    内层标签由MP-BGP来分配,如果是L2 VPN的话也可用Remote LDP分配。
    4.简述MPLS VPN中RT和RD的作用。
    答:RD称作路由标识符,这个标识符在服务提供商的网络中是独一无二的。VRF中包括一个独一无二的地址,叫做VPN-IP地址,是由RD和用户的IP 地址连接形成的。RD能为相同的IPV4的地址前缀产生不同的路由。 
     RT 使用了BGP的扩展团体属性,其本质是每个VRF表达自己的路由取舍及喜好的方式。RT可以分为两部分:Export Target与Import Target。当PE从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记。当PE收到VPNv4路由信息时,只有带RT标记与VRF表中任意一个Import RT相符的路由才会被导入到VRF表中,从而形成不同的VPN,实现VPN的互访与隔离。通过对Export RT与Import RT合理配置,运营商可以构建不同拓扑类型的VPN。

     

原创粉丝点击