千家信息网

MPLS 原理及配置思路

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,摒弃了繁琐的路由查找,改为简单快速的标签交换将具有全局意义的路由表改为只有本地意义的标签表MPLS包头:通常有32bit20bit用作标签3个bit的exp,协议中没有明确,通常用作COS1个bit的
千家信息网最后更新 2025年12月03日MPLS 原理及配置思路

摒弃了繁琐的路由查找,改为简单快速的标签交换

将具有全局意义的路由表改为只有本地意义的标签表


MPLS包头:通常有32bit

20bit用作标签

3个bit的exp,协议中没有明确,通常用作COS

1个bit的S,用于标识是否是栈低,表明MPLS的标签可以嵌套

8个bit的TTL


3bit的exp通常对应于ip协议的tos

S位置一:标识后面接的是IP头部。



标签label:

是一个比较短的,定长的只具有局部意义。

转发等价类FEC:

是在转发过程中以等价的方式处理的一组数据分组。处理动作相同的话就可以理解是相同FEC(一条路由对应一个FEC)

标签交换通道LSP:

一个FEC的数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行。数据流所走的路径就是LSP

MPLS的网络的核心交换机LSR:

提供标签交换和标签分发功能

MPLS的网络的边界交换机LER:

在MPLS的网络边缘,进入到MPLS网络的流量由LER分为不同的FEC,并为这些FEC请求相应的标签。它提供流量分类和标签的映射、标签的移除功能




打标签PUSH、弹出标签POP

MPLS的标签转发,通过事先分配好的标签,为报文建立了一个标签转发通道LSP,在通道经过的每一台设备处,只需要经过一次查找即可

FEC的精妙之处:

不同目的地址(属于相同网段)的IP报文,在ingress处被划分为相同的FEC,具有相同的标签,这样在LSR处,只需根据标签做快速的交换即可。cache功能开启的话,标签对应的是FEC,可能是网段,可以做到很少的条目匹配大量的报文

FEC的致命缺陷:

对于一条FEC来说,沿途所有的设备都必须具有相同的路由(前缀和掩码必须完全相同)才可以建成一条LSP。使用MPLS转发的所有沿途设备上,对于要使用标签转发的路由,不能做聚合操作



靠近二层头的label为栈顶label,靠近ip报文的label为栈低label,lsr执行label交换时总是基于栈顶label。




以太网中:0X8847(单播)和0X8848(组播)来标识承载的是MPLS报文。

PPP中:0X8281来标识承载的是MPLSCP





标签生成器LDP(label distribution protocol)。跟RIP十分相似.BGP和RSVP也可以分发标签

几大要素:

1,报文(消息)

2,邻居的自动发现和维护机制

3,一套算法,用来根据搜集到的信息计算最终结果



LDP消息:

发现消息DISCOVERY:用于通告和维护网络中LSR的存在

会话消息SESSION:用于建立、维护和结束LDP对等体之间的会话连接

通告消息ADVERTISEMENT:用于创建、改变和删除特定FEC-标签绑定

通知消息NOTIFICATION消息:用于提供消息通告和差错通知




邻居发现:互发hello报文(UDP:PORT646/IP:224.0.0.2)

建立TCP连接:由地址大的一方主动发起(TCP:PORT646)(transport address大)

会话初始化:由MASTER发出初始化消息,并携带协商参数

由SLAVE检查参数能否接受,如果能则发送初始化消息,并携带协商参数。并随后发送keepalive消息

master检查参数能否接受,如果能则发送keepalive消息

相互收到keepalive消息,会话建立

期间收到任何差错消息,均关闭会话,断开TCP连接





LDP会话建立的状态迁移图:

NON EXISTENT:会话还没建立状态。相互发送hello消息,在此阶段协商主动方和被动方。收到tcp连接建立成功事件的触发后变为initialized状态

INITIALIZED:会话连接建立成功。主动方发送initialization报文,转向opensent状态,等待被动方的initialization消息

OPENSENT:主动方发送init消息,进入opensent状态

OPENREC :接收到可接受的init消息后进入openrec状态

OPERATIONAL:都接收到keepalive消息后进入operational状态






标记分发方式:

DOD:下游按需标记分发

DU:下游自主标记分发

标记控制方式:

有序方式标记控制

独立方式标记控制

标签保留方式:

保守方式

自由方式


