MPLS:多协议标签交换
最初的目的是为了解决TCP/IP路由器转发路由表过慢的问题。
LDP的状态机制:
1:initialized
2:open-received
3:open-sent
4:operational
5:non-existent
初始状态为initalized,若被动方收到可接受的init消息,发送init及keeplive消息,转为opne-recevied状态;若主动方发送init消息,则转为opne-sent状态。;若收到init消息之外的其他LDP消息或者超时则转为non-existent状态。
处于open-received状态时,若收到任何keeplive之外的消息或超时发送NAK消息转为non-existent状态;若收到keeplive消息,则转为operational状态。
处于open-sent状态时,若收到init之外的消息或超时发送NAK消息则转为non-existent状态;若收到可接受的init消息,发送init消息及keeplive消息,则转为open-received状态。
处于operational状态时,若收到shutdown消息或超时发送shutdown消息则转为non-existent状态;若收到其他LDP消息,则状态不变。
处于non-existent状态时,若LDP会话的连接成功建立,则转为initalized状态。
LDP发送hello包使用UDP 646,发送update使用TCP 646,使用组播地址224.0.0.2,router-id与OSPF一样,router-id之间必须要有路由。
标签分发
上游对下游分发标记,及控制层面中的路由通告的方向。LDP分配标签时参考cef表,cef表中所有的路由都分配一个标签,形成一个binding表。
binding表中有路由前缀以及本地分配的标签(local binding),还会把从邻居收到的关于该路由的标签也放置进去(remote binding,其中包含邻居的id及邻居分配给该路由的标签)。
这里的路由前缀一定是严格匹配一致性的。10.1.1.0/24与10.1.1.1完全不一样。
MPLS中路由在传递过程中不能汇总,不能改变其位数(掩码)。如果底层是OSPF,那么OSPF的回环地址最好写成32位的主机地址。
最佳标签:
产生过程:
负载均衡的最佳标签
如果出现负载均衡,会产生两个最佳标签,但实际上只会走其中一条。原因是底层存在一种流的算法,算法根据目的地址匹配出一条路径,每一个流只会走其中一条路径,该算法会尽可能将所有的流均衡到两条负载均衡的路上,若其中一条路断开,cef不会自动切换路径,该路径上所有的流将不能传输。