前言:

在技术圈中看到这道IE实验题(http://g.51cto.com/ciscotest/54780),对自学MPLS ×××刚刚才入门的我,在看到这IE的实验题,涉及了IS-ISOSPFBGPMPLSMPSL ×××等综合,心中不产生试一试的念头。在细细品味这道IE实验的时候,对我最大的难题就是MPLS ×××的跨区域(多个ISP)的实现。这两个星期以来,一直在研究跨域的MPLS ×××实验问题,上网查找了MPLS ×××跨域方面的资料,无奈大多数资料就一张图一个配置,没有什么详细的说明或者是一个思路。最后,在我自己搜集的80多个G资料库中,找到一个不错的跨域MPLS ×××资料MPLS Configuration on Cisco IOS Software,这本书很纤细的讲述了关于MPLS配置,无奈全英文的,不得不用那个翻译的牛头不对马嘴的金山快译看,总算或多或少的明白了什么是MPLS×××Option A、Option BOption C等的意思。为了完成这道IE实验题,由于小T我的电脑CPU还是奔4 3.0、内存只有512M,为了节省CPU和内存资源,我搜索能达到这次实验要求又能节省资源的IOS,感谢网友艾文送给我一个cisco IOS搜索软件,让我轻松的找找了这次试验我想要的IOSc2691-jk9o3s-mz.122-15.T17.bin,支持MPLS ×××,标签分发协议是LDP的,还支持做IPSec ×××等等),虽然找到了自己的想要的IOS,但在做实验的时候,协议开启后,我的电脑嗡嗡的响个不停,可以说,为了完成这次试验,我的电脑在极限操作了。小T我并不是什么网络高手,所以,在跟交流这道IE实验题的时候,难免有出错的,说的不好处,还请大家指点批评。

在开始讲述今天的实验之前,首先说明一下,我做的这道IE实验题(http://g.51cto.com/ciscotest/54780),我只完成了85%左右,还有些细节方面,我简单描述下方法,但整体框架已经全部通了,还请大家跟小T我一起交流探讨一下。

现在,先聊聊MPLS ×××,已经学习了Ipsec ×××PPTPl2tpSSL ×××Easy ××××××技术,MPLS ×××的给我的感觉有点像是虚拟防火墙似的,在一个物理设备逻辑成几个设备,那么MPLS ×××则是在各个PE路由器上,虚拟出了多张虚拟路由表,每个路由表都是独立,相互不影响,也就说,一台PE路由上有公网的路由表和私网的路由表,那么我们私网的路由表的路由在公网路由表中是看不见得,同样公网路由表中的路由在私网路由表上也是看不到的、简单点我们可以想象成一个路由器就变成了多个路由器,路由选路都是根据自己的路由表路由

在讲述本次试验的时候,先申明下,小T我做的只是个参考配置,跟原题有微弱的差别,但大致还是相同的。本次试验,涉及的技术原理太多,不好一一在这讲述,本次试验重点简述的我的配置过程。在实际工程中也是一样,都是一步一步的完成配置,这样做的好处是确保出错率降到最低。

首先,是实验的网络拓扑图:

200910271256645932750.jpg

根据题意 http://g.51cto.com/ciscotest/54780)分析,在本次试验中,R1CER2R3R4R5即是PE也是PR6PP是核心路由器,它要具备传递×××v4的路由,就说PE之间存在P设备,那么PE×××v4路由被P设备所传递,否侧PE不能相互学习到路由)。题目要求R1R3R5的通过MPLS ×××,让172.99.11.0/24192.168.202.0/24172.99.5.0/24这些私网能够相互通信。简单的描述一下,数据过程,R1R5的过程,R1172.99.11.0/24172.99.5.0/24,首先,数据进入R1,由于R1CE,那么数据就跟普通的路由器一样选择到目标网络的路由(由于题目要求,R1 - à R2.R2 à R3 R3 à R5 主链路),数据进入到R2,由于R2R1相连的接口加入到了虚拟路由转发表中,那么数据是不会走真实的路由,走的是虚拟路由,根据数据的封装,IP包被私网标签封装,再被公网标签封装,在MPLS设备中,在没到达目标方的PE,都是公网标签进行交换变更。到达目标PE时,去除公网标签,在取出私网标签,数据以更具虚拟路由转发表,从相应的接口出去,之后就是普通的IP包了!

以下,是实验的IP规划:

loopback:

R1:99.99.0.1 255.255.255.255

R2:99.99.0.2 255.255.255.255

R3:99.99.0.3 255.255.255.255

R4:99.99.0.4 255.255.255.255

R5:99.99.0.5 255.255.255.255

R6:99.99.0.6 255.255.255.255

链路IP

R1<--->R2

R1 172.99.12.1 255.255.255.0

R2 172.99.12.2 255.255.255.0

to YW

R1 172.99.11.1 255.255.255.0

R1<--->R4

R1 172.99.14.1 255.255.255.0

R4 172.99.14.2 255.255.255.0

R2<--->R4

R2 99.99.24.1 255.255.255.0

R4 99.99.24.2 255.255.255.0

R2<--->R3

R2 99.99.23.1 255.255.255.0

R3 99.99.23.2 255.255.255.0

R3<--->R4

R3 99.99.34.1 255.255.255.0

R4 99.99.34.2 255.255.255.0

to YW

R3 192.168.202.1 255.255.255.0

R3<--->R5

R3 99.99.35.1 255.255.255.0

R5 99.99.35.2 255.255.255.0

R4<--->R6

R6 99.99.46.2 255.255.255.0

R4 99.99.46.1 255.255.255.0

R5<--->R6

R5 99.99.56.1 255.255.255.0

R6 99.99.56.2 255.255.255.0

to YW

R5 172.99.5.1 255.255.255.0

本次实验步骤:

一, 基本连通的性的配置( 注:小T我在附件中共享了详细配置步骤,这里我只简单的描述一些注意事项和重点)。 不管是在做实验,还是在做工程,这一步是最基本,但又是常常被大家所忽视的。很多人配置好了IP就马上开始,出问题,排查了很久,最好猜发现时IP地址错了。所以,小T我特别强调,这一步很重要,在配置好IP后,先Ping一下直接的IP是否通了,在确定IP没错再开始下一步。

二, IGP 基本连通配置,在这一步配置我们常见的IGP协议,如:RIPIS-ISOSPF等等,让AS中路由器都学到路由。在这一步要检查好路由是否学到了。

三, 开启MPLS。让AS内的路由分发和学习标签,这就公网标签。

四, BGP 配置。配置好EBGPIEBGP邻居,根据需求让不同AS间学习到对方ASBGP路由。

五, 配置MP-BGP。让MP-IBGPMP-EBGP邻居建立起来。MP-GBP协议用来传递和学习×××v4路由。

六, PE上创建VRF(虚拟路由转发表),将与CE相连的接口加入到相应的VRF中。在PE上,将VRF路由重发布到与CE相同的协议中,CE的路由重发布到VRF中。

七, CE 的路由配置。跟我平时的普通路由配置是一样的。最后他会学到目标死网的路由。

部分实验命令简单解释,详细的还请大家到网络查资料。

ip cef (开启ciscocef转发)

mpls label protocol ldp MPLS的标签协议选择为ldpcisco私有的为tdp

int s1/3

mpls ip (接口开启MPLS

mpls mtu 1520 (由于MPLS ×××的数据包大于了1500,故设置为1520

router bgp 99

no bgp default route-target filter (在MP-EGBP中,若不关闭,则无法传递×××v4路由)

address-family ***v4 ×××v4 地址族配置)

neighbor 99.99.0.2 activate (激活MP-GBPMP-IBGP邻居)

neighbor 99.99.0.2 send-community extended (发送团体属性支持×××v4路由的传递)

neighbor 99.99.0.2 next-hop-self (下一跳指向自己)

neighbor 99.99.35.2 activate (激活MP-GBPMP-EBGP邻居)

neighbor 99.99.35.2 next-hop-self

ip vrf xiaot (创建虚拟转发表)

rd 1:110 (路由区分符)

route-target export 2:110 (路由目标传出标识)

route-target import 2:110 (路由目标接受标识)

exit

int s 1/1

ip vrf forwarding xiaot (标定VRF

ip add 172.99.14.2 255.255.255.0

no shut

exit

router ospf 299 vrf xiaot (在VRF中运行与CE相同的路由协议,这是OPSF,其他协议有所不同,大家查阅资料)

router-id 99.99.0.2

network 99.99.0.4 0.0.0.0 area 0

network 172.99.12.0 0.0.0.255 area 0

redistribute bgp 99 metric 1000 metric-type 1 subnets (将通BGP学到的路由重发到ospf路由中来)。

router bgp 99

address-family ipv4 vrf xiaot 选择在路由协议内为每个VRF进程配置)

redistribute ospf 299 metric 1000 match internal external 1 external 2 ( OSPF重发布道BGP)

测试结果: (简单举例,详细的测试结果在附件中共享)

R2 R3R4IS-IS邻居关系

R2#show clns neighbors

System IdInterfaceSNPAStateHoldtimeType Protocol

R3Se1/3*HDLC*Up25L1 IS-IS

R4Se1/2*HDLC*Up21L1 IS-IS

R3#show clns neighbors

System IdInterfaceSNPAStateHoldtimeType Protocol

R4Se1/0*HDLC*Up20L2 IS-IS

R2Se1/3*HDLC*Up29L1 IS-IS

R4#show clns neighbors

System IdInterfaceSNPAStateHoldtimeType Protocol

R3Se1/0*HDLC*Up26L2 IS-IS

R2Se1/2*HDLC*Up27L1IS-IS

测试结果:

CE 上的情况:

R1#show ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

Gateway of last resort is not set

99.0.0.0/32 is subnetted, 1 subnets

C99.99.0.1 is directly connected, Loopback0

172.99.0.0/24 is subnetted, 4 subnets

C172.99.14.0 is directly connected, Serial1/1

C172.99.12.0 is directly connected, Serial1/0

C172.99.11.0 is directly connected, FastEthernet0/0

O E1172.99.5.0 [110/1100] via 172.99.12.2, 00:00:20, Serial1/0

O E1 192.168.202.0/24 [110/1100] via 172.99.12.2, 00:00:20, Serial1/0

(通过R2×××v4路由重发布进来的)

R1#traceroute 172.99.5.1

Type escape sequence to abort.

Tracing the route to 172.99.5.1

1 172.99.12.2 116 msec 32 msec 16 msec

2 99.99.35.1 [MPLS: Label 30 Exp 0] 92 msec 156 msec 116 msec

3 172.99.5.1 212 msec *284 msec

PE上的信息:

R2#show mpls forwarding-table 公网标签

LocalOutgoingPrefixBytes tagOutgoingNext Hop

tagtag or VCor Tunnel Idswitchedinterface

16Pop tag99.99.0.3/324230Se1/3point2point

17Pop tag99.99.0.4/323633Se1/2point2point

18Pop tag99.99.34.0/240Se1/2point2point

Pop tag99.99.34.0/240Se1/3point2point

22Untagged99.99.0.1/32[V]0Se1/0point2point

23Untagged172.99.14.0/24[V] 0Se1/0point2point

24Aggregate172.99.12.0/24[V] 636

R2#show ip bgp ***v4 all labels (私网标签)

NetworkNext HopIn label/Out label

Route Distinguisher: 1:110 (xiaot)

99.99.0.1/32172.99.12.122/nolabel

172.99.5.0/2499.99.0.3nolabel/30

172.99.12.0/240.0.0.024/aggregate(xiaot)

172.99.14.0/24172.99.12.123/nolabel

192.168.202.099.99.0.3nolabel/27

R2#show ip route vrf xiaot 查看虚拟路由转发表

Routing Table: xiaot

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

Gateway of last resort is not set

99.0.0.0/32 is subnetted, 1 subnets

O99.99.0.1 [110/101] via 172.99.12.1, 01:23:33, Serial1/0

172.99.0.0/24 is subnetted, 3 subnets

O172.99.14.0 [110/300] via 172.99.12.1, 01:23:33, Serial1/0

C172.99.12.0 is directly connected, Serial1/0

B172.99.5.0 [200/0] via 99.99.0.3, 00:09:55

B192.168.202.0/24 [200/0] via 99.99.0.3, 00:10:25

(通过MP-BGP学到的路由)

R5#ping vrf xiaot 99.99.0.1 (在R5上测试MPLS×××连通,小T我就没再给R5做个CE了,电脑已经是极限操作了)

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 99.99.0.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 92/132/164 ms

后语:

本次试验小T我只完成了 我只完成了85%左右,还有一点路由过滤和路由优化,就留给大家研究了。通过这次的实验,小T我充分的认识到,虽然很多技术都学过了,但还不够深入,原理还不够理解透彻,在做本次试验的时候,查阅前面的知识和自学MPLS×××占了大部分时间。好好自我反省下,调整好自己的心态,重新开启。本次实验,不足之处,太请各位指点批评,小T我坚信,技术只有交流才能有更好更快的进步!
欢迎大家常到我博客做客!!!
---------------------小T
注:附件中有详细的配置过程