????????MPLS是一种根据报文中携带的标签来转发数据的技术,两台LSR必须在它们之间转的数据 的标签使用上“达成共识”。LSR之间可以运行LDP来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。
??????? LSR:Label Switching Router,标签交换路由器,由LSR?构成的网络区域称为 MPLS域(MPLS Domain),在 IP 网络内进行传统的 IP 转发,在 MPLS 域内进行标签转发。
????????LER:Label EdgeRouter位于 MPLS 域边缘、连接其它网络的 LSR 称为边缘路由器 ;
????????Core LSR:区域内部的 LSR 称为核心 LSR。
? ? ? ? LDP:Label Distribution Protocol,标签分发协议是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息及相关处理过程。
????????LDP的工作 过程主要分为两部分:
? ? ? ? 1、LSR之间建立LDP会话
? ? ? ? 2、LSR之间基于LDP会话动态交换标签与FEC映射信息,并根据标签信息建立 LSP
????????PHP: Penultimate Hop Popping,倒数第二跳弹出
Discovery Message????????Hello? ? ? ? ? ? ?UDP????????LDP发现机制中宣告本LSR并发现邻居
Session Message????????Initialization? ? ? TCP????????在LDP Session建立过程中协商参数?? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Keepalive? ? ? ? ? TCP????????监控LDP Session的TCP连接的完整性
Advertisement Message?? ?Address? ? ?TCP????????宣告接口地址
? ? ? ? ? ? ? ? ? ? ? ? ? Address Withdraw? ? ? ? TCP?? ?? ? 撤销接口地址
?????????????????? ??? ??? ?Label Mapping? ? ? ? ? ? TCP?? ? ? ?宣告FEC、Label映射信息
?????????????????? ??? ??? ?Label Request? ? ? ? ? ? ?TCP?? ??? 请求FEC的标签映射
?????????????????? ??? ??? ?Label Abort Request? ? TCP?? ? ? 终止未完成的Label Request Message
?????????????????? ??? ??? ?Label Withdraw? ? ? ? ? ? TCP??? ? ?撤销FEC/Label映射
?????????????????? ??? ??? ?Label Release? ? ? ? ? ? ? TCP????? ?释放标签
Notication Message?? ??? ?Notification? ? ? TCP??????通知LDP Peer错误信息
? ? ? ? 在MPLS网络中,下游LSR决定标签和FEC的绑定关系,并将这种绑定关系发布给上游LSR
????????标签发布方式Label Advertisement Mode:
????????DU模式Downloadstream Unsolicited:下游自主方式
?????????? ?对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发
?????????? ?LSR会主动将自己为FEC捆绑的标签通告给上游邻居,无需邻居先发起请求再通行
????????DoD模式Downstream on Demand:下游按需方式
?????????? ?对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发
?????????? ?一般情况下,对特定FEC的访问需求会触发标签请求消息
????????标签分配控制方式Label Distribution Control Mode:
?????????? ?Independent独立方式:本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签
?????????? ?Ordered有序方式:对于LSR上某个FEC的标签映射 ,只有当该LSR已经已经具有此FEC下一跳的标签映射 消息、或者该LSR就是此FEC的出节点时,该LSR才向上游发送此标签的映射?
????????? ? 配置命令:label distribution control-mode {independent | ordered}
????????标签保持方式Label Retention Mode:
?????????? ?Liberal自由模式:LSR收到的标签映射 可能 来自下一跳,也可能来自非下一跳;对于从邻居LSR收到的标签映射 ,无论邻居LSR是不是自己的下一跳都保留
?????????? ?Conservative保守模式:对于从邻居LSR收到的标签映射 ,只有当邻居LSR是自己的下一跳时才保留
Push:当IP报文进入MPLS域时,LER在报文二层头部和IP头部之间插入一个新标签;或者中间设备根据需要,要标签栈顶增加一个新标签(标签嵌套封装)
Swap:当报文在MPLS域内转发时,根据LFIB表,用下一跳分配的标签,替换MPLS的栈顶标签
Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉
? ? ? ? 0-15:特殊标签
?????????值为0:IPV4 Explicit NULL Label 显式空标签,给QOS用的,LER需要看的空标签,表示里面还有EXP位要看
????????值为1:Router Alert Label
????????值为2:IPV6显式空标签
????????值为3:隐式空标签,LER不需要看的空标签,次末跳,倒数第二跳,PHP(pemultimate hop popping)次末跳弹 出,置换给它一个3标签,让出站的LER直接剥离MPLS头部,即不再查LFIB(Label Forwarding Imformation Base)表,直接剥离LSP,直接进入IP转发或者下一层标签转发(减少最后一跳的负担,减少查表次数)
????????4~13、15:保留
????????14:OAM Router Alert Label,Operation Administration &Maintenance,通过发送OAM报文检测和通告LSP故障,使用MPLS承载,对于Transit LSR和Penultimate LSR是透明的
16-1023:静态LSP和静态CR-LSP(Constraint-Based Routed Label Switched Path)共享的标签空间
????????1024及以上:动态信令协议的标签空间
#
mpls lsr-id 2.2.2.2
mpls
lsp-trigger all
#
int G0/0/0
mpls
mpls ldp
#
dis mpls lsp
dis mpls ldp peer
dis mpls ldp session
ping测试中抓包,可以看到mpls是在2层和3层之间的协议: