LDP与IGP同步解决的是在主备链路切换时数据丢失的问题。

如图:

全网运行OSPF、MPLS、LDP。每个设备上均有一个环回接口,比如AR1有一个1.1.1.1环回接口地址,AR7有一个7.7.7.7的环回接口地址。

正常情况下,AR2上去往AR7环回接口的数据流量会打上AR5分配的标签,因为AR5是路由的下一跳设备。在AR2查看IP路由表:

查看标签:

可以看到标签的下一跳均为AR5,FIB表的出接口也将是G0/0/2口:

为什么需要IGP与LDP同步?

当AR2与AR5之间的链路发生故障之后,带标签的数据流量将会迅速切换到AR3进行转发,但如果当AR2与AR5之间的链路恢复之后,如果LDP的恢复速度慢于IGP,AR2路由器会优选AR5传来的标签进行转发,但是AR5和AR2之间的LDP并未恢复,所以数据在传到AR2之后会弹出标签转发,数据到达AR5之后不再进行标签转发。

在该实验环境中并未有直观上的体验,但如果是在MPLS-VPN的环境中,由于是多层标签嵌套,假设到达AR2路由器的数据带有两层标签,在弹出外层标签后转发给AR5,但是AR5检查发现内层标签并非自己分配的,所以就会导致数据包丢失。

如何解决该问题?

解决该问题的方法就是将IGP与LDP同步。也就是说,先让LDP收敛完成之后再让IGP收敛,为LDP收敛留出充分的时间,比如先让IGP等待10s中之后再收敛。

如何实现?

  • 当配置同步之后,他们需要等待一个时间,这个时间内不建议IGP邻居关系建立,只建立LDP邻居关系。
  • 如果等待时间超时之后LDP仍未建立邻居关系,他就会将IGP学习到的路由改为最大开销值65535,强制数据包走备份链路。该开销持续时间也可以更改。

在接口下配置以下命令就可以打开同步功能:

AR2:

[AR2]interface  GigabitEthernet 0/0/2
[AR2-GigabitEthernet0/0/2]ospf ldp-sync 
[AR2-GigabitEthernet0/0/2]ospf timer ldp-sync hold-down 15       //配置等待时间,默认10s
[AR2-GigabitEthernet0/0/2]ospf timer ldp-sync hold-max-cost 15   //修改cost等待时间,默认10s

AR5:

[AR5]interface  GigabitEthernet 0/0/0
[AR5-GigabitEthernet0/0/2]ospf ldp-sync 
[AR5-GigabitEthernet0/0/2]ospf timer ldp-sync hold-down 15       //配置等待时间,默认10s
[AR5-GigabitEthernet0/0/2]ospf timer ldp-sync hold-max-cost 15   //修改cost等待时间,默认10s

 

朱古力

By 朱古力

一条咸鱼

发表评论

电子邮件地址不会被公开。 必填项已用*标注