zoukankan      html  css  js  c++  java
  • MPLS 标签保留

    0-15是保留标签,数据流进行转发的时候,不使用这些标签。
    0-显式空NULL标签.
    3-隐式空标签.
    1-路由器报警标签.
    14-OAM报警标签。
    CISCO的IOS里面用的是隐式空标签.

    R4#show mpls ldp bindings                             
     tib entry:2.1.1.0/24,rev 6                           
        local binding:tag :16                          
        remote binding:tsr:4.1.1.1:0,tag:imp-null      
        remote binding:tsr:6.1.1.1:0,tag:17            
    tib entry:3.1.1.0/24,rev 4                            
        local binding:tag:imp-null                     
        remote binding:tsr:4.1.1.1:0,tag:imp-null      
        remote binding:tsr:6.1.1.1:0,tag:16            

    implicit-Null.
    在以前的时间里,我一直没有真正的理解显示空和隐式空真正的含义。今天找了一个相关的开发老师把这个概念理清楚了。
    下面是我总结出来的一些概念,不对的请达人些指教.
    隐式空标签:
    该标签的标签号固定为3,该标签我理解就是一个概念上的东西,用show命令show mpls forwarding-table都看不到这个3,那么为什么要用这个标签呢?好处在哪里?
    这里涉及到另外一个概念是PHP次末节点弹出机制.

    这里随便借用了一个拓扑图。假设R3是P设备,R4和R5是PE.
    那么当MPLS报文送到R3往R4和R5进行转发的时候,在R3上面就会把标签pop出去,剥离标签以后,用隐式空标签3安装在报文前面,实际上已经就是纯IP报文了,然后转发给R4或者R5,那么两个PE设备负责的事情就是纯粹的IP转发了,减轻了PE设备的压力。
    否则的话,PE设备需要做的事情是收到了报文以后首先剥离标签,然后查找路由表进行IP报文的转发,这样加大了设备工作流程。
    凡是做过工程的朋友都知道,运营商的P设备一般都是很强悍的至少是CISCO7200级别的设备,或者是7600.GSR等等,但是对于PE来说,CISCO 3800/2800都可以来做。这也就是为什么PE的需求不是那么要求高的原因了。不知道这样说是否说明清楚了。
    正是因为有了PHP的设计思路,所以才有了隐式空标签的出现。
    简单说来,为了减轻PE的压力,在倒数第二跳直接将标签弹出,以纯IP的报文格式传送给PE.让PE直接走IP转发.
    显式空标签:
    有了隐式空标签以后,其实隐式空标签也有缺陷的。我们都知道MPLS标签报文的结构:

    其中,0-20位是标签位,S位和TTL位先不管,还有8位的EXP位,这就是其中的QOS位。
    相当于IP报头中的IP precedence和DSCP一样,是用来着色的。但是这里试想一下,如果客户需要做端到端的QOS,那么一定会从头到尾都需要有相关的着色位是有色的。PHP工作机制在倒数第二跳弹出以后,会把整个MPLS报文头移除,而不是单纯的移除标签,那么如果原来有的EXP假如是8,这个时候EXP也会随MPLS报头一起删除,试问,在MPLS骨干网中,下一跳PE如何来做QOS呢?
    所以为什么之前说的隐式空标签是一个概念。因为MPLS报文头被移除了。而现在需要用0这个显示空标签来进行替代,实际上是保留MPLS报文头,标签为0,EXP/S/TTL全部都保留下来传递到下一跳,最后就是PE来做P的工作,收到报文,先经过QOS队列,然后剥离标签进行IP转发。虽然这样可以做端到端的QOS,但是弊端就是对PE设备的性能压力比较大。
    PS:对于IPv6来说,显示空标签不是0,而是2.
    对于隐式空和显示空标签,我还有一个疑问,咨询了研究院的老师以后,就更加清楚了,这里也分享出来:
    以前我在做工程的时候,我记得运营商的PE,从VRF收到客户侧的数据报文以后,会加上MPLS报文头从骨干网传输出去,当时我做实验证明了一个理论就是,设备(cisco/MAIPU)会自动根据从VRF接收到的报文的IP precedence或者是DSCP复制出来,然后粘贴为MPLS报文头的EXP字段。也就是说,IP报文经过PE到骨干网,PE设备会将IP的TOS那8个字节复制到MPLS header的EXP中去。那么从PE出来的时候是否也会复制呢?
    如果要复制,那也就是说不需要显示空标签。按照这个逻辑应该是标准为只对进设备的报文进行复制,PHP倒数第二跳出去的报文不会从MPLS头里EXP再复制到IP的TOS去。也就是IP的服务类型service type里面去。所以这里才有了显示空标签的应用.这个是和研发老师进行确认了的。
    下面是在迈普的设备和CISCO设备上的配置方式。
    我们都知道设备默认的是隐式空标签。所以不需要配置。
    在迈普的设备上面,要先显示空标签,需要在MPLS LDP下面进行配置:

    这里迈普的设备用显示空标签是全局的能力,也就是说,在mpls ldp下面配置了explicit-null以后,该设备作为P在对于所有的PE都会用显示空标签,并不能针对哪些特殊的对象进行选择性的操作。
    cisco设备的操作方式是:

    请参考图中的mpls ldp explicit-null to bbb,bbb是一个ACL的名字。
    这样比较灵活。
    当然也可以让整个设备都做显示空0出去:
    mpls ldp explicit-null
    还要提一下TTL,这个也是MPLS 报头中的一个东西,在IPV4报头中,TTL是如此的重要。TTL通常是255,每经过一跳(三层设备)就会减少1,知道最后为0就会丢弃,发送ICMP type=11和0.在MPLS中,IP的TTL会减1,然后复制到MPLS TTL中,在用MPLS转发的时候IP的TTL不会变化。最后当标签被剥离的时候,会在MPLS TTL减1,然后再复制到IP的TTL中。


    总结一下:
    MPLS的MTU一定会比IP的MTU要大,如果你想不分片传输报文的话,下面我自己整理了一个公式:
    MPLS MTU=IP MTU+4*N (N代表标签的个数)
    再用一个以前做的实验来阐述MPLS MTU的设置:
    IP MTU=1500,MPLS MTU=1503, 源地址ping目的-f不分片-l 1500。结果掉包不通。
    IP MTU=1500,MPLS MTU=1504, 源地址ping目的-f不分片-l 1500。结果通。
    其实这里就验证了那个公式,MPLS MTU一定大于IP MTU.因为还要加上4*N个标签.
    那么这里再想一下,如果IP MTU=1500, MPLS =1500.
    那么数据报文在什么情况下就会分片?答案是:IP 长度在1496的时候就会分片。如果ping x.x.x.x -l 1500 -f
    一定是掉包。大家可以做实验进行验证 :)
    还要提到的一点是,命令为:

    在默认情况下,ip MTU=1500,MPLS MTU=1500.意味着在IP MTU=1496的时候,就会分片。
    (IP MTU+4*N)>MPLS MTU的话,一定会掉包。
    这就是今天的主题。关于MPLS 报文头的一些相关内容.

  • 相关阅读:
    导包路径
    django导入环境变量 Please specify Django project root directory
    替换django的user模型,mysql迁移表报错 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependen cy user.0001_initial on database 'default'.
    解决Chrome调试(debugger)
    check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) values ('徐小波','XuXiaoB','男','1',' at line 1")
    MySQL命令(其三)
    MySQL操作命令(其二)
    MySQL命令(其一)
    [POJ2559]Largest Rectangle in a Histogram (栈)
    [HDU4864]Task (贪心)
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824168.html
Copyright © 2011-2022 走看看