加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]【MPLS】PHP倒数第二跳弹出机制

(2014-03-20 23:20:47)
标签:

转载

分类: MPLS

 》如果没有PHP机制:

http://s16/mw690/5ec35371te10f36e05b0f&690

  • 关于30.0/24这个前缀,C分配的标签是23,这个映射传递给了B;B本地给30.0/24分配的标签是22,这个映射传递给了A。
  • 现在A下面有用户发送数据到30.0网络,A将数据压上标签头,标签值为22。标签包到了B,B将标签替换成23,然后传递给C。
  • C上,先查找LFIB表,发现要将标签弹出,于是它将标签弹出,弹出后发现是个IP报文,于是又去查FIB表,最终将这个IP数据包转发出去。C进行了两次查找。这降低了转发效率。
  • 标签可以在(倒数第二跳)上弹出,C只需查找FIB表将收到的IP报文进行转发

》有了PHP机制:
 
http://s9/mw690/5ec35371te10f37d4dce8&690



  • 有了PHP倒数第二跳弹出机制的话,C为本地的直连的前缀分配POP标签并通告给其他LDP邻居
  • 如此一来,B收到一个A发送过来的标签值为22的标签包,会将标签弹出得到IP包,再转发给C,则C仅需对IP包进行FIB表的查找和转发。

》小结

    LDP 在帧模式(Frame Mode)下,LSR会为每一条路由分配一个标签;而为本地的直连路由分配的是POP标签。

    倒数第二跳弹出机制有两种标签,一是POP或implicit null,在LDP中标签值为3;另一个是explicit null,在LDP中标签值为0。如果收到邻居发送来的关于某条路由分配的标签值为3,则我发送数据给该邻居时,我会将该标签弹出,再将内层数据转给邻居。而如果邻居关于某条路由分配的标签值为0,那么本地在转数据给邻居时,会带上标签(为0的),一并发给邻居。

    这里要留意的是,如果收到一个标签包,标签为0,则直接将数据交给FIB进行查找,不会有两次查找的损耗。标签为0的标签包,为什么不干脆将标签去掉(分配个13值给路由下一跳让下一跳将标签去掉啊),为什么还要保留这个为0的标签头呢?这是为了在某种情况下保持网络规划的统一性,例如部署了MPLS的QoS,则需使用标签包中的EXP字段,那么就需要有标签。在实施QoS时,最后一跳必须携带exp位,因此标签不能被弹出,需配置mpls ldp explicit-null,此时分配给特定路由的标签值为0并传递给LDP邻居(如倒数第二跳)。 


附:关于LDP的保留标签请参考:
http://blog.sina.com.cn/s/blog_5ec353710101ecjv.html

(红茶三杯http://weibo.com/vinsoney版权所有,转载请注明出处)


红茶三杯
网络工程 | 项目管理 | IT服务管理 | CCIE培训
学习 沉淀 成长 分享



0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有