上游和下游:在一条LSP上,沿数据包传送的方向,相邻的LSR分别叫上游LSR和下游LSR。下游是路由的始发者(宣告者)



DU方式:

下游主动向上游发出标记映射消息。标签分配方式中同样存在水平分割。

标签是设备随机自动生成的,16以下为系统保留

DOD方式的使用较少:

上游向下游发标签映射请求消息,下游收到消息后,根据请求的FEC,从标签资源池里面分配标签资源



自由方式:

保留来自邻居的所有发送来的标签

优点:当IP路由收敛、下一跳改变时减少了lsp收敛时间

缺点:需要更多的内存和标签空间


保守方式:

只保留来自下一跳邻居的标签,丢弃所有非下一跳邻居发来的标签

优点:节省内存和标签空间

缺点:当IP路由收敛、下一跳改变时lsp收敛慢

自由方式使用的更多



有序方式:除非LSR是路由的始发节点,否则LSR必须等收到下一跳的标记映射才能向上游发出标记映射


独立方式:LSR可以向上游发出标记映射,而不必等待来自LSR下一跳的标记映射消息

比较流行的是有序方式





DU+自由+有序方式:

1,发现自己有直连接口路由时会发送标签

2,收到下游到某条路由的标签并且该路由生效(也就是说,在本地已经存在该条路由,并且路由的下一跳和标签的下一跳相同)时会发送标签

3,标签表中会存在大量的非选中的标签

只会对运行MPLS的设备的直连路由生成标签,对于其他设备(IP域)始发的路由则不会生成标签。




帧模式:独立控制+自主分发DOD+自由保留


信元模式:有序控制+按需分发DU+保守保留





标签拆除方式:

标签释放:

上游主动发送标签释放消息通知下游释放某一个标签,以后不再使用该标签发送数据,标签释放消息不需要确认消息


标签撤销:

下游向上游发送标签撤退消息通知上游停止使用某个标签时,需要上游路由器发送标签释放消息确认




标签转发表中的IN和OUT,是相对于标签转发而言,不是相对于标签分配的IN和OUT

心法口诀:入标签是我分给别人的,出标签是别人发给我的

我分配的标签是给别人用的,我不会添加到报文中

in标签不可以重复,out标签可以重复


全局标签空间:

所有的入标签一定不同

对于相同的路由(下一跳相同),出标签一定相同

对于不同的路由(下一跳相同),出标签一定不同

对于不同的路由(下一跳也不同),出标签可能相同

对于同一条路由,入标签和出标签可能相同

接口标签空间:



倒数第二跳弹出PHP:

在倒数第一跳为其分配标签时做一下特殊说明即可(分配一个特殊的标签3)

当egress lsr接收到倒数第二跳发来的MPLS标签时,直接进行IP路由转发。倒数第二跳弹出所有标签


显示空0标签:用于QOS

路由器报警1标签:软件转发



路由环路的预防:

LSP的建立是依赖于IP路由的。环路的预防是交给IP来做。

标签只会由下游设备发送给上游设备

路由环路的检测:

每经过一次MPLS转发,TTL减一


在标签转发过程中,MPLS报文头中的TTL减一,IP报文中的TTL就不会减一了。因为在转发过程中,不会涉及到三层解封装了




TDP:TAG DISTRIBUTION PROTOCOL。Cisco专有标准

发现邻居:源目端口号都为UDP:711

建立邻居:目标端口为TCP:711,源端口随机

后面都是TCP。

LDP和TDP一样,知识端口换成646即可



MPLS必须先启用CEF,因为只有在cef的fib表中才能插入标签




用户的边界网关通常标注为CE

SP的边界网关通常标注为PE,内部的路由器标注为P



边界路由器对每一个ICG路由条目都会分配一个标签,但对BGP路由条目不会这样。对BGP条目统一用其更新源的标签



LIB:路由条目和所分配标签的对应表

FLIB:每一个标签和下一跳以及下一个标签的对应表,是标签的转换表 show mpls ip binding

LFIB:标签的转换表 show mpls forwarding-table

路由器会把别人给的标签也放入LIB表









LDP PDU头部:

版本号:16bit,目前版本号始终为1

PDU长度:16bit,值为LDP PDU头部以后的数据部分的长度,不包括LDP PDU头部

LDP ID:48bit,前32bit为LSR-ID,后16bit为标记空间标志,全局空间为0,局部接口空间为1


