个、第3个数据包„„同样的操作。包含查询路由表、重写MAC地址,CRC校验等。
系列路由器。或者12000系列路由器。
Netflow switching 通过一种标准的交换机制,处理了流的第一个数据包,然后就创建了网路流缓存。
设计网络流交换的目的是,提供一种高效率的机制。来处理扩展或复杂的訪问列表时,不必像其它的交换方式一样丧失同样多的系统性能。在网络流交换方式下,能够为每一个流收集具体的记账信息。对于新公布的IOS软件来说,网络流交换被专门用来实现该目的。而不再用来交换数据包了。在同一时候启用CEF和网络流交换的情况下。CEF为IP数据包提供交换路线。并生成流缓存。而网络流交换被用来向流收集器输出统计信息。
这些流信息包含基于每一个用户、每种协议、每一个端口以及每种类型的服务统计信息。
这些信息被广泛用于各种目的,比如:网络分析和规划、记账以及计费。经过统计,大致65536条数据流(flow)会耗费4MB的systembuffer
Cisco Express Forwarding 思科CEF是最为高效的一种三层协议。进程交换和基于缓存的交换都是数据驱动。CEF是拓扑驱动(topology-driven),并与路由选择表紧密相关, CEF 是由新的cisco设备使用的提供线速路由选择的技术。CEF让分组交换全然绕过路由处理器。通过专门的数据结构来完毕。该数据结构通过路由处理器和交换处理器之间的一个通信过程来动态更新。通常,CEF被觉得是“没有路由,一直交换”基于CEF的机制针对全部的分组,包含给定流中的第一个分组都用硬件处理的。路由选择表仍然由路由器的CPU维护,可是创建了两张额外的表:转发信息库(FIB,Forwarding Information Base)表:该表是从路由选择表中拷贝过来的转发信息,不包含不论什么路由选择协议信息。
路由表有不论什么增删变化。FIB表均会随之变化;邻接表:维护一个邻近结点(假设两个节点能通过第2层一跳到达彼此则被觉得是邻接)以及他们相关的第2层MAC重写或下一条信息的数据库。FIB表由一棵四层的树组成,是依照IPv4所使用的点分十进制来分层的,CEF依赖最长匹配转发算法,这意味着依照降序搜索整棵树知道“最长匹配。 FIB和邻接表都被优化提供进行转发决定所需的信息,而没有很多其它的其它信息,假设FIB表已满,兴许表项将和现有表项比較。并以牺牲不具体表项的代价来保存更具体的表项。
FIB表的长处:1、能够被硬件ASIC调用2、解决递归路由问题。直接找到下一跳3、 扩展性。应用于MPL.邻接表是由ARP实现的。将第2层地址映射到对应的第3层地址上。路由器能从路由选择更新中发现下一跳路由器,并对应的在暂时表中添加表项。这个处理让路由器构建了第3层分组转发所需的下一跳重写信息。整体来讲CEF的长处:1、可扩展性(Scalability):当激活了分布式CEF(Distributed CEF)模式时。CEF在每一块线卡(line card)上也提供了全部的交换能力。2、增强了性能:CEF使用CPU率较低,很多其它的CPU处理能力能够专注于第3层的服务,比方动态路由协议的执行。3、弹性(Resilience):在大型动态网络中,CEF提供了更好的一致性和稳定性
ATM是以信元为基本单位进行信息传输、复用和交换的。ATM信元具有53字节的固定长度,当中前5个字节是信元头,其余48个字节是有效载荷。
ATM信元头的功能有限,主要用来标识虚连接,另外也完毕了一些功能有限的流量控制,拥塞控制,差错控制等功能。ATM传输数据技术屏弃了繁琐的路由查找,改为简单高速的标签交换,它适用于局域网和广域网,它具有高速传输数据率和支持很多种类型如声音、数据、传真、实时视频、CD质量音频和图像的通信。ATM有它自己的參考模型,既不同于位报头;在ATM中。标记置于虚电路标识符/虚通道标识符(VCI/VPI)信元报头中。对于MPLS可扩展性很关键的一点是标记仅仅在通信的两个设备之间有意义。在网络核心,路由器/交换机仅仅解读标记并不去解析IP数据包。
IP包进入网络核心时,边界路由器给它分配一个标记。自此,MPLS设备就会自始至终查看这些标记信息,将这些有标记的包交换至其目的地。
因为路由处理降低,网络的等待时间也就随之缩短,而可伸缩性却有所添加。
MPLS数据包的服务质量类型能够由MPLS边界路由器依据IP包的各种參数来确定。如IP的源地址、目的地址、端口号、TOS值等參数。另外对于到达同一目的地的IP包,可依据其TOS值的要求来建立不同的转发路径,以达到其对传输质量的要求。同一时候,通过对特殊路由的管理。还能有效地解决网络中的负载均衡和拥塞问题。
当网络中出现拥塞时。MPLS可实时建立新的转发路由来分散流量以缓解网络拥塞。
MPLS网络结构
MPLS网络由LER(标签边缘路由器)和LSR(标签交换路由器)组成。
LER位于ATM骨干网的边缘并作为MPLS的入口/出口路由器。LER执行全部的第三层功能和由执行LDP而产生的基于LIB(LabelInforinationBase)的标签绑定功能。LER连到网络内部的LSR。LSR执行基于LIB的标签交换,具有第三层转发分组和第二层交换分组的功能。同一时候也能执行传统IP选路协议和执行一个特殊控制协议与相邻LSR协调FEC/标签的绑定信息。LER与LSR之间的LSP是通过LDP协议建立起来的。
-
转发等价类: MPLS作为一种分类转发技术,将具有同样转发处理方式的分组归为一类,称为FEC(Forwarding EquivalenceClass。转发等价类)。
同样FEC的分组在MPLS网络中将获得全然同样的处理。
FEC的划分方式很灵活。能够是以源地址、目的地址、源端口、目的端口、协议类型或VPN等为划分依据的随意组合。
比如,在传统的採用最长匹配算法的IP转发中,到同一个目的地址的全部报文就是一个FEC。
-
标签 :Label是一个长度固定。仅具有本地意义的短标识符。用于唯一标识一个分组所属的FEC。一个标签仅仅能代表一个FEC。
标签长度为4个字节,假设链路层协议具有标签域,如ATM的VPI/VCI。则标签封装在这些域中叫做信元模式;否则。标签封装在链路层头和网络层数据之间的一个垫层中叫做帧模式。这样,随意链路层都能够支持标签。标签共同拥有4个域:标签共同拥有4个域:
Label时表示为最底层标签。
TTL时表示每一个接口指定一个标签空间;取值为0时表示整个LSR使用一个标签空间。
LDP标签分发 :标签的分发过程有两种模式。主要差别在于标签映射的公布是上游请求(DoD)还是下游主动公布(DU)。具有标签分发邻接关系的上游LSR和下游LSR之间必须使用同样的标签公布方式。否则LSP无法正常建立
-
DoD(downstream-on-demand)模式 :上游LSR向下游LSR发送标签请求消息(Label Request Message)。当中包含FEC的描写叙述信息。下游LSR为此FEC分配标签。并将绑定的标签通过标签映射消息(Label Mapping Message)反馈给上游LSR。
下游LSR何时反馈标签映射消息。取决于该LSR採用的标签分配控制方式。
採用Ordered方式时,仅仅有收到它的下游返回的标签映射消息后,才向其上游发送标签映射消息;採用Independent方式时,无论有没有收到它的下游返回的标签映射消息,都马上向其上游发送标签映射消息。上游LSR通常是依据其路由表中的信息来选择下游LSR。
DU(downstream unsolicited)模式 下游LSR在LDP会话建立成功后。主动向其上游LSR公布标签映射消息。上游LSR保存标签映射信息,并依据路由表信息来处理收到的标签映射信息。
标签分配控制方式(LabelDistribution Control Mode)分为两种:
独立标签分配控制(Independent):LSR能够在随意时间向与它连接的LSR通告标签映射。这样的方式可能导致在收到下游标签之前就向上游公布了标签。
有序标签控制方式(Ordered):对于LSR上某个FEC的标签映射,仅仅有当该LSR已经具有此FEC下一跳的标签映射消息或者该LSR就是此FEC的出口节点时,该LSR才干够向上游发送此FEC的标签映射。
标签保持方式(Label Retention Mode)是指LSR对收到的、但眼下暂时用不到的标签—FEC绑定的处理方式。标签保持方式也分为两种:
-
*标签保持方式(Liberal):对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。
使用*标签保持方式,LSR能够迅速适应路由变化;而使用保守标签保持方式,LSR能够分配和保存较少的标签数量。
守标签保持方式(Conservative):对于从邻居LSR收到的标签映射,仅仅有当邻居LSR是自己的下一跳时才保留。保守标签保持方式通常与DoD方式一起,用于对于标签空间有限的LSR
标签交换中的几个基本概念
NHLFE(Next Hop LabelForwarding Entry):下一跳标签转发项。用于描写叙述对标签执行的操作。包含入栈(Push)操作和交换(Swap)操作。
FTN(FEC to NHLFE map):在Ingress节点将转发等价类FEC映射到NHLFE的过程。
-
ILM(Incoming Label Map):入标签映射。
对于接收的标签分组,LSR将标签映射到NHLFE的过程。包含空(Null)操作、出栈(Pop)操作。
标签交换的过程 入口LER(Ingress)将进入网络的分组划分成转发等价类FEC。属于同样FEC的分组在MPLS域中将经过同样的路径。即使用同一条LSP。LSR对到来的FEC分组分配一个标签,然后从对应的接口转发出去。标签交换的具体操作描写叙述例如以下:
LSP沿途的全部LSR都先建立ILM,入标签是依据ILM表项进行映射的;
对于接收到的标签分组,LSR将标签映射到NHLFE。
LSR仅仅需依据标签从标签信息表中找到对应的NHLFE,用新的标签替换原来的标签,然后对标签分组继续转发
标签分发与分配的注意:
标签的分配是将MPLS标签插入到数据包中;
标签的分发是将MPLS标签传递给邻居路由器
标签的分配仅仅在本地有意义
标签的分配(allocation):决定需不须要对该路由条目分配标签。或者说给什么样的条目分发标签。对于帧模式来说,这个动作是本地路由器作出的,与其它路由器无关
标签的分发(distribution):决定将产生的标签传递给谁、怎样传的过程
标签的保留:像ARP一样,在路由条目失效后一定时间内标签继续有效
帧模式的标签分配原则是:independantcontrol独立控制。即无论能否收到邻居传递过来的标签。都会对本地前缀分配标签。
帧模式的标签分发原则是:下游自主,即无论你有没实用到我发给你的标签,仅仅要建立了邻居关系,我都会把我本地的标签发给你。这里的上下游是指数据转发的上下游。
帧模式的标签保留原则是:*。即谁分配的标签谁保留。
帧模式的标签保存:将邻居传递过来的标签保存在LFIB里面,同一时候保存在FIB里面
信元模式的标签分配原则:按序
信元模式的标签分发原则:按需,即收到请求之后才分发。
信元模式的标签保留原则:保守,即仅仅保留下游路由器发过来的标签
F)LDP的操作主要包含下面四个阶段
-
发现阶段 :在这一阶段,希望建立会话的LSR向相邻LSR周期性地发送Hello消息,通知相邻节点自己的存在。
通过这一过程。LSR能够自己主动发现它的LDP对等体,而无需进行手工配置。
LDP有两种发现机制:
-
基本发现机制用于发现本地的LDP对等体,即通过链路层直接相连的LSR,建立本地LDP会话。这样的方式下,LSR周期性以UDP报文形式从接口发送LDP链路Hello消息(LDP Link Hello),发往标识“子网内全部路由器”的组播地址。
LDP链路Hello消息带有接口的LDP标识符及其它相关信息。假设LSR在某个接口收到了LDP链路Hello消息。则表明在该接口(链路层)存在LDP对等体。
-
字节,所以仅仅要改成比正常MTU多8字节就可以。)
而改MTU还必须在MPLS网络中全部设备上进行更改,除非同意分段。MPLS对TTL的处理
MPLS的TTL处理包含IP TTL复制和ICMP响应报文返回路径这两个方面
-
IP TTL复制 :MPLS标签中包含一个8位的TTL域,其含义与IP头中的TTL域同样。依据RFC 3031中的描写叙述。LSR节点在对分组压入标签时。须要将原IP分组或下层标签中的TTL值复制到新添加的标签的TTL域。
LSR在转发标签分组时,对栈顶标签的TTL值做减一操作。标签出栈时,再将栈顶的TTL值拷贝回IP分组或下层标签。TTL除了用于防止产生路由环路外,也用于实现tracert功能: 假设在Ingress节点使能IP TTL复制功能,报文在LSP中经过的每一跳都体现为IP TTL逐跳递减,tracert的结果将反映报文实际经过的路径。 假设不在Ingress节点使能IP TTL复制功能。则报文在LSP中经过的跳数不会导致IP TTL递减,tracert的结果不包含MPLS骨干网络中每一跳,就好像Ingress路由器与Egress路由器是直连的。
ICMP响应报文 :在MPLS VPN网络中。P路由器无法对MPLS承载的VPN报文进行路由。当MPLS报文的TTL超时时。ICMP响应报文将依照LSP继续传送,到达LSP终点路由器后,再依据IP路由转发ICMP响应报文。这样的处理方式添加了网络流量和报文转发时延。对于仅有一层标签的MPLS报文,当TTL超时时,直接使用IP路由返回ICMP响应报文
检測MPLS LSP
在MPLS中,假设LSP转发数据失败。负责建立LSP的MPLS控制平面将无法检測到这样的错误,这会给网络维护带来困难。
MPLS LSP Ping/Traceroute为用户提供了发现LSP错误、并及时定位失效节点的机制。类似于普通IP的Ping/Traceroute。MPLS LSP Ping/Traceroute使用MPLS Echo Request报文和MPLS Echo Reply报文检測LSP的可用性。MPLS Echo Request中携带须要检測的FEC信息,和其它属于此FEC的报文一样沿LSP发送,从而实现对LSP的检測。
-
MPLS LSP Ping)基于MPLS的VPN 传统的)基于MPLS的QoS 基于MPLS的流量project和差分服务Diff-Serv特性,在保证网络高利用率的同一时候,能够依据不同数据流的优先级实现差别服务,从而为语音。视频数据流提供有带宽保证的低延时、低丢包率的服务。因为全网实施流量project的难度比較大,因此,在实际的组网方案中往往通过差分服务模型来实施QoS。
Diff-Serv的基本机制是在网络边缘,依据业务的服务质量要求将该业务映射到一定的业务类别中,利用IP分组中的DS(Differentiated Service)字段(由ToS域而来)唯一的标记该类业务;然后。骨干网络中的各节点依据该字段对各种业务採取预先设定的服务策略。保证对应的服务质量。
Diff-Serv对服务质量的分类和标签机制与MPLS的标签分配十分类似,其实,基于MPLS的Diff-Serv就是通过将DS的分配与MPLS的标签分配过程结合来实现的。
实验一、MPLS基础之认识LDP
LER1配置:
LER1#conft
LER1(config)#intlo 0
LER1(config-if)#ipadd 1.1.1.1 255.255.255.255
LER1(config-if)#exit
LER1(config)#intfa0/0
LER1(config-if)#ipadd 192.168.12.1 255.255.255.0
LER1(config-if)#mplsip //在接口下开启mpls
LER1(config-if)#mplsmtu 1600 //改动MTU值
LER1(config-if)#nosh
LER1(config-if)#exit
LER1(config)#intfa0/1
LER1(config-if)#ipadd 192.168.13.1 255.255.255.0
LER1(config-if)#mplsip
LER1(config-if)#mplsmtu 1600
LER1(config-if)#nosh
LER1(config-if)#exit
LER1(config)#routerospf 1
LER1(config-router)#network0.0.0.0 255.255.255.255 area 0
LER1(config-router)#default-informationoriginate always //公布默认路由
LER1(config-router)#exit
LER1(config)#iproute 0.0.0.0 0.0.0.0 null0 //加入一个空接口的默认路由
LER1(config)#ipcef //必须全局开启CEF
LER1(config)#mplsip //全局开启mpls。能够不用输入默认开启
LER1(config)#mplsip propagate-ttl//开启MPLSTTL复制
LER1(config)#mplsldp loop-detection //开启环路保护
LER1(config)#mplsldp maxhops 30 //设置环路检測最大跳数为30
LER1(config)#mplslabel range 110 119//设置MPLS的标签范围
LER1(config)#mplsip default-route //MPLS为公布的默认路由加入标签
LER1(config)#mplsldp router-id loopback 0 force //手动强制指定ldp中的路由ID
LER1(config)#mplsldp neighbor 4.4.4.4 targeted ldp //在非直连情况下指定LER2为邻居
LER1(config)#mplsldp neighbor 4.4.4.4 password kkfloat//使用MD5验证与LER2建立邻居关系
LER1(config)#mplsldp discovery hello holdtime 10//改动LDP的holdtime间隔为10秒
LER1(config)#mplsldp discovery hello interval 2 //改动LDP发Hello的间隔为2秒
LER1(config)#mplslabel protocol ldp //指定mpls使用ldp标签分发协议
LSR2配置:
LSR2#conft
LSR2(config)#intlo 0
LSR2(config-if)#ipadd 2.2.2.2 255.255.255.255
LSR2(config-if)#exit
LSR2(config)#intfa0/0
LSR2(config-if)#ipadd 192.168.12.2 255.255.255.0
LSR2(config-if)#mpls mtu 1600
LSR2(config-if)#mplsip
LSR2(config-if)#nosh
LSR2(config-if)#exit
LSR2(config)#intfa0/1
LSR2(config-if)#ipadd 192.168.24.2 255.255.255.0
LSR2(config-if)#mplsmtu 1600
LSR2(config-if)#mplsip
LSR2(config-if)#nosh
LSR2(config-if)#exit
LSR2(config)#routerospf 1
LSR2(config-router)#net0.0.0.0 255.255.255.255 area 0
LSR2(config-router)#exit
LSR2(config)#ipcef
LSR2(config)#mplsip
LSR2(config)#mpls ldp loop-detection
LSR2(config)#mpls ldp maxhops 30
LSR2(config)#mplslabel range 200 300
LSR2(config)#mplsip default-route
LSR2(config)#mplsldp router-id loopback 0 force
LSR2(config)#mplsldp discovery hello holdtime 10
LSR2(config)#mplsldp discovery hello interval 2
LSR2(config)#mplslabel protocol ldp
LSR3配置:
LSR3#conft
LSR3(config)#intlo 0
LSR3(config-if)#ipadd 3.3.3.3 255.255.255.255
LSR3(config-if)#exit
LSR3(config)#intfa0/0
LSR3(config-if)#ipadd 192.168.13.3 255.255.255.0
LSR3(config-if)#mplsip
LSR3(config-if)#mplsmtu 1600
LSR3(config-if)#nosh
LSR3(config-if)#exit
LSR3(config)#intfa0/1
LSR3(config-if)#ipadd 192.168.34.3 255.255.255.0
LSR3(config-if)#mplsmtu 1600
LSR3(config-if)#mplsip
LSR3(config-if)#nosh
LSR3(config-if)#exit
LSR3(config)#routerospf 1
LSR3(config-router)#network0.0.0.0 255.255.255.255 area 0
LSR3(config-router)#exit
LSR3(config)#ipcef
LSR3(config)#mplsip
LSR3(config)#mpls ldp loop-detection
LSR3(config)#mpls ldp maxhops 30
LSR3(config)#mplslabel range 300 399
LSR3(config)#mplsip default-route
LSR3(config)#mplsldp router-id loopback 0 force
LSR3(config)#mplsldp discovery hello holdtime 10
LSR3(config)#mplsldp discovery hello interval 2
LSR3(config)#mplslabel protocol ldp
LER2配置:
LER2#conft
LER2(config)#intlo 0
LER2(config-if)#ipadd 4.4.4.4 255.255.255.255
LER2(config-if)#exit
LER2(config)#intfa0/0
LER2(config-if)#ipadd 192.168.24.4 255.255.255.0
LER2(config-if)#mplsmtu 1600
LER2(config-if)#mplsip
LER2(config-if)#nosh
LER2(config-if)#exit
LER2(config)#intfa0/1
LER2(config-if)#mplsmtu 1600
LER2(config-if)#ipadd 192.168.34.4 255.255.255.0
LER2(config-if)#mplsip
LER2(config-if)#exit
LER2(config)#intfa0/1
LER2(config-if)#nosh
LER2(config-if)#exit
LER2(config)#routerospf 1
LER2(config-router)#network0.0.0.0 255.255.255.255 area 0
LER2(config-router)#exit
LER2(config)#ipcef
LER2(config)#mplsip
LER2(config)#mpls ldp loop-detection
LER2(config)#mpls ldp maxhops 30
LER2(config)#mplslabel range 400 499
LER2(config)#mplsip default-route
LER2(config)#mplsldp router-id loopback 0 force
LER2(config)#mplsldp neighbor 1.1.1.1 targeted ldp
LER2(config)#mplsldp neighbor 1.1.1.1 password kkfloat
LER2(config)#mplsldp discovery hello holdtime 10
LER2(config)#mplsldp discovery hello interval 2
LER2(config)#mplslabel protocol ldp
配置完毕查看状态:
LER2#shmpls ldp neighbor //查看LDP邻居信息
Peer LDP Ident: 3.3.3.3:0; Local LDP Ident4.4.4.4:0
TCP connection: 3.3.3.3.646 -4.4.4.4.23820
State: Oper; Msgs sent/rcvd: 31/32;Downstream
Up time: 00:14:41
LDP discovery sources:
FastEthernet0/1, Src IP addr:192.168.34.3
Addresses bound to peer LDP Ident:
192.168.13.3 3.3.3.3 192.168.34.3
Peer LDP Ident: 2.2.2.2:0; Local LDP Ident4.4.4.4:0
TCP connection: 2.2.2.2.646 -4.4.4.4.39557
State: Oper; Msgs sent/rcvd: 31/31;Downstream
Up time: 00:14:41
LDP discovery sources:
FastEthernet0/0, Src IP addr:192.168.24.2
Addresses bound to peer LDP Ident:
192.168.12.2 2.2.2.2 192.168.24.2
PeerLDP Ident: 1.1.1.1:0; Local LDP Ident 4.4.4.4:0
TCP connection: 1.1.1.1.646 -4.4.4.4.46138
State: Oper; Msgs sent/rcvd: 30/29;Downstream
Up time: 00:14:19
LDP discovery sources:
Targeted Hello 4.4.4.4 -> 1.1.1.1,active, passive
Addresses bound to peer LDP Ident:
1.1.1.1 192.168.12.1 192.168.13.1
LER2#shmpls forwarding-table //查看mpls LFIB 信息
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
400 Pop tag 3.3.3.3/32 0 Fa0/1 192.168.34.3
401 Pop tag 2.2.2.2/32 0 Fa0/0 192.168.24.2
402 Pop tag 192.168.12.0/24 0 Fa0/0 192.168.24.2
403 Pop tag 192.168.13.0/24 0 Fa0/1 192.168.34.3
404 304 1.1.1.1/32 0 Fa0/1 192.168.34.3
204 1.1.1.1/32 0 Fa0/0 192.168.24.2
405 305 0.0.0.0/0 0 Fa0/1 192.168.34.3
205 0.0.0.0/0 0 Fa0/0 192.168.24.2
LER2#shmpls ldp bindings // 查看FIB信息
tib entry: 0.0.0.0/0, rev 20
local binding: tag: 405
remote binding: tsr: 1.1.1.1:0, tag:imp-null
remote binding: tsr: 2.2.2.2:0, tag:205
remote binding: tsr: 3.3.3.3:0, tag:305
tib entry: 1.1.1.1/32, rev 16
local binding: tag: 404
remote binding: tsr: 3.3.3.3:0, tag:304
remote binding: tsr: 2.2.2.2:0, tag:204
remote binding: tsr: 1.1.1.1:0, tag:imp-null
tib entry: 2.2.2.2/32, rev 10
local binding: tag: 401
remote binding: tsr: 3.3.3.3:0, tag:301
remote binding: tsr: 2.2.2.2:0, tag:imp-null
remote binding: tsr: 1.1.1.1:0, tag:112
tib entry: 3.3.3.3/32, rev 8
local binding: tag: 400
remote binding: tsr: 3.3.3.3:0, tag:imp-null
remote binding: tsr: 2.2.2.2:0, tag:201
remote binding: tsr: 1.1.1.1:0, tag:111
tib entry: 4.4.4.4/32, rev 4
local binding: tag: imp-null
remote binding: tsr: 3.3.3.3:0, tag:300
remote binding: tsr: 2.2.2.2:0, tag:200
remote binding: tsr: 1.1.1.1:0, tag:110
tib entry: 192.168.12.0/24, rev 12
local binding: tag: 402
remote binding: tsr: 3.3.3.3:0, tag:303
remote binding: tsr: 2.2.2.2:0, tag:imp-null
remote binding: tsr: 1.1.1.1:0, tag:imp-null
tib entry: 192.168.13.0/24, rev 14
local binding: tag: 403
remote binding: tsr: 3.3.3.3:0, tag:imp-null
remote binding: tsr: 2.2.2.2:0, tag:203
remote binding: tsr: 1.1.1.1:0, tag:imp-null
tib entry: 192.168.24.0/24, rev 5
local binding: tag: imp-null
remote binding: tsr: 3.3.3.3:0, tag:302
remote binding: tsr: 2.2.2.2:0, tag:imp-null
remote binding: tsr: 1.1.1.1:0, tag:113
tib entry: 192.168.34.0/24, rev 6
local binding: tag: imp-null
remote binding: tsr: 3.3.3.3:0, tag:imp-null
remote binding: tsr: 2.2.2.2:0, tag:202
remote binding: tsr: 1.1.1.1:0, tag:114
LER2#traceroute1.1.1.1 source 4.4.4.4 //追踪路由
Typeescape sequence to abort.
Tracingthe route to 1.1.1.1
1 192.168.34.3 [MPLS: Label 304 Exp 0] 72msec
192.168.24.2 [MPLS: Label 204 Exp 0] 96msec
192.168.34.3 [MPLS: Label 304 Exp 0] 56msec
2 192.168.12.1 76 msec
192.168.13.1 36 msec
192.168.12.1 72 msec
实验二、MPLS基础之标签过滤
LER1配置:
LER1#conft
LER1(config)#intlo 0
LER1(config-if)#ipadd 1.1.1.1 255.255.255.255
LER1(config-if)#exit
LER1(config)#intfa0/0
LER1(config-if)#ipadd 192.168.12.1 255.255.255.0
LER1(config-if)#mplsip
LER1(config-if)#nosh
LER1(config-if)#exit
LER1(config)#routerospf 1
LER1(config-router)#net0.0.0.0 255.255.255.255 area 0
LER1(config-router)#exit
LER1(config)#access-list1 deny 192.168.12.0
LER1(config)#access-list1 deny 192.168.23.0
LER1(config)#access-list1 deny 2.2.2.2
LER1(config)#access-list1 permit any
LER1(config)#ipcef
LER1(config)#mplsip
LER1(config)#mplslabel range 100 120//设置MPLS标签范围
LER1(config)#mplslabel protocol ldp //设置mpls标签分发协议ldp
LER1(config)#nompls ldp advertise-labels//清除全部通告的Tag标签
LER1(config)#mplsldp advertise-labels for 1//将ACL应用于标签通告达到过滤效果
LSR配置:
LSR#conf t
LSR(config)#intlo 0
LSR(config-if)#ipadd 2.2.2.2 255.255.255.255
LSR(config-if)#exit
LSR(config)#intfa0/0
LSR(config-if)#ipadd 192.168.12.2 255.255.255.0
LSR(config-if)#mplsip
LSR(config-if)#nosh
LSR(config-if)#exit
LSR(config)#intfa0/0
LSR(config-if)#ipadd 192.168.23.2 255.255.255.0
LSR(config-if)#mplsip
LSR(config-if)#nosh
LSR(config-if)#exit
LSR(config)#intfa0/0
LSR(config-if)#ipadd 192.168.12.2 255.255.255.0
LSR(config-if)#exit
LSR(config)#intfa0/1
LSR(config-if)#ipadd 192.168.23.2 255.255.255.0
LSR(config-if)#mplsip
LSR(config-if)#nosh
LSR(config-if)#exit
LSR(config)#routerospf 1
LSR(config-router)#net0.0.0.0 255.255.255.255 area 0
LSR(config-router)#exit
LSR(config)#access-list1 deny 192.168.12.0
LSR(config)#access-list1 deny 192.168.23.0
LSR(config)#access-list1 deny 2.2.2.2
LSR(config)#access-list1 permit any
LSR(config)#ipcef
LSR(config)#mplsip
LSR(config)#mplslabel range 200 210
LSR(config)#mplslabel protocol ldp
LSR(config)#nompls ldp advertise-labels
LSR(config)#mplsldp advertise-labels for 1
LSR2配置:
LER3#conft
LER3(config)#intlo 0
LER3(config-if)#ipadd 3.3.3.3 255.255.255.255
LER3(config-if)#exit
LER3(config)#intfa0/0
LER3(config-if)#ipadd 192.168.23.3 255.255.255.0
LER3(config-if)#mplsip
LER3(config-if)#nosh
LER3(config-if)#exit
LER3(config)#routerospf 1
LER3(config-router)#net0.0.0.0 255.255.255.255 area 0
LER3(config-router)#exit
LER3(config)#access-list1 deny 192.168.12.0
LER3(config)#access-list1 deny 192.168.23.0
LER3(config)#access-list1 deny 2.2.2.2
LER3(config)#access-list1 permit any
LER3(config)#ipcef
LER3(config)#mplsip
LER3(config)#mplslabel range 300 310
LER3(config)#mplslabel protocol ldp
LER3(config)#nompls ldp advertise-labels
LER3(config)#mplsldp advertise-labels for 1
配置完毕观察效果:
LER1#sh ipcef 3.3.3.3 //转发信息库。这是开启CEF后形成的一个表,这个表结合了路由表。ARP表,它使得数据包转发的时候不须要再查询路由表,不再须要递归路由查询。直接依据FIB转发就可以
3.3.3.3/32,version 9, epoch 0, cached adjacency 192.168.12.2
0 packets,0 bytes
tag information set
local tag: 100
fast tag rewrite with Fa0/0, 192.168.12.2,tags imposed: {200}
via 192.168.12.2, FastEthernet0/0, 0dependencies
next hop 192.168.12.2, FastEthernet0/0
valid cached adjacency
tag rewrite with Fa0/0, 192.168.12.2, tags imposed: {200}
LER1#shmpls forwarding-table //查看(LFIB)标签转发信息库,仅仅在执行标签交换时被查询
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
100 200 3.3.3.3/32 0 Fa0/0 192.168.12.2
101 Untagged 2.2.2.2/32 0 Fa0/0 192.168.12.2
102 Untagged 192.168.23.0/24 0 Fa0/0 192.168.12.2
LER1#shmpls ldp bindings // LIB标签信息库,这张表里面保存了FEC对应的全部标签信息
tib entry: 1.1.1.1/32, rev 4
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag:201
tib entry: 2.2.2.2/32, rev 8
local binding: tag: 101
tib entry: 3.3.3.3/32, rev 6
local binding: tag: 100
remote binding: tsr: 2.2.2.2:0, tag:200
tib entry: 192.168.12.0/24, rev 3
local binding: tag: imp-null
tib entry: 192.168.23.0/24, rev 10
local binding: tag: 102
LER1#traceroute3.3.3.3 source 1.1.1.1//追踪路由
Typeescape sequence to abort.
Tracingthe route to 3.3.3.3
1 192.168.12.2 [MPLS: Label 200 Exp 0] 80msec 76 msec 40 msec
2 192.168.23.3 68 msec 40 msec 68 msec
实验三、MPLS之帧模式(Frame Mode)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2tmbG9hdA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
R1配置:
R1#conf t
R1(config)#intlo 0
R1(config-if)#ipadd 1.1.1.1 255.255.255.255
R1(config-if)#exit
R1(config)#intfa0/0
R1(config-if)#ipadd 192.168.12.1 255.255.255.0
R1(config-if)#mplsip
R1(config-if)#nosh
R1(config-if)#exit
R1(config)#routerospf 1
R1(config-router)#net0.0.0.0 255.255.255.255 area 0
R1(config-router)#exit
R1(config)#ipcef
R1(config)#mplslabel protocol ldp
R2配置:
R2#conf t
R2(config)#intlo 0
R2(config-if)#ipadd 2.2.2.2 255.255.255.255
R2(config-if)#exit
R2(config)#intfa0/0
R2(config-if)#ipadd 192.168.12.2 255.255.255.0
R2(config-if)#mplsip
R2(config-if)#nosh
R2(config-if)#exit
R2(config)#intfa0/1
R2(config-if)#ipadd 192.168.23.2 255.255.255.0
R2(config-if)#mplsip
R2(config-if)#nosh
R2(config-if)#exit
R2(config)#routeros
R2(config)#routerospf 1
R2(config-router)#net0.0.0.0 255.255.255.255 area 0
R2(config-router)#exit
R2(config)#ipcef
R2(config)#mplsip
R2(config)#mplslabel protocol ldp
R3配置:
R3#conf t
R3(config)#intlo 0
R3(config-if)#ipadd 3.3.3.
R3(config-if)#ipadd 3.3.3.3 255.255.255.255
R3(config-if)#exit
R3(config)#intfa0/0
R3(config-if)#ipadd 192.168.23.3 255.255.255.0
R3(config-if)#mplsip
R3(config-if)#nosh
R3(config-if)#exit
R3(config)#routerospf 1
R3(config-router)#net0.0.0.0 255.255.255.255 area 0
R3(config-router)#exit
R3(config)#ipcef
R3(config)#mplsip
R3(config)#mplslabel protocol ldp
配置完毕,測试网络,并查看MPLS表项:
R1#traceroute3.3.3.3 source loopback 0
Typeescape sequence to abort.
Tracing theroute to 3.3.3.3
1 192.168.12.2 [MPLS: Label 17 Exp 0] 92 msec120 msec 64 msec
2 192.168.23.3 68 msec 76 msec 56 msec
R1#sh mplsforwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 2.2.2.2/32 0 Fa0/0 192.168.12.2
17 Pop tag 192.168.23.0/24 0 Fa0/0 192.168.12.2
18 17 3.3.3.3/32 0 Fa0/0 192.168.12.2
R1#sh mplsldp bindings
tib entry: 1.1.1.1/32, rev 4
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag: 16
tib entry: 2.2.2.2/32, rev 6
local binding: tag: 16
remote binding: tsr: 2.2.2.2:0, tag:imp-null
tib entry: 3.3.3.3/32, rev 10
local binding: tag: 18
remote binding: tsr: 2.2.2.2:0, tag: 17
tib entry: 192.168.12.0/24, rev 3
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag:imp-null
tib entry: 192.168.23.0/24, rev 8
local binding: tag: 17
remote binding: tsr: 2.2.2.2:0, tag:imp-null
R3#sh mplsldp bindings
tib entry: 1.1.1.1/32, rev 8
local binding: tag: 17
remote binding: tsr: 2.2.2.2:0, tag: 16
tib entry: 2.2.2.2/32, rev 6
local binding: tag: 16
remote binding: tsr: 2.2.2.2:0, tag:imp-null
tib entry: 3.3.3.3/32, rev 2
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag: 17
tib entry: 192.168.12.0/24, rev 10
local binding: tag: 18
remote binding: tsr: 2.2.2.2:0, tag:imp-null
tib entry: 192.168.23.0/24, rev 4
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag:imp-null
R3#sh mplsforwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 2.2.2.2/32 0 Fa0/0 192.168.23.2
17 16 1.1.1.1/32 0 Fa0/0 192.168.23.2
18 Pop tag 192.168.12.0/24 0 Fa0/0 192.168.23.2
结论:
帧模式的标签分配原则是:independantcontrol独立控制,即无论能否收到邻居传递过来的标签。都会对本地前缀分配标签;
帧模式的标签分发原则是:下游自主。即无论你有没实用到我发给你的标签。仅仅要建立了邻居关系,我都会把我本地的标签发给你。这里的上下游是指数据转发的上下游。
帧模式的标签保留原则是:*,即谁分配的标签谁保留。
帧模式的标签保存:将邻居传递过来的标签保存在LFIB里面。同一时候保存在FIB里面
实验四、MPLS AtoM 之中的一个 Pseudowire Ethernet over MPLS(EoMPLS/L2VPN)
CE1配置:
CE1#conf t
CE1(config)#intfa0/0
CE1(config-if)#ipadd 192.168.0.10 255.255.255.0
CE1(config-if)#nosh
CE1(config-if)#exit
CE2配置:
CE2#conf t
CE2(config)#intfa0/0
CE2(config-if)#ipadd 192.168.0.11 255.255.255.0
CE2(config-if)#nosh
CE2(config-if)#exit
PE1配置:
PE1#conf t
PE1(config)#intlo 0
PE1(config-if)#ipadd 1.1.1.1 255.255.255.255
PE1(config-if)#exit
PE1(config)#intfa0/0
PE1(config-if)#noip address
PE1(config-if)#xconnect3.3.3.3 100 encapsulation mpls
PE1(config-if-xconn)#exit
PE1(config-if)#nosh
PE1(config)#intfa0/1
PE1(config-if)#ipadd 192.168.12.1 255.255.255.0
PE1(config-if)#mplsip
PE1(config-if)#nosh
PE1(config-if)#exit
PE1(config)#routerospf 1
PE1(config-router)#net0.0.0.0 255.255.255.255 area 0
PE1(config-router)#passive-interfacefastEthernet 0/0
PE1(config-router)#exit
PE1(config)#ipcef
PE1(config)#mplsip
PE1(config)#mplslabel protocol ldp
P配置:
P#conf t
P(config)#intlo 0
P(config-if)#ipadd 2.2.2.2 255.255.255.255
P(config-if)#exit
P(config)#intfa0/0
P(config-if)#ipadd 192.168.12.2 255.255.255.0
P(config-if)#mplsip
P(config-if)#nosh
P(config-if)#exit
P(config)#interfacefa0/1
P(config-if)#ipadd 192.168.23.2 255.255.255.0
P(config-if)#mplsip
P(config-if)#nosh
P(config-if)#exit
P(config)#routerospf 1
P(config-router)#net0.0.0.0 255.255.255.255 area 0
P(config-router)#exit
P(config)#ipcef
P(config)#mplsip
P(config)#mplslabel pro ldp
PE2配置:
PE2#conf t
PE2(config)#intlo 0
PE2(config-if)#ipadd 3.3.3.3 255.255.255.255
PE2(config-if)#exit
PE2(config)#intfa0/0
PE2(config-if)#noip address
PE2(config-if)#xconnect1.1.1.1 100 encapsulation mpls
PE2(config-if-xconn)#exit
PE2(config-if)#nosh
PE2(config)#intfa0/1
PE2(config-if)#ipadd 192.168.23.3 255.255.255.0
PE2(config-if)#mplsip
PE2(config-if)#nosh
PE2(config-if)#exit
PE2(config)#routerospf 1
PE2(config-router)#net0.0.0.0 255.255.255.255 area 0
PE2(config-router)#passive-interfacefastEthernet 0/0
PE2(config-router)#exit
PE2(config)#ipcef
PE2(config)#mplsip
PE2(config)#mplslabel protocol ldp
配置完毕。检查网络
PE1#sh iprou ospf
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/11] via 192.168.12.2,00:07:35, FastEthernet0/1
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/21] via 192.168.12.2,00:07:35, FastEthernet0/1
O 192.168.23.0/24 [110/20] via 192.168.12.2,00:07:35, FastEthernet0/1
CE1#traceroute192.168.0.11
Typeescape sequence to abort.
Tracingthe route to 192.168.0.11
1192.168.0.11 156 msec 108 msec 88 msec
PE1#shmpls l2transport vc detail
Localinterface: Fa0/0 up, line protocol up, Ethernet up
Destination address: 3.3.3.3, VC ID: 100, VCstatus: up
Next hop: 192.168.12.2
Output interface: Fa0/1, imposed labelstack {18 19}
Create time: 00:04:21, last status changetime: 00:04:15
Signaling protocol: LDP, peer 3.3.3.3:0 up
MPLS VC labels: local 19, remote 19
Group ID: local 0, remote 0
MTU: local 1500, remote 1500
Remote interface description:
Sequencing: receive disabled, send disabled
VC statistics:
packet totals: receive 38, send 38
byte totals: receive 3998, send 3985
packet drops: receive 0, seq error 0, send 0
PE1#shmpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 2.2.2.2/32 0 Fa0/1 192.168.12.2
17 Pop tag 192.168.23.0/24 0 Fa0/1 192.168.12.2
18 18 3.3.3.3/32 0 Fa0/1 192.168.12.2
19 l2ckt(100) 5466 none point2point
实验五、MPLSAtoM 之二Pseudowire Frame-Relay over MPLS (FoMPLS/L2VPN)
CE1配置:
CE1#conf t
CE1(config)#frame-relay switching
CE1(config)#int s1/0
CE1(config-if)#clock rate 64000
CE1(config-if)#encapsulation frame-relay
CE1(config-if)#frame-relay intf-type DTE
CE1(config-if)#frame-relayinterface-dlci 102
CE1(config-fr-dlci)#exit
CE1(config-if)#ip add 12.12.12.1255.255.255.0
CE1(config-if)#no sh
CE1(config-if)#exit
CE2配置:
CE2#conf t
CE2(config)#frame-relay switching
CE2(config)#int s1/0
CE2(config-if)#clock rate 64000
CE2(config-if)#encapsulation frame-relay
CE2(config-if)#frame-relay intf-type DTE
CE2(config-if)#frame-relayinterface-dlci 201
CE2(config-fr-dlci)#exit
CE2(config-if)#ip add 12.12.12.2255.255.255.0
CE2(config-if)#no sh
CE2(config-if)#exit
PE1配置:
PE1#conf t
PE1(config)#int lo 0
PE1(config-if)#ip add 1.1.1.1255.255.255.255
PE1(config-if)#exit
PE1(config)#int fa0/0
PE1(config-if)#ip add 192.168.12.1255.255.255.0
PE1(config-if)#mpls ip
PE1(config-if)#no sh
PE1(config-if)#exit
PE1(config-if)#exit
PE1(config)#fram
PE1(config)#frame-relay switching
PE1(config)#int s1/0
PE1(config-if)#clock rate 64000
PE1(config-if)#encapsulation frame-relay
PE1(config-if)#frame-relay intf-type dce
PE1(config-if)#no shutdown
PE1(config-if)#exit
PE1(config)#router ospf 1
PE1(config-router)#net 0.0.0.0255.255.255.255 area 0
PE1(config-router)#passive-interfaces1/0
PE1(config-router)#exit
PE1(config)#connect PE1-PE2 serial 1/0102 l2transport
PE1(config-fr-pw-switching)#xconnect3.3.3.3 12 encapsulation mpls
PE1(config-xconn)#exit
PE1(config-fr-pw-switching)#exit
PE1(config)#ip cef
PE1(config)#mpls ip
PE1(config)#mpls label protocol ldp
P配置:
P#conf t
P(config)#int lo 0
P(config-if)#ip add 2.2.2.2255.255.255.255
P(config-if)#exit
P(config)#int fa0/0
P(config-if)#ip add 192.168.12.2255.255.255.0
P(config-if)#mpls ip
P(config-if)#no sh
P(config-if)#exit
P(config)#int fa0/1
P(config-if)#ip add 192.168.23.2255.255.255.0
P(config-if)#mpls ip
P(config-if)#no sh
P(config-if)#exit
P(config)#router ospf 1
P(config-router)#net 0.0.0.0255.255.255.255 area 0
P(config-router)#exit
P(config)#ip cef
P(config)#mpls ip
P(config)#mpls label protocol ldp
PE2配置:
PE2#conf t
PE2(config)#frame-relay switching
PE2(config)#int lo 0
PE2(config-if)#ip add 3.3.3.3 255.255.255.255
PE2(config-if)#exit
PE2(config)#int fa0/1
PE2(config-if)#ip add 192.168.23.3255.255.255.0
PE2(config-if)#mpls ip
PE2(config-if)#no sh
PE2(config-if)#exit
PE2(config)#router ospf 1
PE2(config-router)#net 0.0.0.0255.255.255.255 area 0
PE2(config-router)#passive-interfaces1/0
PE2(config-router)#exit
PE2(config)#int s1/0
PE2(config-if)#clock rate 64000
PE2(config-if)#encapsulation frame-relay
PE2(config-if)#frame-relay intf-type dce
PE2(config-if)#no sh
PE2(config-if)#exit
PE2(config)#connect PE2-PE1 serial 1/0201 l2transport
PE2(config-fr-pw-switching)#xconnect1.1.1.1 12 encapsulation mpls
PE2(config-xconn)#exit
PE2(config-fr-pw-switching)#exit
PE2(config)#ip cef
PE2(config)#mpls ip
PE2(config)#mpls label protocol ldp
完毕配置,检查状态:
CE1#traceroute 12.12.12.2
Type escape sequence to abort.
Tracing the route to 12.12.12.2
1 12.12.12.2 152 msec 128 msec 120 msec
CE1#sh frame-relay map
Serial1/0 (up): ip 12.12.12.2 dlci102(0x66,0x1860), dynamic,
broadcast,
CISCO, status defined, active
CE1#sh frame-relay pvc
PVC Statistics for interface Serial1/0(Frame Relay DTE)
Active Inactive Deleted Static
Local 1 0 0 0
Switched 0 0 0 0
Unused 0 0 0 0
DLCI = 102, DLCI USAGE = LOCAL, PVCSTATUS = ACTIVE, INTERFACE = Serial1/0
input pkts 4 outputpkts 4 in bytes 214
out bytes 130 droppedpkts 0 in pkts dropped 0
out pkts dropped 0 out bytes dropped 0
in FECN pkts 0 in BECNpkts 0 out FECN pkts 0
out BECN pkts 0 in DEpkts 0 out DE pkts 0
out bcast pkts 1 out bcastbytes 34
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
pvc create time 00:59:02, last time pvc status changed 00:01:05
PE1#sh mpls l2transport vc detail
Local interface: Se1/0 up, line protocolup, FR DLCI 102 up
Destination address: 3.3.3.3, VC ID: 12, VC status: up
Next hop: 192.168.12.2
Output interface: Fa0/0, imposed label stack {17 19}
Create time: 00:48:54, last status change time: 00:08:33
Signaling protocol: LDP, peer 3.3.3.3:0 up
MPLS VC labels: local 19, remote 19
Group ID: local 0, remote 0
MTU: local 1500, remote 1500
Remote interface description:
Sequencing: receive disabled, send disabled
VC statistics:
packet totals: receive 4, send 4
byte totals: receive 238, send154
packet drops: receive 0, seqerror 0, send 0
PE1#sh mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 2.2.2.2/32 0 Fa0/0 192.168.12.2
17 Pop tag 192.168.23.0/24 0 Fa0/0 192.168.12.2
18 17 3.3.3.3/32 0 Fa0/0 192.168.12.2
19 l2ckt(12) 238 none point2point
小结:
实验四和实验五的AToM是建设在MPLS网络的基础设施之上,在两个路由器的一对端口之间提供高速的二层透传。
这样的技术能够提供二层VPN(MPLS L2VPN)用来解决端到端的问题。也能够用来实现传统网络的升级。
AToM主要组成部分包含:PE路由器、标记分发协议(LDP)和MPLS标记交换隧道(LSPTunnel)。
PE路由器拥有并维护与其直接相连的二层透传的链路信息。
PE路由器负责将VPN客户的普通数据包打上标记和去除标记。因此PE路由器必须是一个边缘标记交换路由器。
在两个PE路由器之间实现二层透传的两个端口必须是同样的类型,比如以太网、VLAN、ATMVC、帧中继VC、HDLC或PPP。每一对这样的端口用一个唯一的虚拟链路标志(VCID)来表示。
在两个PE路由器之间要定义穿过MPLS网络的LSP隧道。LSP隧道提供了隧道标记(TunnelLabel),在两个PE路由器之间透传数据。
同一时候在两个PE路由器之间还要定义直接的标记分发协议进程,用来传递虚拟链路的信息,当中最关键的是通过匹配VCID来分发虚拟链路标记(VCLabel)。
当二层透传的端口有数据包进入PE路由器时,PE路由器通过匹配VCID找到与之对应的隧道标记和虚拟链路标记。PE路由器会将此数据包打上两层标记,当中外层标记为隧道标记。指示从该PE路由器到目的PE路由器的路径;内层标记为虚拟链路标记。指示在目的PE路由器上属于哪个VCID对应的路由器端口。注意。PE路由器要监视各自端口上的二层协议状态,如帧中继的LMI或ATM的ILMI。
当出现问题时。通过标记分发协议进程来取消虚拟链路标记,从而断开此二层透传,避免产生单向无用数据流。
这样的基于MPLS的二层透传方式。改变了传统的二层链路必须通过交换网络实现的限制,它从根本上形成了“一个网多种业务”的业务模式,让运营商能够在一个MPLS网络中同一时候提供二层业务和三层业务。基于二层透传技术的是二层VPN。
如今。二层VPN的各项标准正处于IETF起草阶段。主要包含针对点到点服务的虚拟私用线路服务(VPWS)和针对多点服务的虚拟私用局域网服务(VPLS)。这两种二层VPN都採用以AToM为基础的数据层面,在控制层面上添加自己主动发现和自己主动配置等多种功能,相对于MPLS L3VPN。MPLS L2VPN具有下面长处:
可扩展性强:MPLS L2VPN仅仅建立二层连接关系。不引入和管理用户的路由信息。这大大减轻了PE(Provider Edge,服务提供商边缘设备)甚至整个SP(Service Provider。服务提供商)网络的负担,使服务提供商能支持很多其它的VPN和接入很多其它的用户。
可靠性和私网路由的安全性得到保证:因为不引入用户的路由信息,MPLS L2VPN不能获得和处理用户路由,保证了用户VPN路由的安全。
支持多种网络层协议:包含IP、IPX、SNA等。
实验六、MPLS L3VPN之认识VRF Routing
在基于IP的计算机网络中,虚拟路由和转发(VRF)是一种技术,同一时候被称为VPN路由转发表。它同意在同一台路由器上同一时候并存多个路由表的实例。这添加了网络路径分段的功能,而无需使用多个设备。因为流量是自己主动隔离,VRF也添加了网络的安全性,而且能够不再须要加密和认证。互联网服务提供商(ISP)通常採取的VRF的优势,创建单独的虚拟专用网络(VPN)客户;因而该技术也被称为VPN路由和转发。因为路由实例是独立的,同样的或重叠的IP地址能够被使用而不互相冲突。
VRF每一个路由实例拥有不同的路由表[来源请求]被称为转发信息库(FIB)。它相当于一台网络设备。换句话说,在同一网络设备上能够配置多个不同的虚拟路由器实例,当中每一个实例都有其自身的FIB库,而且每一个虚拟路由器实例间独立不可互相訪问。此时每一个路由器维护一个或多个VRF,而且同一时候维护一个公网的路由表(也叫全局路由表)。每一个VRF能够看作一台虚拟的路由器,该虚拟路由器包含例如以下元素:
一张独立的路由表/转发表,当然也包含了独立的地址空间。
一组归属于这个VRF的接口集合。
一组仅仅用于本VRF的路由协议。
CE1配置:
CE1#conf t
CE1(config)#int fa0/0
CE1(config-if)#ip add 192.168.1.2255.255.255.0
CE1(config-if)#no sh
CE1(config-if)#exit
CE1(config)#ip route 0.0.0.0 0.0.0.0192.168.1.1
CE2配置:
CE2#conf t
CE2(config)#int fa0/0
CE2(config-if)#ip add 192.168.1.2255.255.255.0
CE2(config-if)#no sh
CE2(config-if)#exit
CE2(config)#ip route 0.0.0.0 0.0.0.0192.168.1.1
PE配置:
PE#conf t
PE(config)#ip vrf CE1//创建虚拟路由转发表CE1
PE(config-vrf)#exit
PE(config)#ip vrf CE2//创建虚拟路由转发表CE2
PE(config-vrf)#exit
PE(config)#int fa0/0
PE(config-if)#ip vrf forwarding CE1 //把接口加入到对应虚拟路由转发表
PE(config-if)#ip add 192.168.1.1255.255.255.0
PE(config-if)#no sh
PE(config-if)#exit
PE(config)#int fa0/1
PE(config-if)#ip vrf forwarding CE2//把接口加入到对应虚拟路由转发表
PE(config-if)#ip add 192.168.1.1255.255.255.0
PE(config-if)#no sh
PE(config-if)#exit
PE(config)#int fa1/0
PE(config-if)#ip vrf forwarding CE1 //
PE(config-if)#ip add 100.100.100.1255.255.255.0
PE(config-if)#no sh
PE(config-if)#exit
PE(config)#int fa2/0
PE(config-if)#ip vrf forwarding CE2
PE(config-if)#ip add 200.200.200.1255.255.255.0
PE(config-if)#no sh
PE(config-if)#exit
PE(config)#
PE(config)#router ospf 1 vrf CE1 //在CE1虚拟路由表中开启OSPF路由协议
PE(config-router)#net 0.0.0.0 255.255.255.255 area 0
PE(config-router)#passive-interfacefa0/0
PE(config-router)#exit
PE(config)#router ospf 2 vrf CE2 //在CE2虚拟路由表中开启OSPF路由协议
PE(config-router)#net 0.0.0.0255.255.255.255 area 0
PE(config-router)#passive-interfacefa0/1
PE(config-router)#exit
ISP1配置:
ISP1#conf t
ISP1(config)#int fa0/0
ISP1(config-if)#ip add 100.100.100.2255.255.255.0
ISP1(config-if)#no sh
ISP1(config-if)#exit
ISP1(config)#router ospf 1
ISP1(config-router)#exit
ISP1(config)#int lo0
ISP1(config-if)#ip add 1.1.1.1255.255.255.255
ISP1(config-if)#exit
ISP1(config)#router ospf 1
ISP1(config-router)#net 0.0.0.0255.255.255.255 area 0
ISP1(config-router)#exit
PE(config)#iproute vrf CE1 0.0.0.0 0.0.0.0 100.100.100.2
PE(config)#iproute vrf CE2 0.0.0.0 0.0.0.0 200.200.200.2
ISP2配置:
ISP2#conf t
ISP2(config)#intfa0/0
ISP2(config-if)#ipadd 200.200.200.2 255.255.255.0
ISP2(config-if)#nosh
ISP2(config-if)#exit
ISP2(config)#intlo 0
ISP2(config-if)#ipadd 2.2.2.2 255.255.255.0
ISP2(config-if)#exit
ISP2(config)#routerospf 1
ISP2(config-router)#net0.0.0.0 255.255.255.255 area 0
ISP2(config-router)#exit
ISP2(config)#
配置完毕,检查測试:
CE1#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5),round-trip min/avg/max = 20/37/76 ms
CE2#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5),round-trip min/avg/max = 20/35/64 ms
PE#sh ip rou //全局路由表为空
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, su - IS-IS summary, 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
PE#sh ip rou vrf CE1 //查看CE1虚拟路由表
Routing Table: CE1
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, su - IS-IS summary, 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
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/2] via 100.100.100.2, 00:02:45, FastEthernet1/0
100.0.0.0/24 is subnetted, 1 subnets
C 100.100.100.0 is directly connected, FastEthernet1/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S* 0.0.0.0/0 [1/0] via 100.100.100.2
PE#sh ip rou vrf CE2//查看CE2虚拟路由表
Routing Table: CE2
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, su - IS-IS summary, 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 downloadedstatic route
Gateway of last resort is not set
C 200.200.200.0/24 is directly connected, FastEthernet2/0
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/2] via 200.200.200.2, 00:02:39, FastEthernet2/0
C 192.168.1.0/24 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [1/0] via 200.200.200.2
实验七、MPLSVPN(L3VPN)基本配置PE-CE执行RIP
VRF通常与MPLS VPN相联系 。因为MPLSVPN的就是利用VRF实现路由隔离和信息隔离,在这样的网络中,MPLS封装被用来切割用户流量,每一个用户维护一个独立的VRF。在VRF中有两个重要属性:
-
RD(Route Distinguisher)是说明路由属于哪个VPN的标志。理论上能够为每一个VRF配置一个RD,通常建议为每一个VPN的VRF都配置同样的RD,而且要保证这个RD全球唯一。假设两个VRF中存在同样的地址,可是因为RD不同,这两个路由在PE间公布过程中也不会混淆。因为MP BGP把RD和路由一起发送,对端PE能够依据RD确定路由所属的VPN,从而把路由安装到正确的VRF中。RD并不会影响不同VRF之间的路由选择以及VPN的形成。这些事情由RT搞定。PE从CE接收的标准的路由是IPv4路由。假设须要公布给其它的PE路由器,此时须要为这条路由附加一个RD。在IPv4地址加上RD之后,就变成VPN-IPv4地址族了。VPN-IPv4地址仅用于服务供应商网络内部。
在PE公布路由时加入。在PE接收路由后放在本地路由表中,用来与后来接收到的路由进行比較。CE不知道使用的是VPN-IPv4地址。 RD的路由就是O IA。
在MPLS VPN中,假设在两个网站的CE之间添加一条后门链路(BackdoorLink),而且直接执行OSPF交互路由。那么通过这条后门链路学习到的内部路由为O。通过PE过来的路由为OIA。无疑优选O路由。可是我们希望优选走MPLS VPN,此时就要使用Sham-Link。
在PE1及PE2之间建立sham-link,它会在两台PE之间形成一条区域内链路。
在每一台PE上的链路端点都是特定VRF中的一个接口(或地址),iBGP必须以VPNv4前缀的形式将这个接口的路由传递给还有一台PE(也就是说我们必须在MP-BGP的ipv4 vrf地址族里宣告这个地址,以便形成VPNv4前缀并传递给对端PE)。Sham-link和其它OSPF中的链路一样,会进行最短路径优先的计算。当LSA在伪装链路中泛洪,全部的OSPF路由类型都不会改变。不会转换成LSA3或者LSA5的类型。假设sham-link断掉,就会恢复走后门链路。~7。数值越小则优先级越高。抢占由RSVP-TE的Resv消息发起。
当新建一条路径Path1时,假设须要与已建立的路径Path2争夺资源,仅仅有当Path1的建立优先级高于Path2的保持优先级时,Path1才干抢占成功。因此,为保证CR-LSP能够正确建立。建立优先级不能高于保持优先级。否则可能会导致LSP间无穷尽的互相抢占,造成振荡。
-
路由固定(Route Pinning): CR-LSP创建成功后。不随路由变化而变化的特性叫做路由固定。
当某个网络未执行IGP TE时,网络管理员不能确定网络上的哪些地方能够获得带宽,这时须要选择具有所需带宽的松散ER-hop(Explicit Route)来创建CR-LSP,但这些CR-LSP将会随路由变化而变化。当路由变化时,比方出现了一个更好的下一跳,已建立的CR-LSP也将会随之改变。假设不希望使用松散路由建立的CR-LSP随路由变化而改变,网络管理员能够在CR-LSP创建成功时把这些CR-LSP配置成永久性的。不随路由变化而变化。
管理组和和属性: MPLS TE隧道的亲和属性决定隧道使用的链路属性,亲和属性与链路管理组配合,确定隧道能够使用哪些链路。
-
重优化: 流量project是系统规划网络资源使用的过程。
依据用户需求能够配置流量project,提供要求的QoS。服务提供商通常利用一定的机制去优化CR-LSP,以优化网络资源使用。一种方法是人工配置,可是须要服务提供商进行測量和对CR-LSP微调。使用MPLS TE则能够动态优化CR-LSP,从而节省人力。动态优化CR-LSP即定期重计算CR-LSP穿越的路由。假设重计算的路由优于当前路由。则创建一条新的CR-LSP,为之分配新路由,并将业务从旧的CR-LSP切换至新的CR-LSP,删除旧CR-LSP
-
CR-LSP备份CR-LSP备份是一种端到端的路径保护(Path Protection,end-to-end protection),对整条LSP提供保护。而FRR则是一种局部保护措施,仅仅能保护LSP中的某条链路和某个节点。而且,FRR是一种高速响应的暂时性保护措施,对于切换时间有严格要求。LSP备份则没有时间要求。
同一条隧道下对主LSP进行路径备份的LSP称为备份路径。当Ingress感知到主LSP不可用时,将流量切换到备份路径上,当主LSP路径恢复后再将流量切换回来,以实现对主LSP路径的备份保护。有两种备份方法:热备份:创建主CR-LSP后随即创建备份CR-LSP。主CR-LSP失效时。通过MPLS TE直接将业务切换至备份CR-LSP。
普通备份:指主CR-LSP失效后创建备份CR-LSP。
-
高速重路由FRR(Fast ReRoute),是MPLS- TE中实现网络局部保护的技术。FRR的切换速度能够达到50ms,能够最大程度降低网络故障时数据的丢失。
对LSP配置FRR功能后,当LSP上的某条链路或某个节点失效时。流量会被切换到保护链路上。同一时候LSP头节点尝试建立新的LSP。介绍FRR中的几个概念
主LSP:被保护的LSP。
Bypass LSP:旁路LSP。保护主LSP的LSP。
-
PLR(Point of Local Repair):本地修复节点。
BypassLSP的头节点。必须在主LSP的路径上,而且不能是主LSP的尾节点。
MP(Merge Point):汇聚点。Bypass LSP的尾节点。必须在主LSP的路径上,而且不能是主LSP的头节点
保护方式依据保护的对象不同,FRR分为两类:链路保护:PLR和MP之间有直接链路连接。主LSP经过这条链路。当这条链路失效时,流量能够切换到Bypass LSP上节点保护:PLR和MP之间通过一台设备连接,主LSP经过这台设备。当这台设备失效时,流量能够切换到Bypass LSP上
RSVP-TE实现
RSVP(Resource Reservation Protocol,资源预留协议)是为IntServ(Integrated Service,综合业务模型)而设计的,用于在一条路径的各节点上进行资源预留。
RSVP工作在传输层。但不參与应用数据的传送。是一种Internet上的控制协议,类似于ICMP。简单来说。RSVP具有下面几个主要特点:
单向。
面向接收者,由接收者发起对资源预留的请求,并维护资源预留信息。
-
使用“软状态”(soft state)机制维护资源预留信息。
RSVP经扩展后能够支持MPLS标签的分发,并在传送标签绑定消息的同一时候携带资源预留信息,这样的扩展后的RSVP称为RSVP-TE,作为一种信令协议用于在MPLS TE中建立LSP隧道。
RSVP-TE基本概念
软状态“软状态”是指在RSVP-TE中。通过消息的定时刷新来维持节点上的资源预留状态。资源预留状态包含由Path消息创建的路径状态(path state)和由Resv消息创建的预留状态(reservation state)。这两种状态分别由Path消息和Resv消息定时刷新。对于某个状态。假设连续没有收到刷新消息,这个状态将被删除。
-
资源预留类型使用RSVP-TE建立的LSP都具有某种资源预留类型(reservation style)。在建立RSVP会话时,由接收者决定此会话使用哪种预留类型,从而决定能够使用哪些LSP。
眼下设备支持下面两种预留类型:
FF(Fixed-Filter style):固定过滤器类型。为每一个发送者单独预留资源。不能与同一会话中其它发送者共享资源。
SE(Shared-Explicit style):共享显式类型。为同一个会话的发送者建立一个预留,能够共享资源。
make-before-break: make-before-break是指一种能够在尽可能不丢失数据,也不占用额外带宽的前提下改变MPLS TE隧道属性的机制。
RSVP-TE消息类型:
Path消息:由发送者沿数据报文传输的方向向下游发送,在沿途全部节点上保存路径状态(path state)。
Resv消息:由接收者沿数据报文传输的方向逆向发送。在沿途全部节点上进行资源预留,并创建和维护预留状态(reservationstate)。
PathTear消息:此消息产生后马上向下游发送。并马上删除沿途节点的路径状态和相关的预留状态。
ResvTear消息:此消息产生后马上向上游发送。并马上删除沿途节点的预留状态。
PathErr消息:假设在处理Path消息的过程中发生了错误,就会向上游发送PathErr消息,PathErr消息不影响沿途节点的状态。仅仅是把错误报告给发送者。
ResvErr消息:假设在处理Resv消息的过程中发生了错误,或者因为抢占导致预留被破坏,就会向下游节点发送ResvErr消息。
ResvConf消息:该消息发往接收者。用于对预留消息进行确认。
Hello消息:在两个直连的RSVP邻居之间建立和维持链路局部的邻居关系。
RSVP的TE扩展主要是在其Path消息和Resv消息中添加新的对象。新增对象除了能够携带标签绑定信息外,还能够携带对LSR在沿途寻找路径时的限制信息。从而支持CR-LSP的功能。并支持FRR。
Path消息新增的对象包含:LABEL_REQUEST、EXPLICIT_ROUTE、RECORD_ROUTE和SESSION_ATTRIBUTE。
-
Resv消息新增的对象包含:LABEL和RECORD_ROUTE。
LABEL_REQUEST对象包含在Path消息中。为LSP请求标签绑定,该对象也保存在路径状态块PSB(Path State Block)中。接收到该对象的节点将分配的标签通过Resv消息中的LABEL对象通知上游节点,从而完毕标签的公布和传递。
建立LSP隧道
Ingress LSR产生携带标签请求信息的Path消息,沿着通过CSPF计算出的路径逐跳发送给Egress LSR。
Egress LSR收到Path消息后。产生携带预留信息和标签的Resv消息,沿着Path消息发送的相反路径逐跳返回Ingress LSR,同一时候,Resv消息在沿途的LSR上进行资源预留;
当Ingress LSR收到Resv消息时,LSP建立成功。
-
採用RSVP-TE建立的LSP具有资源预留功能,沿途的LSR能够为该LSP分配一定的资源。使在此LSP上传送的业务得到保证。
RSVP刷新机制:RSVP通过Refresh消息来维护路径和预留状态。Refresh消息不仅用于在RSVP邻居节点进行状态同步。也用于恢复丢失的RSVP消息。Refresh消息并非一种新的消息,它是曾经公布过的消息的再次传送,Refresh消息中携带的主要信息和传送时使用的路径都与它要刷新的消息全然一致。
仅仅有Path消息和Resv消息才可能是Refresh消息。因为Refresh消息是定时发送的。当网络中的RSVP会话比較多时,Refresh消息会加重网络负载;而对于时延敏感的应用。当消息丢失时,等待通过Refresh消息恢复的时间可能无法接受。
简单地调整刷新间隔并不能同一时候解决这两类问题。
用于解决Refresh消息带来的上述问题。
-
Message_ID扩展:SVP本身使用Raw IP发送消息。RFC 2961中定义的Message_ID扩展机制添加了能够在RSVP消息中携带的对象。当中,Message_ID和Message_ID_ACK对象用于RSVP消息确认,从而提高RSVP消息发送的可靠性。
在接口使能Message_ID机制后,能够配置重传功能,设定RSVP消息的重传參数。假设在重传初始时间间隔内(假设为Rf秒),没有收到应答消息ACK。经过(1+Delta)×Rf秒后,将重传此消息。
-
摘要刷新扩展Srefresh(Summary Refresh)能够不传送标准的Path或Resv消息,而仍能实现对RSVP的状态刷新,从而能够降低网络上的Refresh消息流量,并加快节点对这类消息的处理速度。摘要刷新扩展须要与Message_ID扩展配合使用。
仅仅有那些已经被包含Message_ID对象的Path和Resv消息公布过的状态才干使用摘要刷新扩展机制刷新。
-
PSB、RSB与BSB的超时:为建立LSP,发送者在Path消息中携带LABEL_REQUEST对象。接收者收到带有LABEL_REQUEST对象的Path消息后。就会分配一个标签,并将标签放在Resv消息的LABEL对象中。
LABEL_REQUEST对象保存在上游节点的PSB(Path State Block,路径状态块)中,LABEL对象则保存在下游节点的RSB(ReservationState Block。预留状态块)中。当连续未收到刷新消息的次数超过PSB或RSB的超时倍数(当达到此数值时即为超时)时,PSB或RSB中对应的状态将被删除。
假设有一个资源预留请求。在某些节点上没有通过准入控制,有时可能不希望马上删除这个请求的状态,但这个请求也不应该阻止其它请求使用它预留的资源。
这样的情况下。节点将进入堵塞状态(Blockade State)。在下游节点生成BSB(Blockade State Block,堵塞状态块)。
当连续未收到刷新消息的次数超过堵塞状态超时倍数时,BSB中对应的状态被删除。
-
RSVP-TE GR功能依赖于RSVP-TE的Hello扩展能力。通过扩展的RSVP Hello报文向邻居通告自己的GR能力和相关时间參数。
设备和邻居假设都具备RSVP GR能力,那么在完毕GR參数的交互后,就能够在检測到对方发生GR重新启动时,充当对方的GR Helper。保证在GR Restarter重新启动的过程中。数据转发不会中断。当GR Restarter发生重新启动时。GR Helper连续丢失的Hello报文次数超过了配置的值。由此判定GR Restarter发生了重新启动。
此时GR Helper会保留与该邻居相关的软状态信息,并保持向对方周期性发送Hello报文,直到重新启动定时器(Restart Timer)超时。在重新启动定时器超时前。假设GR Helper邻居和GR Restarter又一次建立了Hello会话协商,那么启动恢复定时器。并触发信令报文交互以恢复原有的软状态。否则,将删除与该邻居相关的全部RSVP软状态信息和转发表项。假设恢复定时器超时。则删除那些在GR恢复过程中没有恢复的软状态和表项信息
PC1配置:
PC1#conf t
PC1(config)#no ip routing
PC1(config)#ipdefault-gateway 192.168.0.1
PC1(config)#int fa0/0
PC1(config-if)#ip add192.168.0.2 255.255.255.0
PC1(config-if)#no sh
PC1(config-if)#exit
PC2配置:
PC2#conf t
PC2(config)#no ip routing
PC2(config)#ipdefault-gateway 192.168.1.1
PC2(config)#int fa0/0
PC2(config-if)#ip add192.168.1.2 255.255.255.0
PC2(config-if)#no sh
PC2(config-if)#exit
R1配置:
R1#conf t
R1(config)#ip cef
R1(config)#mpls ip
R1(config)#mpls label pro ldp
R1(config)#mpls traffic-engtunnels // 全局模式下开启mpls-te功能
R1(config)#in lo 0
R1(config-if)#ip add 1.1.1.1255.255.255.255
R1(config-if)#exit
R1(config)#int fa0/0
R1(config-if)#ip add192.168.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa1/0
R1(config-if)#mpls ip
R1(config-if)#mplstraffic-eng tunnels // 接口模式下开启mpls-te功能
R1(config-if)#ip rsvpbandwidth 10000 //配置接口的总te带宽
R1(config-if)#ip add192.168.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa2/0
R1(config-if)#mpls ip
R1(config-if)#mplstraffic-eng tunnels
R1(config-if)#ip rsvpbandwidth 10000
R1(config-if)#ip add192.168.13.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int tunnel 1//设置隧道0
R1(config-if)#ip unnumberedloopback 0 //设置MPLS TE的ID使用loopback 0
R1(config-if)#tunneldestination 4.4.4.4//隧道目的地址
R1(config-if)#tunnel modempls traffic-eng //隧道开启MPLS-TE功能
R1(config-if)#tunnel mplstraffic-eng autoroute announce //开启MPLS-TE自己主动路由公布
R1(config-if)#tunnel mplstraffic-eng priority 1 1 //设置隧道优先级
R1(config-if)#tunnel mplstraffic-eng bandwidth 3000 //配置该隧道的带宽
R1(config-if)#tunnel mplstraffic-eng path-option 1 dynamic //自己主动建立路径
R1(config-if)#tunnel mplstraffic-eng record-route//配置隧道记录标签信息
R1(config-if)#exit
R1(config)#int tunnel 2
R1(config-if)#ip unnumberedloopback 0
R1(config-if)#tunneldestination 4.4.4.4
R1(config-if)#tunnel modempls traffic-eng
R1(config-if)#tunnel mplstraffic-eng autoroute announce
R1(config-if)#tunnel mplstraffic-eng priority 2 2
R1(config-if)#tunnel mplstraffic-eng bandwidth 3000
R1(config-if)# tunnel mplstraffic-eng path-option 2 dynamic
R1(config-if)#tunnel mplstraffic-eng record-route
R1(config-if)#exit
R1(config)#router ospf 100
R1(config-router)#mplstraffic-eng router-id loopback 0 //在ospf area 0中设置mpls-te ID
R1(config-router)#mplstraffic-eng area 0//在ospf area 0中支持mpls-te
R1(config-router)#net 0.0.0.00.0.0.0 area 0
R1(config-router)#exit
R2配置:
R2#conf t
R2(config)#ip cef
R2(config)#mpls ip
R2(config)#mpls lab
R2(config)#mpls label pro ldp
R2(config)#mpls traffic-engtunnels
R2(config)#int fa0/0
R2(config-if)#mpls ip
R2(config-if)#mpls traffic-eng tunnels
R2(config-if)#ip rsvpbandwidth 10000
R2(config-if)#ip add192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int fa0/1
R2(config-if)#mpls ip
R2(config-if)#mplstraffic-eng tunnels
R2(config-if)#ip rsvpbandwidth 10000
R2(config-if)#ip add192.168.24.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int lo 0
R2(config-if)#ip add 2.2.2.2255.255.255.255
R2(config-if)#exit
R2(config)#router ospf 100
R2(config-router)#mpls traffic-engrouter-id loopback 0
R2(config-router)#mplstraffic-eng area 0
R2(config-router)#net 0.0.0.0255.255.255.255 area 0
R2(config-router)#exit
R3配置:
R3#conf t
R3(config)#ip cef
R3(config)#mpls ip
R3(config)#mpls label pro ldp
R3(config)#mpls traffic-engtunnels
R3(config)#int fa0/0
R3(config-if)#mpls ip
R3(config-if)#mplstraffic-eng tunnels
R3(config-if)#ip rsvpbandwidth 10000
R3(config-if)#ip add192.168.13.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int fa0/1
R3(config-if)#mpls ip
R3(config-if)#mplstraffic-eng tunnels
R3(config-if)#ip rsvpbandwidth 10000
R3(config-if)#ip add192.168.34.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int lo 0
R3(config-if)#ip add 3.3.3.3255.255.255.255
R3(config-if)#exit
R3(config)#router ospf 100
R3(config-router)#mplstraffic-eng router-id loopback 0
R3(config-router)#mplstraffic-eng area 0
R3(config-router)#net 0.0.0.0255.255.255.255 area 0
R3(config-router)#exit
R4配置:
R4#conf t
R4(config)#ip cef
R4(config)#mpls ip
R4(config)#mpls label pro ldp
R4(config)#mpls traffic-engtunnels
R4(config)#int fa0/0
R4(config-if)#ip add192.168.1.1 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int fa1/0
R4(config-if)#mpls ip
R4(config-if)#mplstraffic-eng tunnels
R4(config-if)#ip rsvpbandwidth 10000
R4(config-if)#ip add192.168.24.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int fa2/0
R4(config-if)#mpls ip
R4(config-if)#mplstraffic-eng tunnels
R4(config-if)#ip rsvpbandwidth 10000
R4(config-if)#ip add192.168.34.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int lo 0
R4(config-if)#ip add 4.4.4.4255.255.255.255
R4(config-if)#exit
R4(config)#router ospf 100
R4(config-router)#mplstraffic-eng router-id loopback 0
R4(config-router)#mplstraffic-eng area 0
R4(config-router)#net 0.0.0.0255.255.255.255 area 0
R4(config-router)#exit
R4(config)#ip explicit-pathname T1 //建立T1静态路径
R4(cfg-ip-expl-path)#next-address192.168.24.2
R4(cfg-ip-expl-path)#next-address192.168.12.1
R4(cfg-ip-expl-path)#exit
R4(config)#ip explicit-pathname T2//建立T2静态路径
R4(cfg-ip-expl-path)#next-address192.168.34.3
R4(cfg-ip-expl-path)#next-address192.168.13.1
R4(cfg-ip-expl-path)#exit
R4(config)#int tunnel 1
R4(config-if)#ip unnumberedlo 1
R4(config-if)#tunneldestination 1.1.1.1
R4(config-if)#tunnel modempls traffic-eng
R4(config-if)#tunnel mplstraffic-eng priority 1 1
R4(config-if)#tunnel mplstraffic-eng bandwidth 3000
R4(config-if)#tunnel mplstraffic-eng autoroute announce
R4(config-if)#tunnel mplstraffic-eng path-option 1 explicit name T1 //使用手动建立的路径T1
R4(config-if)#tunnel mplstraffic-eng record-route
R4(config-if)#exit
R4(config)#int tunnel 2
R4(config-if)#ip unnumberedloopback 0
R4(config-if)#tunneldestination 1.1.1.1
R4(config-if)#tunnel modempls traffic-eng
R4(config-if)#tunnel mplstraffic-eng priority 1 1
R4(config-if)#tunnel mplstraffic-eng bandwidth 3000
R4(config-if)#tunnel mplstraffic-eng autoroute announce
R4(config-if)#tunnel mplstraffic-eng path-option 2 explicit name T2
R4(config-if)#tunnel mplstraffic-eng record-route
R4(config-if)#exit
完毕配置。查看效果
R4#sh ip rsvp neighbor
0.0.0.0 Unknown
192.168.24.2 RSVP
192.168.34.3 RSVP
R4#sh mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 3.3.3.3/32 0 Fa2/0 192.168.34.3
17 Pop tag 2.2.2.2/32 0 Fa1/0 192.168.24.2
18 Pop tag 192.168.12.0/24 0 Fa1/0 192.168.24.2
19 Pop tag 192.168.13.0/24 0 Fa2/0 192.168.34.3
20 Pop tag [T] 1.1.1.1/32 0 Tu2 point2point
Pop tag [T] 1.1.1.1/32 0 Tu1 point2point
21 Untagged[T] 192.168.0.0/24 0 Tu2 point2point
Untagged[T] 192.168.0.0/24 0 Tu1 point2point
[T] Forwarding through a TSP tunnel.
View additional tagging info with the'detail' option
R4#sh mpls traffic-engtunnels
Name: R4_t1 (Tunnel1)Destination: 1.1.1.1
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type explicit T1 (Basis forSetup, path weight 11)
Config Parameters:
Bandwidth: 3000 kbps (Global) Priority: 1 1 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 3000 bw-based
auto-bw: disabled
InLabel : -
OutLabel : FastEthernet1/0, 17
RSVP Signalling Info:
Src 4.4.4.4, Dst 1.1.1.1, Tun_Id 1,Tun_Instance 11
RSVP Path Info:
My Address: 192.168.24.4
Explicit Route: 192.168.24.2 192.168.12.2192.168.12.1 1.1.1.1
Record Route:
Tspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
RSVP Resv Info:
--More--
*Mar 1 00:20:21.323: %CDP-4-DUPLEX_MISMATCH:duplex mismatch discovered on FastEthernet2/0 (not half duplex), with R3FastEthernet0/1 (half duplex).
Record Route: 192.168.24.2 192.168.12.1
Fspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
History:
Tunnel:
Time since created: 20 minutes, 9 seconds
Time since path change: 19 minutes, 21seconds
Current LSP:
Uptime: 19 minutes, 21 seconds
Name: R4_t2 (Tunnel2)Destination: 1.1.1.1
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 2, type explicit T2 (Basis forSetup, path weight 11)
Config Parameters:
Bandwidth: 3000 kbps (Global) Priority: 1 1 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 3000 bw-based
auto-bw: disabled
InLabel : -
OutLabel : FastEthernet2/0, 16
RSVP Signalling Info:
Src 4.4.4.4, Dst 1.1.1.1, Tun_Id 2,Tun_Instance 11
RSVP Path Info:
My Address: 192.168.34.4
Explicit Route: 192.168.34.3 192.168.13.3192.168.13.1 1.1.1.1
Record Route:
Tspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
RSVP Resv Info:
Record Route: 192.168.34.3 192.168.13.1
Fspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
History:
Tunnel:
Time since created: 20 minutes, 10seconds
Time since path change: 19 minutes, 21seconds
Current LSP:
Uptime: 19 minutes, 21 seconds
LSP Tunnel R1_t1 issignalled, connection is up
InLabel : FastEthernet1/0, implicit-null
OutLabel : -
RSVP Signalling Info:
Src 1.1.1.1, Dst 4.4.4.4, Tun_Id 1,Tun_Instance 8
RSVP Path Info:
My Address: 4.4.4.4
Explicit Route: NONE
Record Route: NONE
Tspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
LSP Tunnel R1_t2 issignalled, connection is up
InLabel : FastEthernet2/0, implicit-null
OutLabel : -
RSVP Signalling Info:
Src 1.1.1.1, Dst 4.4.4.4, Tun_Id 2,Tun_Instance 11
RSVP Path Info:
My Address: 4.4.4.4
Explicit Route: NONE
Record Route: NONE
Tspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=3000 kbits, burst=1000bytes, peak rate=3000 kbits
实验十一、MPLS Traffic Engineering for per VRF MPLSVPN
Red1配置:
Red1#conf t
Red1(config)#intlo 0
Red1(config-if)#ipadd 1.1.1.1 255.255.255.255
Red1(config-if)#exit
Red1(config)#intfa0/0
Red1(config-if)#ipadd 172.168.1.1 255.255.255.0
Red1(config-if)#nosh
Red1(config-if)#exit
Red1(config)#routerospf 65501
Red1(config-router)#net0.0.0.0 255.255.255.255 area 0
Red1(config-router)#exit
Blue1配置:
Blue1#conf t
Blue1(config)#intlo 0
Blue1(config-if)#ipadd 2.2.2.2 255.255.255.255
Blue1(config-if)#exit
Blue1(config)#intfa0/0
Blue1(config-if)#ipadd 172.168.2.1 255.255.255.0
Blue1(config-if)#nosh
Blue1(config-if)#exit
Blue1(config)#routerospf 65502
Blue1(config-router)#net0.0.0.0 255.255.255.255 area 0
Blue1(config-router)#exit
Red2配置:
Red2#conf t
Red2(config)#intlo 0
Red2(config-if)#ipadd 11.11.11.11 255.255.255.255
Red2(config-if)#exit
Red2(config)#intfa0/0
Red2(config-if)#ipadd 192.168.11.1 255.255.255.0
Red2(config-if)#nosh
Red2(config-if)#exit
Red2(config)#routerospf 65501
Red2(config-router)#net0.0.0.0 255.255.255.255 area 0
Red2(config-router)#exit
Blue2配置:
Blue2#conf t
Blue2(config)#intlo 0
Blue2(config-if)#ipadd 22.22.22.22 255.255.255.255
Blue2(config-if)#exit
Blue2(config)#intfa0/0
Blue2(config-if)#ipadd 192.168.22.1 255.255.255.0
Blue2(config-if)#nosh
Blue2(config-if)#exit
Blue2(config)#routerospf 65502
Blue2(config-router)#net0.0.0.0 255.255.255.255 area 0
Blue2(config-router)#exit
ISP1配置:
ISP1#conf t
ISP1(config)#ipcef
ISP1(config)#mplsip
ISP1(config)#mplslabel protocol ldp
ISP1(config)#mplstraffic-eng tunnels
ISP1(config)#nompls ip propagate-ttl
ISP1(config)#intfa0/0
ISP1(config-if)#mplsip
ISP1(config-if)#mplstraffic-eng tunnels
ISP1(config-if)#iprsvp bandwidth 10000
ISP1(config-if)#ipadd 202.11.11.1 255.255.255.0
ISP1(config-if)#nosh
ISP1(config-if)#exit
ISP1(config)#intfa0/1
ISP1(config-if)#mplsip
ISP1(config-if)#mplstraffic-eng tunnels
ISP1(config-if)#iprsvp bandwidth 10000
ISP1(config-if)#ipadd 202.12.12.1 255.255.255.0
ISP1(config-if)#nosh
ISP1(config-if)#exit
ISP1(config)#intlo 0
ISP1(config-if)#ipadd 111.111.111.111 255.255.255.255
ISP1(config-if)#exit
ISP1(config)#routerospf 1
ISP1(config-router)#mplstraffic-eng router-id loopback 0
ISP1(config-router)#mplstraffic-eng area 0
ISP1(config-router)#net0.0.0.0 255.255.255.255 area 0
ISP1(config-router)#exit
ISP2配置:
ISP2#conf t
ISP2(config)#ipcef
ISP2(config)#mplsip
ISP2(config)#mplslabel protocol ldp
ISP2(config)#mplstraffic-eng tunnels
ISP2(config)#nompls ip propagate-ttl
ISP2(config)#intfa0/0
ISP2(config-if)#ipadd 202.21.21.1 255.255.255.0
ISP2(config-if)#mplsip
ISP2(config-if)#mplstraffic-eng tunnels
ISP2(config-if)#iprsvp bandwidth 10000
ISP2(config-if)#nosh
ISP2(config-if)#exit
ISP2(config)#intfa0/1
ISP2(config-if)#mplsip
ISP2(config-if)#mplstraffic-eng tunnels
ISP2(config-if)#iprsvp bandwidth 10000
ISP2(config-if)#ipadd 202.22.22.1 255.255.255.0
ISP2(config-if)#nosh
ISP2(config-router)#exit
ISP2(config)#intlo 0
ISP2(config-if)#ipadd 222.222.222.222 255.255.255.255
ISP2(config-if)#exit
ISP2(config)#routerospf 1
ISP2(config-router)#mplstraffic-eng router-id lo 0
ISP2(config-router)#mplstraffic-eng area 0
ISP2(config-router)#net0.0.0.0 255.255.255.255 area 0
ISP2(config-router)#exit
PE1配置:
PE1#conf t
PE1(config)#mplsip
PE1(config)#ipcef
PE1(config)#mplslabel protocol ldp
PE1(config)#mplstraffic-eng tunnels
PE1(config)#nompls ip propagate-ttl
PE1(config)#intlo 0
PE1(config-if)#ipadd 100.100.100.100 255.255.255.255
PE1(config-if)#exit
PE1(config)#intfa1/0
PE1(config-if)#mplsip
PE1(config-if)#mplstraffic-eng tunnels
PE1(config-if)#iprsvp bandwidth 10000
PE1(config-if)#ipadd 202.11.11.2 255.255.255.0
PE1(config-if)#nosh
PE1(config-if)#exit
PE1(config)#intfa2/0
PE1(config-if)#mplsip
PE1(config-if)#mplstraffic-eng tunnels
PE1(config-if)#iprsvp bandwidth 10000
PE1(config-if)#ipadd 202.21.21.2 255.255.255.0
PE1(config-if)#nosh
PE1(config-if)#exit
PE1(config)#routerospf 1
PE1(config-router)#mplstraffic-eng router-id loopback 0
PE1(config-router)#mplstraffic-eng area 0
PE1(config-router)#net202.11.11.0 0.0.0.255 area 0
PE1(config-router)#net202.21.21.0 0.0.0.255 area 0
PE1(config-router)#net100.100.100.100 0.0.0.0 area 0
PE1(config-router)#exit
PE1(config)#ipvrf Red
PE1(config-vrf)#rd1:1
PE1(config-vrf)#route-targetboth 1:1
PE1(config)#ipvrf Blue
PE1(config-vrf)#rd2:2
PE1(config-vrf)#route-targetboth 2:2
PE1(config-vrf)#exit
PE1(config)#intfa0/0
PE1(config-if)#ipvrf forwarding Red
PE1(config-if)#ipadd 172.168.1.2 255.255.255.0
PE1(config-if)#nosh
PE1(config-if)#exit
PE1(config)#intfa0/1
PE1(config-if)#ipvrf forwarding Blue
PE1(config-if)#ipadd 172.168.2.2 255.255.255.0
PE1(config-if)#nosh
PE1(config)#routerospf 65501 vrf Red
PE1(config-router)#net172.168.1.0 0.0.0.255 area 0
PE1(config-router)#exit
PE1(config)#routerospf 65502 vrf Blue
PE1(config-router)#net172.168.2.0 0.0.0.255 area 0
PE1(config-router)#exit
PE1(config)#routerbgp 1
PE1(config-router)#nei200.200.200.200 remote-as 1
PE1(config-router)#nei200.200.200.200 update-source loopback 0
PE1(config-router)#address-familyvpnv4
PE1(config-router-af)#nei200.200.200.200 activate
PE1(config-router-af)#nei200.200.200.200 send-community both
PE1(config-router-af)#exit
PE1(config-router)#address-familyipv4 vrf Red
PE1(config-router-af)#redistributeospf 65501 vrf Red
PE1(config-router-af)#exit
PE1(config-router)#address-familyipv4 vrf Blue
PE1(config-router-af)#redistributeospf 65502 vrf Blue
PE1(config-router-af)#exit
PE1(config-router)#exit
PE1(config)#routerospf 65501 vrf Red
PE1(config-router)#redistributebgp 1 subnets
PE1(config-router)#exit
PE1(config)#routerospf 65502 vrf Blue
PE1(config-router)#redistributebgp 1 subnets
PE1(config-router)#exit
PE1(config)#interfacetunnel 1
PE1(config-if)#mplsip
PE1(config-if)#IPunnumbered loopback 0
PE1(config-if)#tunnelmode mpls traffic-eng
PE1(config-if)#tunneldestination 200.200.200.200
PE1(config-if)#tunnelmpls traffic-eng bandwidth 3000
PE1(config-if)#tunnelmpls traffic-eng path-option 1 explicit name ISP1
PE1(config-if)#tunnelmpls traffic-eng path-option 2 dynamic
PE1(config-if)#tunnelmpls traffic-eng priority 1 1
PE1(config-if)#tunnelmpls traffic-eng autoroute announce
PE1(config-if)#tunnelmpls traffic-eng record-route
PE1(config-if)#exit
PE1(config)#inttunnel 2
PE1(config-if)#mplsip
PE1(config-if)#tunnelmode mpls traffic-eng
PE1(config-if)#ipunnumbered loopback 0
PE1(config-if)#tunneldestination 200.200.200.200
PE1(config-if)#tunnelmpls traffic-eng bandwidth 2000
PE1(config-if)#tunnelmpls traffic-eng path-option 1 explicit name ISP2
PE1(config-if)#tunnelmpls traffic-eng path-option 2 dynamic
PE1(config-if)#tunnelmpls traffic-eng priority 2 2
PE1(config-if)#tunnelmpls traffic-eng autoroute announce
PE1(config-if)#tunnelmpls traffic-eng record-route
PE1(config-if)#exit
PE1(config)#ipexplicit-path name ISP1
PE1(cfg-ip-expl-path)#next-address202.11.11.1
PE1(cfg-ip-expl-path)#next-address202.12.12.2
PE1(cfg-ip-expl-path)#exit
PE1(config)#ipexplicit-path name ISP2
PE1(cfg-ip-expl-path)#next-address202.21.21.1
PE1(cfg-ip-expl-path)#next-address202.22.22.2
PE1(cfg-ip-expl-path)#exit
PE2配置:
PE2#conf t
PE2(config)#ipcef
PE2(config)#mplsip
PE2(config)#mplslabel protocol ldp
PE2(config)#mplstraffic-eng tunnels
PE2(config)#nompls ip propagate-ttl
PE2(config)#intlo 0
PE2(config-if)#ipadd 200.200.200.200 255.255.255.255
PE2(config-if)#exit
PE2(config)#intfa1/0
PE2(config-if)#mplsip
PE2(config-if)#mplstraffic-eng tunnels
PE2(config-if)#iprsvp bandwidth 10000
PE2(config-if)#ipadd 202.12.12.2 255.255.255.0
PE2(config-if)#nosh
PE2(config-if)#exit
PE2(config)#intfa2/0
PE2(config-if)#mplsip
PE2(config-if)#mplstraffic-eng tunnels
PE2(config-if)#iprsvp bandwidth 10000
PE2(config-if)#ipadd 202.22.22.2 255.255.255.0
PE2(config-if)#nosh
PE2(config-if)#exit
PE2(config)#routerospf 1
PE2(config-router)#mplstraffic-eng router-id loopback 0
PE2(config-router)#mplstraffic-eng area 0
PE2(config-router)#net202.12.12.0 0.0.0.255 area 0
PE2(config-router)#net202.22.22.0 0.0.0.255 area 0
PE2(config-router)#net200.200.200.200 0.0.0.0 area 0
PE2(config-router)#exit
PE2(config)#ipvrf Red
PE2(config-vrf)#rd1:1
PE2(config-vrf)#route-targetboth
PE2(config-vrf)#route-targetboth 1:1
PE2(config)#ip vrfBlue
PE2(config-vrf)#rd2:2
PE2(config-vrf)#route-targetboth 2:2
PE2(config-vrf)#exit
PE2(config)#intfa0/0
PE2(config-if)#ipvrf forwarding Red
PE2(config-if)#ipadd 192.168.11.2 255.255.255.0
PE2(config-if)#nosh
PE2(config-if)#exit
PE2(config)#intfa0/1
PE2(config-if)#ipvrf forwarding Blue
PE2(config-if)#ipadd 192.168.22.2 255.255.255.0
PE2(config-if)#nosh
PE2(config-if)#exit
PE2(config)#routerospf 65501 vrf Red
PE2(config-router)#net192.168.11.0 0.0.0.255 area 0
PE2(config-router)#exit
PE2(config)#routerospf 65502 vrf Blue
PE2(config-router)#net192.168.22.0 0.0.0.255 area 0
PE2(config-router)#exit
PE2(config)#routerbgp 1
PE2(config-router)#nei100.100.100.100 remote-as 1
PE2(config-router)#nei100.100.100.100 update-source loopback 0
PE2(config-router)#address-familyvpnv4
PE2(config-router-af)#nei100.100.100.100 activate
PE2(config-router-af)#nei100.100.100.100 send-community both
PE2(config-router-af)#exit
PE2(config-router)#address-familyipv4 vrf Red
PE2(config-router-af)#redistributeospf 65501 vrf Red
PE2(config-router-af)#exit
PE2(config-router)#address-familyipv4 vrf Blue
PE2(config-router-af)#redistributeospf 65502 vrf Blue
PE2(config-router-af)#exit
PE2(config)#routerospf 65501 vrf Red
PE2(config-router)#redistributebgp 1 subnets
PE2(config-router)#exit
PE2(config)#routerospf 65502 vrf Blue
PE2(config-router)#redistributebgp 1 subnets
PE2(config-router)#exit
PE2(config)#inttunnel 1
PE2(config-if)#mplsip
PE2(config-if)#ipunn loopback 0
PE2(config-if)#tunnelmode mpls traffic-eng
PE2(config-if)#tunneldestination 100.100.100.100
PE2(config-if)#tunnelmpls traffic-eng bandwidth 2000
PE2(config-if)#tunnelmpls traffic-eng path-option 1 explicit name ISP1
PE2(config-if)#tunnelmpls traffic-eng path-option 2 dynamic
PE2(config-if)#tunnelmpls traffic-eng priority 1 1
PE2(config-if)#tunnelmpls traffic-eng autoroute announce
PE2(config-if)#tunnelmpls traffic-eng record-route
PE2(config-if)#exit
PE2(config)#inttunnel 2
PE2(config-if)#mplsip
PE2(config-if)#tunnelmode mpls traffic-eng
PE2(config-if)#ipunnumbered loopback 0
PE2(config-if)#tunneldestination 100.100.100.100
PE2(config-if)#tunnelmpls traffic-eng bandwidth 2000
PE2(config-if)#tunnelmpls traffic-eng path-option 1 explicit name ISP2
PE2(config-if)#tunnelmpls traffic-eng path-option 2 dynamic
PE2(config-if)#tunnelmpls traffic-eng priority 2 2
PE2(config-if)#tunnelmpls traffic-eng autoroute announce
PE2(config-if)#tunnelmpls traffic-eng record-route
PE2(config-if)#exit
PE2(config)#ipexplicit-path name ISP1
PE2(cfg-ip-expl-path)#next-address202.12.12.1
PE2(cfg-ip-expl-path)#next-address202.11.11.2
PE2(cfg-ip-expl-path)#exit
PE2(config)#ipexplicit-path name ISP2
PE2(cfg-ip-expl-path)#next-address202.22.22.1
PE2(cfg-ip-expl-path)#next-address202.21.21.2
PE2(cfg-ip-expl-path)#exit
完毕配置检查
Red1#tracerou11.11.11.11
Type escape sequenceto abort.
Tracing theroute to 11.11.11.11
1 172.168.1.2 64 msec 48 msec 24 msec
2 192.168.11.2 [MPLS: Label 21 Exp 0] 72 msec 68 msec 56 msec
3 192.168.11.1 108 msec 88 msec 80 msec
Blue1#traceroute22.22.22.22
Type escapesequence to abort.
Tracing theroute to 22.22.22.22
1 172.168.2.2 36 msec 48 msec 24 msec
2 192.168.22.2 [MPLS:Label 23 Exp 0] 68 msec 64 msec 48 msec
3 192.168.22.1 128 msec 84 msec 72 msec
PE1#sh mplsforwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag [T] 200.200.200.200/32 \
0 Tu1 point2point
Pop tag [T] 200.200.200.200/32 \
0 Tu2 point2point
17 Pop tag 111.111.111.111/32 \
0 Fa1/0 202.11.11.1
18 Pop tag 202.12.12.0/24 0 Fa1/0 202.11.11.1
19 Pop tag 202.22.22.0/24 0 Fa2/0 202.21.21.1
20 Pop tag 222.222.222.222/32 \
0 Fa2/0 202.21.21.1
21 Untagged 1.1.1.1/32[V] 0 Fa0/0 172.168.1.1
22 Aggregate 172.168.1.0/24[V] 2448
23 Untagged 2.2.2.2/32[V] 0 Fa0/1 172.168.2.1
24 Aggregate 172.168.2.0/24[V] 1392
[T] Forwarding through a TSP tunnel.
View additional tagging info with the'detail' option
PE1#sh ip cefvrf Red 11.11.11.11
11.11.11.11/32,version 13, epoch 0, per-destination sharing
0 packets, 0bytes
tag information set
local tag: VPN-route-head
fast tag rewrite with
Recursive rewrite via 200.200.200.200/32,tags imposed {21}
via 200.200.200.200, 0 dependencies,recursive
next hop 200.200.200.200, Tunnel1 via200.200.200.200/32
valid adjacency
tag rewrite with
Recursive rewrite via200.200.200.200/32, tags imposed {21}
Recursive load sharing using 200.200.200.200/32.
PE1#sh ip cefvrf Blue 22.22.22.22
22.22.22.22/32,version 13, epoch 0, per-destination sharing
0 packets, 0bytes
tag information set
local tag: VPN-route-head
fast tag rewrite with
Recursive rewrite via 200.200.200.200/32, tagsimposed {23}
via 200.200.200.200, 0 dependencies,recursive
next hop 200.200.200.200, Tunnel1 via200.200.200.200/32
valid adjacency
tag rewrite with
Recursive rewrite via 200.200.200.200/32,tags imposed {23}
Recursive load sharing using200.200.200.200/32.
#sh mplstraffic-eng tunnels
Name:PE1_t1 (Tunnel1) Destination: 200.200.200.200
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 2, type dynamic (Basis forSetup, path weight 11)
path option 1, type explicit ISP1
Config Parameters:
Bandwidth: 2000 kbps (Global) Priority: 1 1 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 2000 bw-based
auto-bw: disabled
InLabel : -
OutLabel : FastEthernet1/0, 22
RSVP Signalling Info:
Src 100.100.100.100, Dst200.200.200.200, Tun_Id 1, Tun_Instance 230
RSVP Path Info:
My Address: 202.11.11.2
Explicit Route: 202.11.11.1 202.12.12.1202.12.12.2 200.200.200.200
Record Route:
Tspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
RSVP Resv Info:
Record Route: 202.11.11.1 202.12.12.2
Fspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
History:
Tunnel:
Time since created: 1 hours, 9 minutes
Time since path change: 1 minutes, 13seconds
Current LSP:
Uptime: 1 minutes, 13 seconds
Prior LSP:
ID: path option 1 [229]
Removal Trigger: path option removed
Name:PE1_t2 (Tunnel2) Destination: 200.200.200.200
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type explicit ISP2 (Basisfor Setup, path weight 11)
pathoption 2, type dynamic
Config Parameters:
Bandwidth: 2000 kbps (Global) Priority: 2 2 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 2000 bw-based
auto-bw: disabled
InLabel : -
OutLabel : FastEthernet2/0, 23
RSVP Signalling Info:
Src 100.100.100.100, Dst200.200.200.200, Tun_Id 2, Tun_Instance 251
RSVP Path Info:
My Address: 202.21.21.2
Explicit Route: 202.21.21.1 202.22.22.1202.22.22.2 200.200.200.200
Record Route:
Tspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
RSVP Resv Info:
Record Route: 202.21.21.1 202.22.22.2
Fspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
History:
Tunnel:
Time since created: 1 hours, 9 minutes
Time since path change: 2 minutes, 19seconds
Current LSP:
Uptime: 2 minutes, 19 seconds
Prior LSP:
ID: path option 2 [250]
Removal Trigger: path option removed
LSP TunnelPE2_t1 is signalled, connection is up
InLabel : FastEthernet1/0, implicit-null
OutLabel : -
RSVP Signalling Info:
Src 200.200.200.200, Dst100.100.100.100, Tun_Id 1, Tun_Instance 231
RSVP Path Info:
My Address: 100.100.100.100
Explicit Route: NONE
Record Route: 202.11.11.1 202.12.12.2
Tspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
RSVP Resv Info:
Record Route:
Fspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
LSP TunnelPE2_t2 is signalled, connection is up
InLabel : FastEthernet2/0, implicit-null
OutLabel : -
RSVP Signalling Info:
Src 200.200.200.200, Dst100.100.100.100, Tun_Id 2, Tun_Instance 235
RSVP Path Info:
My Address: 100.100.100.100
Explicit Route: NONE
Record Route: 202.21.21.1 202.22.22.2
Tspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
RSVP Resv Info:
Record Route:
Fspec: ave rate=2000 kbits, burst=1000bytes, peak rate=2000 kbits
-