CCNP-MPLS-标签交换

MPLS:多协议标签交换---ISP应用

包交换:基于数据包中的IP地址进行路由;

标签交换:基于2.5层的标签进行数据转发; 多协议:无论网络层运行什么协议;

 

当下的主要应用:

  1. 解决BGP路由黑洞     2)MPLS VPN      3)MPLS TE(流量工程)

 

使用MPLS首先需要开启CEF:

  1. 启动CEF可以被ASIC(硬件芯片)直接调用转发
  2. CEF解决了递归问题,对应MPLS的标签生成非常重要
  3. CEF生成FIB表,而TDP/LDP只能基于该表进行标签的分发;
  4. 普通的路由表中不允许存在其他协议的参数,只有CEF可以提供MPLS的标签保存

 

控制层面:交换路由信息;标签的分发(MPLS不为BGP的路由进行标签分发)

数据层面:根据路由转发用户数据;标签的压入和弹出,基于标签号进行数据的转发

 

控制层面:通过IGP或者EGP交互路由信息,在交互路由信息基础上,通过TDP/LDP为所学习到的路由条目生成标签号,同时将标签告知邻居;

该层面工作完成后------生成:

  1. FIB转发信息数据库      
  2. LIB标签信息数据库(本地和邻居对各条路由条目生成的标签号)
  3. LFIB标签信息转发数据库--FIB表和LIB进行结合

 

数据层面:普通的IP数据包,基于FIB表转发;若存在标签号基于LFIB转发流量

 

MPLS的数据包封装于2层和3层之间,称为2.5层

 

标签数据格式:32位

前20位为标签号:存在2^20个号码,其中0-15号被保留;故正常分发第一个号码为16号

20-22位:8个优先级,可用于进行QOS

第23位:栈底位,为1,标示本层标签为最后一层;最多可以存在3层标签信息;

TTL:当标签压入时,复制IP报头中的TTL值到标签中,当标签被弹出时复制TTL值到IP包头中;

一层标签:普通的MPLS流量

二层标签:MPLS VPN

三层标签:MPLS TE

 

使用MPLS后,二层若为以太网,其type 字段:

0X8847 MPLS单播

0X8848 MPLS 多播

 

 

名词注解:

  1. mpls domain -----MPLS工作的范围
  2. LSR(P路由器):标签交换路由器 查看数据包中的标签号基于LFIB进行数据转发
  3. Edge LSR(PE路由器):边界标签路由器;在数据层面工作时,第一跳路由器负责标签

  的压入,最后一跳路由器负责标签的弹出;

  1. CE 客户端路由器,不工作于MPLS域,使用FIB表转发流量
  2. 上游路由器,下游路由器 基于数据层面进行区分

 

 

MPLS工作原理:

在控制层面传递路由条目的同时,MPLSTDP/LDP将基于每条条目进行标签号的分发,然后传递给邻居;上游设备传输流量时,压入下游设备分发的标签号

 

 

MPLS的优化:PHP次末跳 倒数第二跳;默认执行

最后一跳路由器在默认情况下需要查看LFIB后再查看FIB表,然后转发数据;PHP可以使倒数第二跳路由器在已知出接口等信息时,将标签弹出,就流量转发给最后一跳路由器;使最后一跳仅查看FIB表;

 

最后一跳,到达某个目标为本地直连时,及视为本地是该目标的最后一跳路由器;基于该网段分配给上游路由器标签号3;来告知对端为倒数第二跳;

 

注:PHP仅弹出最上层标签;   pop 标示仅弹最上层标签

                             Untagged MPLS域标记,弹出所有标签;

 

 

 

 

 

 

配置:

  1. 单播路由
  2. CEF
  3. 开启MPLS
  4. (可选,建议配置)  修改MTU大小,因为标签的压入后将增大数据包,可能由于默认的MTU值,导致数据被重新分割,影响转发速度

r1(config)#int s1/1

