MPLS原理及配置思路

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

创新互联建站是一家专注于成都网站设计、成都网站建设、外贸网站建设与策划设计,博山网站建设哪家好?创新互联建站做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:博山等地区。博山做网站价格咨询:18980820575

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

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时间


标题名称:MPLS原理及配置思路
文章起源:http://scjbc.cn/article/iiogoh.html

其他资讯