详解 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
- 配置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
- 检查配置
配置完毕后测试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
- 查看普通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路由协议:
- 在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将无法得知远程用户的路由信息。
- 在CE R4上配置RIP:
R4:
configt
routerrip
version2
noauto-summary
network14.0.0.0
network46.0.0.0
end
write
② 在PER3一端启用OSPF路由协议:
- 在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端。
- 在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已经拥有双方用户的网络信息。
- 查看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。
在数据转发层面,MPLSVPN网络中传输的VPN业务数据采用外标签(隧道标签)和内标签(VPN标签)两层标签栈结构。当VPN分组被打上两层标签后,就通过PE输出接口转发出去,然后在MPLS骨干网中沿着LSP被逐级转发。在出口PE之前的最后一个P路由器上,外层标签被弹出,P路由器将只含有VPN标签的分组转发给出口PE路由器。出口PE路由器根据内层标签查找对应的输出接口,在弹出VPN标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现了整个数据转发过程。
2.简述三层MPLSVPN中PE路由器的配置步骤。
答:①配置PE路由器相关接口的IP地址;
②配置路由协议;
③在PE上创建VRF;
④创建MP-BGP;
3.MPLSVPN中P路由器转发的数据包有两层标签,说明这两层标签分别是由什么协议分配的。
答:外层标签一般由LDP来分配,如果做流量工程的话也可以用RSVP-TE分配;
内层标签由MP-BGP来分配,如果是L2VPN的话也可用Remote LDP分配。
4.简述MPLSVPN中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。
- 详解 mpls vpn 的实现
- mpls vpn剩余笔记
- MPLS VPN随堂笔记1
- MPLS VPN随堂笔记2
- MPLS VPN随堂笔记3
- SSH Tunnel 实现VPN的功能(一)
- SSH Tunnel 实现VPN的功能(二)
- CCIE-MPLS VPN-实验手册(上卷)
- CCIE-MPLS VPN-实验手册(中卷)
- CCIE-MPLS VPN-实验手册(下卷)
- em的错误 <转载>
- 自制mpls ldp实验
- ASP.NET的 Session 详解
- [转]Mysql 的 auto_increment 详解
-  
- 安装Oracle VPN
-
- LIST BOX 联动的实现
- 数组转换list集合问题
- 自制EIGRP配置实验大全
- mybatis入门程序
- 提高你的Python: 解释yield和Generators(生成器)
- MYNTEYE双目摄像头orb-slam & okvis demo
- 详解 mpls vpn 的实现
- jackson实现序列化的反序列化解析
- lombok的简单介绍(1)
- 【★】生成树算法终极解析!
- CCNA+NP学习笔记—序章
- 逆向工程的创建
- 云软件——艺术字符设计!【推荐】
- sourceTree使用
- 自制割接(平滑过滤)实验大全