r1(config-if)#mtu 1504  直连两端必须配置为一致

 

r2(config)#interface s1/1

r2(config-if)#mpls ip 开启某个接口的MPLS

 

 

 

分发的协议存在两种:

  1. TDP  cisco私有    TCP/UDP 711  hello包基于UDP传输,标签信息传输基于TCP
  2. LDP       公有    TCP/UDP 646  hello包基于UDP传输,标签信息传输基于TCP

Cisco ios版本12.4(3)以下设备默认使用TDP,以上默认LDP

设置mpls标签范围

R2(config)#mpls label range 200 1044

r2(config)#mpls label protocol ?  修改工作协议

  ldp  Use LDP

  tdp  Use TDP (default)

 

协议开启后,邻居间使用hello包建立邻居关系,生成邻居表

r2#show mpls ldp neighbor    存在RID,RID的选举规则同OSPF一致;

                          注:RID也是数据包发送的目标ip地址,故若RID不能被访

                          问到,那么邻居关系将不能建立;若配置了环回,那么环回需

                          要宣告到单播路由协议中;

也可以修改RID为本地物理接口;

r2(config)#mpls ldp router-id serial 1/1 ?   修改该接口ip地址为RID

  force  Forcibly change the LDP router id  即可生效

  <cr>                                重启后生效

 

 

当邻居关系建立后,基于FIB表,生成LIB

MPLS将基于本地所有学习到的路由条目分发一个标签号,FIB中基于本地和邻居分配给每条条目的所有编号;

 

 

 

当LIB生成后,将LIB和FIB表进行结合,生成LFIB来转发流量;

r2#show mpls forwarding-table

入标签为本地分配

出标签标签为下游分配

 

 

 

普通的MPLS解决BGP的路由黑洞问题:

MPLS将不为通过BGP学习到的路由条目分发标签号;

但是在访问BGP学习的目标时,封装该目标BGP下一跳地址所在网段的标签号;

使中间未运行BGP协议的路由器,基于标签号将流量转发到BGP的下一跳处,来避免路由黑洞;

 

 

MPLS VPN:

通过公网来传递私网的路由条目,由ISP负责;

  1. CE端和PE端的路由传递
  2. 如何区分不同的CE传递过来的相同路由----RD

   RD---路由区分器----一个64位16进制的数值   X:X 1:1

  1. ISP路由器不能将CE端的路由装载到本地的普通路由表中,提供VRF空间

   VRF:虚拟路由转发----在PE上配置,基于不同的CE端生成各种的路由表

  1. VRF中的路由不是普通路由,普通路由协议不能将其进行传递,必须使用MP-BGP来传递

VPNV4路由===IPV4路由+RD+RT值

  1. RT值,用于区分不同的目标接收者   RT值的格式同RD值,但RD为数值,RT为社团属性
  2. 使用MPLS可以解决路由黑洞,但当数据层面流量到达目标地址所在BGP路由器时,由于数据层面流量不能携带RD/RT值,故在弹出标签后,导致流量无法对应到不同CE端的VRF空间;因此,使用双重标签;外标签由于解决路由黑洞,将流量转发到CE端所连PE,内层标签用于对应不同的VRF空间;

 

 

配置:

  1. ISP的部分

[1]单播路由

[2]CEF

[3]MPLS

[4]定义VRF空间,同时关联所连接的CE端接口,再同时定义RD/RT

r2(config)#ip vrf openlabxian    创建空间名为openlabxian

r2(config-vrf)#rd 1:1             RD值

r2(config-vrf)#route-target 1:1     RT值

r2(config-vrf)#exit

r2(config)#interface s1/0   进入关联接口

r2(config-if)#no ip address 因为该接口将归属于VRF空间,故原IPV4地址需要排除

r2(config-if)#ip vrf forwarding openlabxian   关联空间

r2(config-if)#ip address 12.1.1.2 255.255.255.0  配置该接口ip地址,该接口所在路由将转移

                                        到VRF空间内

 

