mLDP基本原理和应用

mLDP

IPTV、多媒体会议及实时网络游戏对战等组播需求。采用现有的点到点MPLS技术承载这些业务需要在数据发送方针对每个接收者都发送一份数据报文,这会极大的浪费网络带宽。

相关概念

应用场景如下:
(http://127.0.0.1/mLDP_topo.png)

名称说明对象
根节点Root节点,mLDP P2MP LSP的入口所在节点,为LSP路径计算及路径建立的发起者,组播报文将在此处被压入MPLS标签PE
中间节点Transit节点,mLDP P2MP LSP信令处理及报文转发的中继节点,MPLS报文在此处会进行标签的交换,同时此类节点有可能成为分叉节点P1、P3
叶子节点Leaf节点,mLDP P2MP LSP的目的节点PE3、PE4、PE5
Bud节点连接了客户侧设备,即是一条Sub-LSP的出节点也同时其他Sub-LSP的中间节点PE2
分支节点Branch节点,属于中间节点的一种,MPLS报文在此处将先进行复制,然后进行标签的交换操作P4

mLDP P2MP通过建立一条由一个入口节点(图1中的PE1)到多个目的节点(PE3、PE4、PE5)的“树形”隧道,并将组播流量在入口节点引入到隧道中进行转发。实际转发时,只在入口节点上发送一份报文,在分支节点(P4)上进行报文的复制,从而保证不会重复占用带宽。

mLDP P2MP能力协商

当用户使能了mLDP P2MP能力后,节点之间会互相发送一系列信令消息建立mLDP会话,只有会话两端的初始化消息中都带有P2MP能力的TLV,会话才能协商成功。协商成功后mLDP会话即建立完成。具体的会话建立过程与LDP协议的会话建立过程一样,差别只在于P2MP的能力协商。
(http://127.0.0.1/mLDP_session.png)

Initialization消息中扩展P2MP能力的TLV:
(http://127.0.0.1/mLDP_p2mp_capability.png)

角色确定
  • 叶子节点:用户配置指定,需要指定对应的根节点地址和Opaque Value;
  • 中间节点:接收到P2MP标签映射消息,且LSR ID不等于根节点的任意节点;
  • 根节点:节点的主机地址和LDP P2MP FEC中根节点地址相同的节点;
mLDP P2MP LSP建立

mLDP会首先进行mLDP P2MP能力协商。LDP会话协商成功后,叶子节点和中间节点往上游发送标签,直到根节点收到,即完成了根节点到叶子节点的mLDP P2MP LSP建立。
P2MP扩展了标签映射消息(Label mapping message)中的FEC TLV,用于建立mLDP P2MP LSP。扩展的FEC TLV称为P2MP FEC element。
(http://127.0.0.1/mLDP_p2mp_fec.png)

参数描述
Tree TypemLDP要建立的树形LSP的类型:P2MP、MP2MP(Up)MP2MP(Down)
Address Family根节点所属的地址簇
Address Length根节点地址长度
Root Node Address根节点地址,手工配置
Opaque LengthOpaque Value的长度
Opaque ValueOpaque Value用来在根节点区分不同的P2MP LSP,并携带一些关于P2MP的Ingress节点和叶子节点的信息

mLDP P2MP LSP采用下游分配标签方式,叶子节点和中间节点需要向各自的上游节点发送Label Mapping消息,选择到根节点的优选路由下一跳作为自己的上游节点;

  • 叶子节点会直接向上游发送Label mapping消息,并生成相应转发表项;
  • 中间节点接收到来自下游的Label mapping消息后,会查询是否给上游发送过标签映射消息。如果没有给上游发送过标签,则查询路由表,确定上游。如果上游和下游节点地址不重合,则发送Label mapping,如果重合,则不发送。如果已经发送过,则不需再次发送。最后生成对应的转发表项;
  • 根节点收到下游发送的Label mapping消息后,会生成相应的转发表项。至此,一条P2MP LSP建立。
    (http://127.0.0.1/mLDP_p2mp_lsp.png)
mLDP P2MP LSP删除
  • 叶子节点:向上游节点发送Label withdraw消息,上游节点会相应的回复Label release消息,拆除该叶子节点分支。如果此上游节点没有其它下游节点,则会继续向上游发送Label withdraw;如果此上游节点有其它下游节点,则不再向上游发送Label withdraw消息;
  • 中间节点:当中间节点故障或他的上游会话故障或者用户手动删除此节点时,中间节点的上游邻居会删除此中间节点的分支LSP。如果此上游节点没有其它下游节点,则会继续向上游发送Label withdraw消息;如果此上游节点还有其它下游节点,则不再向上游发送Label withdraw消息;
  • 根节点如果在根节点故障或者用户在其上执行了删除操作,将直接删除整条LSP。
mLDP P2MP更新
  • 叶子节点动态加入:当一条P2MP LSP建立之后,新增叶子节点的处理为:新增叶子节点和上游协商P2MP会话,会话建立后,新增叶子节点给上游发送标签,上游则直接添加该叶子节点分支,同时更新转发表项。

  • 上游节点变更:如果一个节点Leaf2的上游节点从P4变为P2,为了避免产生LSP环路,Leaf2会先向P4发送Label withdraw消息撤销之前发送的标签,P4会删除Leaf2对应的下游分支及相应的转发表项;然后Leaf2会向P2发送Label mapping消息分配新的标签,P2上会创建到Leaf2的下游分支,生成转发表项。
    (http://127.0.0.1/mLDP_p2mp_lsp_update.png)

  • Make-before-break:一个LSR(非根节点)到根节点的最优路径因为链路恢复或者链路cost值改变(即该LSR到Root之间的老路径还是连通的)等原因发生变化时,这个LSR会选择新的上游,P2MP LSP也会随之更新。在更新过程中,流量会出现丢包。mLDP采用MBB(make-before-break)技术减少更新过程中的丢包。其处理过程如下:当节点给上游发送Mapping消息时,当且仅当收到上游回复的上游分支已完全建立的MBB Notification消息后,才认为新分支LSP建立成功,并开始删除老的分支。

公网隧道

mLDP P2MP LSP支持作为NG MVPN和组播VPLS的公网隧道。这两种场景中,mLDP P2MP LSP由NGMVPN或者组播VPLS的信令触发建立,不需要用户进行叶子节点的手工配置触发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值