LDP协议的工作原理
前文中已经提到过,MPLS的第二步就是要使用LDP 标签分发协议,来为我们所有的LSR进行标签分发,实现最终标签转发。
LDP其实也是基于邻居的概念的,先要和对端设备建立邻居关系,然后再给对方发送自己的以及接收对端的label,
那么Neighbor的建立过程是怎么样的呢?
1 两个过程:
邻居发现过程,会话建立过程
1)LDP 的邻居发现
![](https://i-blog.csdnimg.cn/blog_migrate/90a0ba625fededf271e6028187719cf8.png)
1 LSR之间相互发送UDP协议的HELLO包,
由本端设备物理接口地址发送到224.0.0.2:646端口 224.0.0.2为组播地址
2 双方发完以后,由地址大的一方进行TCP三次所握手的发起端
注意,此时所使用的是本地的tranport address (传输地址,通常我们会指定为Loop接口,这一点和些类似于BGP)
另外发送端会使用随机的TCP端口,与对端 的TCP 646接口 发送SYN
3 对端收到以后,会以646回复之前的那个随机端口 SYN+ACK
4 最终由发起者再回复ACK,以完成TCP的三次握手。
当然,LDP也有非直连的邻居,那将不会使用组播更新了。这个在后面会有补充
2)会话建立过程
![](https://i-blog.csdnimg.cn/blog_migrate/d603b6a2c5e31e6fdfd9fb200e3a27f8.png)
进行完三次握手之后,要开始发送初始化消息,用于协商两侧的相关参数,如果参数都可以匹配成功,那么给对方回复一个keepalive消息,用于确认,
都匹配成功之后,两侧的LDP邻居建立完成,再往后,就可以互相交换标签了。
附带两张wireshark 的切图
------------------------------------------------------------------
CCIE成长之路 --- 梅利