LDP消息格式:

U:这一位总是为0,代表可识别的消息。为1代表不可识别的消息

类型域:协议根据这个域识别不同的消息

长度域:指示出长度域之后的数据部分的长度

消息ID:用来唯一的标识这个消息。


消息种类:

邻居发现消息:在启用LDP协议的接口上周期性发送该消息

hello消息

会话建立和维护消息:用来建立和维护LDP会话

initialization消息

keepalive消息

标签分发消息:用来请求、通告及撤销标签绑定

address message

address withdraw message

label request message

label mapping message 分发标签

label withdraw message

label release message

label abort request message

错误通知消息:用来提示LDP对等体在会话过程中的重要事件

notification消息


建立邻居:hello时间和保持时间分别是5秒和15秒,hello包不能跨网段

LDP会话:hello和保持时间分别是60秒和180秒

修改发现邻居hello时间:mpls ldp discovery hello interval 3

修改会话hold时间:mpls ldp hold time 150



数据流向下游,向上游分发label







MPLS PING/TRACEROUTE使用IPV4/IPV6的UDP协议来实现。LSP PING/TRACEROUTE的基本思路是使用特定FEC转发类的分组来验证对应该FEC的LSP的完整性

echo request的udp端口为3503





路由条目标签的限制:

可以收到6.6.6.6的标签

access-list 6 permit 6.6.6.6

mpls ldp neighbor 12.12.12.2 labels accept 6


控制具体的路由器发送标签限制:

控制R3只把6.6.6.6标签发给R2

access-list 2 permit 2.2.2.2(此地址必须为对方的RID)

access-list 6 permit 6.6.6.6(此为具体的路由条目)

no mpls ldp advertise-labels

mpls ldp advertise-labels for 6 to 2


LDP的认证:

mpls ldp neighbor 12.12.12.2 password 0 cisco





LDP直连邻居,那么这个会话就叫做LDP sessions

LDP远程邻居,那么这个会话就叫做targeted session,hello包称为LDP Targeted hello

一般在备用链路上配置远程会话,以防止主链路断了导致会话失败


LDP会话保护:两台直连LSR之间的双联路备份

mpls ldp session protection 两边都要做,或者使用下面命令

mpls ldp neighbor 1.1.1.1 targeted ldp 不指定ldp,默认为tdp


也可以通过acl指定邻居和时间:

access 1 per 1.1.1.1

mpls ldp session protection for 1 duration 90s


手工配置远程会话:

1,mpls ldp neighbor 2.2.2.2 targeted ldp



ICG和LDP同步:只有当IGP和LDP都认为某条链路UP后,才可以转发流量。在某些情况下,当LDP邻居还没有建立或者邻居丢失而没有为路由发送标签时,如果这时IGP邻居已经建立并学到路由条目后,就会开始IP交换,那么后来当LDP正常以后,可能会出现丢包的情况

目前只能和OSPF同步,并且只有在接口下配置mpls ip时才可以使用。ospf等待ldp邻居建立的最大时间为holddown


router ospf 12

mpls ldp sync 开启同步


mpls ldp igp sync holddown 1000 设置holddown时间
























标签 消息 路由 方式 邻居 相同 标记 报文 不同 数据 时间 分配 条目 设备 状态 空间 控制 主动 路由器 有序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 写代码与软件开发哪个方面好 用海外云服务器的好处 三八妇女节绘画软件开发 商城数据库如何对接仓库系统 设计数据库用的语言 汽车网络技术的发展趋势结论 签名验签服务器的英语 如何把存储硬盘挂载到服务器 服务器配置与管理 第二版 软件开发部部门年终工作总结 北京诚信网络技术开发哪个正规 中国网络技术有限公司成立 shell如何统一配置数据库 武汉软件开发培训机构哪个好 数据库所有凭证 淄博悦远互联网科技有限公司 淘宝上的数据库是什么 服务器的硬件书籍 上海软件开发者一般多少钱 hypermill数据库怎么用 yapi怎么做数据库校验 杭州电脑软件开发收费报价表 sqlite数据库属性 软件开发部部门年终工作总结 数据库常用的数据类型 软件开发技术发展趋势分析 华三服务器有热备软件吗 网络安全诈骗300字读后感 数据库管理系统基本的加密方式 崇明区网络技术服务市场价
0