LDP 标签分配协议

标签发布方式(Label Advertisement Mode)

下游自主方式DU(Downstream Unsolicited):对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发。

下游按需方式DoD(Downstream on Demand):对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。

标签分配控制方式(Label Distribution Control Mode)

独立标签分配控制方式(Independent):本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标
签。

有序标签分配控制方式(Ordered):对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者
该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。

标签保持方式(Label Retention Mode)

自由标签保持方式(Liberal):对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。

保守标签保持方式(Conservative):对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。

华为

默认为/32的IGP路由分标签,采用下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal)。

思科

默认为非BGP路由分配标签,采用下游自主方式(DU) + 独立标签分配控制方式(Independent) + 自由标签保持方式(Liberal)。

LDP会话的建立过程

Hello消息中携带传输地址,双方使用传输地址建立LDP会话,传输地址较大的一方为主动发,主动发送TCP连接。

LDP会话存在两种关系,邻接和邻居关系。

  • LDP对等体之间,通过周期性发送Hello消息表明自己希望继续维持这种邻接关系。如果Hello保持定时器超时仍没有收到新的Hello消息,则删除Hello邻接关系。邻接关系被删除后,本端LSR将发送Notification消息,结束该LDP会话。
  • LDP对等体之间通过LDP会话连接上传送的Keepalive消息来维持LDP会话。如果会话保持定时器(Keepalive保持定时器)超时仍没有收到任何Keepalive消息,则关闭TCP连接,本端LSR将发送Notification消息,结束LDP会话。

Hello报文是UDP报文,src为接口地址,dst为224.0.0.2,TTL=1. Hello 数据包中总是携带transport address.

Keepalive报文基于TCP,src为本端transport地址,dst为对端宣告的transport地址,TTL =255

RP/0/0/CPU0:R2#show mpls ldp parameters            
Mon Dec 20 03:38:08.447 UTC

LDP Parameters:
  Role: Active
  Protocol Version: 1
  Router ID: 10.1.2.2
  Null Label:
    IPv4: Implicit
  Session:
    Hold time: 180 sec
    Keepalive interval: 60 sec
    Backoff: Initial:15 sec, Maximum:120 sec
    Global MD5 password: Disabled
  Discovery:
    Link Hellos:     Holdtime:15 sec, Interval:5 sec
    Targeted Hellos: Holdtime:90 sec, Interval:10 sec
    Quick-start: Enabled (by default)
    Transport address:
      IPv4: 10.1.2.2
  Graceful Restart:
    Disabled
  NSR: Disabled, Not Sync-ed
  Timeouts:
    Housekeeping periodic timer: 10 sec
    Local binding: 300 sec
    Forwarding state in LSD: 15 sec
  Delay in AF Binding Withdrawl from peer: 180 sec
  Max:
    1500 interfaces (1200 attached, 300 TE tunnel), 2000 peers
  OOR state
    Memory: Normal

如上所示,hello的interval是5s,holdtime是15s;keeplive的默认interval是60s,holdtime是180s。

Note:

1.如果直连link存在acl, block了udp的hello包,将会trigger邻接关系15s内down进而邻居关系也会被shutdown:

RP/0/0/CPU0:Dec 20 03:04:00.467 : mpls_ldp[1181]: %ROUTING-LDP-5-HELLO_ADJ_CHANGE : VRF 'default' (0x60000000), Link hello adjacency (10.1.23.3, GigabitEthernet0/0/0/1) with Nbr 10.1.3.3:0 is DOWN (Discovery Hello Hold Timer expired) 
RP/0/0/CPU0:Dec 20 03:04:00.477 : mpls_ldp[1181]: %ROUTING-LDP-5-NBR_CHANGE : VRF 'default' (0x60000000), Neighbor 10.1.3.3:0 is DOWN (Discovery Hello Hold Timer expired)

2. 可以通过直连link建立邻接关系,非直连绕路建立邻居关系;因为是存在这种现象,建立邻居关系的transport的路由不是通过直连学到的。

3. 关于IGP ldp sync, 除了通过检查配置和ldp邻居关系, 还可以通过以下命令检查ldp sync 的状态.

mpls_ldp_sync.im_attr_ldp_sync_info_notify_handle,非0 代表配置igp ldp sync.

mpls_ldp_sync.ldp_sync_info,TRUE 代表LDP邻居关系正常建立了

RP/0/0/CPU0:BR01#show isis private all | include "Interface|mpls_ldp_sync"
Tue Dec 14 13:22:29.276 UTC
+++++++++++++++++++++++ IS-IS 1 Interface Private Data ++++++++++++++++++++++++
Interface GigabitEthernet0/0/0/0
mpls_ldp_sync.im_attr_ldp_sync_info_notify_handle : 303302848    
mpls_ldp_sync.ldp_sync_info : TRUE
mpls_ldp_sync.is_ldp_sync_info_ok : 1
Interface GigabitEthernet0/0/0/2
mpls_ldp_sync.im_attr_ldp_sync_info_notify_handle : 0
mpls_ldp_sync.ldp_sync_info : FALSE
mpls_ldp_sync.is_ldp_sync_info_ok : 1
Interface Loopback0
mpls_ldp_sync.im_attr_ldp_sync_info_notify_handle : 0
mpls_ldp_sync.ldp_sync_info : FALSE
mpls_ldp_sync.is_ldp_sync_info_ok : 0
           

No comments

Comments feed for this article

Reply

Your email address will not be published. Required fields are marked *