r2#show ip route vrf openlabxian  查看该空间内的路由条目

r2#ping vrf openlabxian 12.1.1.1   使用该空间的路由来进行通信

注:当流量从某VRF空间所关联接口进入,那么将查询该VRF内的路由条目;

非VRF空间所关联接口进入,查看普通IPV4路由表

 

【5】MP-BGP---两个PE上配置

使用MP-BGP来传递VRF空间内的路由条目

先建立IPV4的BGP邻居关系,再建立MP-BPG关系

r2(config)#router bgp 1

r2(config-router)#b router-id 2.2.2.2

r2(config-router)#neighbor 4.4.4.4 remote-as 1

r2(config-router)#neighbor 4.4.4.4 update-source loopback 0

r2(config-router)#address-family vpnv4   进入家族模式

r2(config-router-af)#neighbor 4.4.4.4 activate     建立MP-BGP邻居关系

r2(config-router-af)#neighbor 4.4.4.4 send-community  开启社团属性传递性, 否则RT将不

                                              能被传递

 

 

  1. CE端将私网路由传递给PE端

【1】静态

CE端,配置缺省静态指向ISP即可

PE端配置到CE端私网的静态路由

r2(config)#ip route vrf openlabxian 192.168.1.0 255.255.255.0  serial 1/0 12.1.1.1

出接口和下一跳必须同时存在

 

r2(config)#router bgp 1  再将本地VRF空间内的直连和静态路由重发布到BGP协议中

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#redistribute static

r2(config-router-af)#redistribute connected

 

r2#show ip bgp vpnv4 vrf openlabxian

   Network          Next Hop            Metric LocPrf Weight Path

Route Distinguisher: 1:1 (default for vrf openlabxian)

*> 12.1.1.0/24        0.0.0.0                  0         32768 ?

*> 192.168.1.0        12.1.1.1                 0         32768 ?

 

 

【2】RIPV2

CE端正常启动和配置RIPV2

PE端配置:

r2(config)#router rip

r2(config-router)#version 2

r2(config-router)#no auto-summary

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#network 12.0.0.0

r2(config-router-af)#redistribute bgp 1 metric 1

 

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#redistribute rip

 

 

【3】EIGRP

CE端正常配置EIGRP协议

PE端配置:

r4(config)#router eigrp 1   启动时,需要使用本地真实的AS号

r4(config-router)#no auto-summary

r4(config-router)#address-family ipv4 vrf openlabwu

r4(config-router-af)#autonomous-system 90   在VRF内建邻时告知CE端所使用AS号

r4(config-router-af)#network 45.0.0.0

r4(config-router-af)#redistribute bgp 1 metric 1544 100 255 1 1500

 

r4(config)#router bgp 1

r4(config-router)#address-family ipv4 vrf openlabwu

r4(config-router-af)#redistribute eigrp 90  导入时使用私有AS号

 

 

【4】OSPF

CE端正常配置

PE端

r2(config)#router ospf 1 vrf openlabxian

r2(config-router)#router-id 2.2.2.2

r2(config-router)#network 12.1.1.2 0.0.0.0 a 0

r2(config-router)#redistribute bgp 1 subnets

r2(config-router)#exit

 

r2(config)#router bgp 1

r2(config-router)#address-family ipv4 vrf openlabxian

r2(config-router-af)#redistribute ospf 1

 

 

注:若两端的PE上实施不同的OSPF虚拟进程号,那么路由条目显示5类学习;

若两端均为OSPFI协议,且虚拟进程号相同,那么路由条目为1类、3类

Show ip bgp vpnv4 all summaryv展示vpnv4的邻居

先在全局下 MPLS label  rang 100 199 控制标签范围

发布了34 篇原创文章 · 获赞 80 · 访问量 7672

猜你喜欢

转载自blog.csdn.net/weixin_42767604/article/details/84898509