深入理解MPLS,和你一起详谈MPLS标签和动作!

写在前面:本人是一名计算机系大二的学生,正在备考HCIE R&S,会不定时的将我的学习笔记分享给大家!如果需要更多的学习资源可以通过我的GitHub自行下载!

MPLS

  • 使用标签的进行数据转发

  • ATM技术是虽然没有成功,但还是

  • label大师,吸取了ATM的精华,定义在2.5层

rourou

  • multi-protocol label switching,多协议标签交换

  • 一种根据标签转发的技术

  • 可以承载在各种链路层协议上,如ppp、ATM、帧中继、以太网

  • 可以承载各种网络层报文,如ipv4、ipv6

  • 采用无连接的控制平面,实现路由信息的传递和标签的分发(类似于tcp、udp)

  • 采用面向连接的数据平面。实现报文在建立标签转发路径上传送(有lsp)

应用场景

  • vpn(virtual private network,虚拟专用网)
  • TE(traffic engineering,流量工程)
  • QOS(quality of service ,服务质量)

MPLS VPN应用

  • 基于mpls vpn,将不同私有网络的不同分支联结起来,形成一个统一的网络。网络时延降到最低。

MPLS TE应用

  • 动态控制网络的流量和网络单元的负载,实时调整管理参数,路由参数和资源约束。优化网络,避免不均的拥塞。

网络及体系架构

属于备注
LERlabel edge router,标签边缘路由器,入门弟子。负责标签的压入和弹出
LSRlabel switch router,标签转发路由器,入室弟子,负责标签的交换
LSPlabel switch path,标签交换路径,到达同一目的地的地址在mpls网络中经过的路径,lsp是一个单向路径,与数据流方向一致
FECforwarding equivalentclass,转发等价类,具有相同特征的报文,在转发过程中被lsp以相同的方式处理。fec划分灵活,可以是sip\dip\smac\dmac\protocol-type\vpn等划分的任意组合

入接点、中间节点和出节点

  • lsp是一个单向节点路径,lsp中的lsr可以分为
术语备注
入节点,ingresslsp的起始节点,一条lsp只能有一个ingress,压入一个新的标签,封装成mpls报文进行转发
中间节点,transitlsp的中间节点,一条lsp可能有多个transit,,查找标签转发信息表,通过标签交换完成mpls转发
出节点,egresslsp的为节点,一条只能有一个。弹出标签,恢复原来的io报文进行相应的转发

体系架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJcAYZJU-1594134182474)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200706145622026.png)]

控制平面

  • 产生和维护路由信息以及标签信息
  • 路由信息表(RIB):有ip路由协议生成,用于选择路由
  • 标签分发协议(LDP):负责标签的分配、转发信息表的建立、标签交换路径的建立、拆除
  • 标签信息表(LIB):由标签分发协议生成,用于管理标签信息。

数据平面

  • 转发信息表FIB:从RIB提取必要的路由信息生成,负责普通IP报文的转发。
  • 标签转发信息表LFIB):简称标签转发表,由标签分发协议建立LFIB,负责带MPLS标签报文的转发。

转发过程

  • 当收到普通IP报文时,查找FIB表,
    • 如果Tunnel ID为0x0,则进行普通IP转发;
    • 如果查找FIB表,Tunnel ID为非0x0,则进行MPLS转发。
  • 当收到带标签的报文时,查找LFIB表,
    • 如果对应的出标签是普通标签,则进行MPLS转发;
    • 查找LFIB表,如果对应的出标签是特殊标签,如标签3,则将报文的标签去掉,进行IP转发。

MPLS报文结构

  • routed:被路由,ip、http包

  • routing:路由,ospf(ip=89)、bgp(tcp 179)

  • 相辅相成

rourou

字段

字段备注
label20bit,用于报文转发
exp(experimental use)3bit,用于承载ip报文中的优先级(qos)
s (bottom of stack)1bit,栈底,表明是否多个,(标签可以多层嵌套)
TTL8bit,类似于ip头部的ttl,用于防止环路
  • 标签(label):较短,定长,只偶遇本地有意义,用于标识去往同一目的地址的报文

    标签空间备注
    0-15特殊保留标签,如3(隐式空标签,用于PHP)
    16-102静态lsp和静态CR-LSP共享标签空间
    1024以上LDP、REVP-TE\MP-BGP等动态协议的标签空间

标签多嵌套:对于一个lsr来说,只处理第一个(最顶层)便签

标签转发行为

  • push、SWAP、POP

lsp的建立

  • mpls需要为报文实现分配好标签,建立一条lsp,才能进行报文转发

  • lsp仅本地有效,lsp和数据流方向一致,lsp和便签分配方向相反

方式备注
静态同归手动方式为各个FEC分配标签建立转发隧道
动态通过标签发布协议动态建立转发隧道

静态LSP

  • 适用于结构简单稳定的小心网络

  • 上游节点出标签=下游节点入标签

动态LSP

  • 标签由下游lsp分配,按下游到上游的方向分发

转发过程

  • tunnel id:为了给使用隧道的上层应用(如vpn、路由管理)提供统一的接口、系统自动为隧道分配了一个id,也成为tunnel id,长度2 bit,只是本地有效。

  • LNHFEnext hop label forwarding entry,下一跳标签转发项

    • 用于指导mpls报文的转发
    • 包括:tunnel id、出接口、下一跳、出标签、标签操作类型等信息
    • fec到一组NHLFE的映射成为FTN(FEC-TO-NHKFE)
    • FIB表中tunnel id值不为0x0的表项,能够获取FIN的详细信息
    • FIN只在lngreess存在
  • ILMincoming label map,入标签映射

    • 入标签到一组下一跳标签转发表项的映射
    • 包括:tunnel id、入标签、出标签、标签操作类型等信息
    • ILM在transit节点的作用是将标签和NHLFE绑定
    • 通过标签索引ILM表,就相当于使用目的的io地址查询FIB,能够得到所有的标签转发信息

环路检测机制

机制备注
igp环路检测机制rip、odpf各自的防环机制
TTL环路检测机制帧模式的mpls中使用TTL,信元模式的mpls中无TTL,使用ldp环路检测机制
ldp环路检测机制距离向量法,最大跳数法

mpls对TTL的处理模式

术语备注
uniformmpls TTL 和ip TTL相互同步,中间节点只处理mpls tll
pipempls TTL设置为固定值,ip TTL只在入节点和出节点分别减1
  • pipe可以隐藏mpls ip ttl的内部细节

TTL环路检测

  • 递减

LDP环路检测

机制备注
距离向量法lsr发送标签请求时添加自己的lsr id,如果收到的lsr发现了袭击的lsr id,丢弃
最大跳数法lsr发送标签请求时,更新hop count,如果到达预设的最大值,丢弃

静态LSP配置

  • vrp没有缺省的lsr id,必须手工配置,保证唯一。推荐使用loopback接口ip,如果要修改lsr id ,必须执行 undo mpls(会导致mpls业务中断)

配置命令

命令备注
mpls lsr-id x.x.x.x配置lsr id
mpls开启mpls,全局和接口
static -lsp ingress lsp1 \ destination x.x.x.x xx \ nethop x.x.x.x out-label xxx \ static transit lsp1配置节点静态lsp
static -lsp transit lsp1 \ incoming-interface xxx int-label xx \ nexhop x.x.x.x out-label xxx配置中间节点静态lsp
static-lsp egress lsp1 \ incoming-interface g0/0/0 \ in-label xxx配置出节点静态lsp
dis mpls static-lsp验证今天lsp
ping lsp ip x.x.x.x xx测试静态lsp

静态lsp实验

  • 开启出接口需要开启代理arp
  • 抓包看包头

LDP

  • 标签的产生

  • label distribution protocol,标签分发协议,RFC5036

  • 在LSR之间建立LDP session(LDP会话)

  • 建立了LDP session的两台设备称为LDP PEERS(ldp邻居\对等体)

消息类型

  • 封装在UDP或TCP之上,端口号=646
类型备注协议
discovery发现,发现、维护邻居(hello)UDP
session会话,会话的建立、维护、终止(lnitialization、keepalive)TCP
advertisement宣告,创建、改变、删除fec的标签映射(address、label mapping)TCP
notification通知,告警和错误消息、。TCP

LDP发现机制

机制备注
LDP基本发现机制发现直连邻居,使用组播,周期性的发送ldp link hello,建立本地ldp会话
LDP扩展发现机制发现非直连邻居,使用单播,周期性的发送ldp target hello,建立远端ldp会话

LDP邻居发现过程

  • hello消息中,携带有transport address(传输地址)字段,该字段默认与设备配置的lsr id 一致,表明与对端建立邻居关系所使用的ip地址(保证路由可达)

rourou

rourou

便签发布和管理

术语备注
标签发布方式DU\DOC
标签分配控制方式odered、independent
标签保持方式liberal、conservative

上游和下游

  • 针对转发方向而言

标签发布方式

  • label advertisement mode
类型备注
DUdownstream unsolicited,下游自主。
DODdistribution on demand,下游按需
PS华为思科默认是采用DU,因为topo变化时,可以快速反应为新的topo分发标签

标签分配控制方式

  • label distribution control mode,为路由前缀邓培标签的前提条件。标签设备自动随机生成
类型备注
independent独立,lsr可以主动分配,无需等下游标签
ordered有序,lsp只有收到下游的标签后才能分配标签
ps华为默认使用ordered,cisco默认 independent

标签保持模式

  • label retention mode如何保留从邻居收到的标签

  • liberal:自由

    • 保留邻居所有的标签,无论自己还是下一跳
  • conservative:保守

    • 只保留来自下一跳邻居的标签
  • PS:华为和cisco摩尔恩都采用liberal

组合

  • DU+ORD+LIB,缺省方式
  • DOD+ORD+CON
  • DU+IND+LIB
  • DOD+IND+CON

PHP

  • 倒数第二跳弹出,penultimate hop popping

  • 在最后一条节点,标签没有使用价值,这种情况下,在倒数第二条节点处标记弹出,减少诸侯一跳的负担

特殊保留标签

标签备注
标签3隐式空标签,implicit-null,通知倒数第二跳路由移除顶层标签(注意:标签3永远不会出现在mpls报文的标签栈中)
标签0显式空标签,explicit-null,通知路由器直接弹出标签
os在实施qos是,最后一跳必须携带exp位,因此标签不能被弹出,需要配置显式空标签,此时分配给特定路由器的标签值为0并传递给ldp邻居

LDP命令

LDP配置(华为)

命令备注
mpls lsr-id xxxx配置lsr id
mpls开启mpls,全局和接口
mpls ldp开启ldp,全局和接口
mpls ldp remote-peer创建亚UNDAU你邻居
remote-ip xxxx配置远端邻居ip
mpls ldp transport-address interface \ 接口配置传输地址
label advertise explicit-null、implicit-null、non-null配置PHP,默认支持PHP
mpls ldp advertisement dod、du配置标签发布模式,默认为DU
undo ttl propagate配置mpls ttl的处理模式为pipe模式
lsp-trigger all、host、ip-prefix名称配置LSP触发策略,默认host即 32位主机路由
reset mpls ldp重启LDP
dis mpls ldp \ dis mpls ldp peer \ dis mpls ldp remote-peer \ dis mpls ldp interface \ dis mpls ldp sesion检查命令

问题

问题一

mpls环境下的bgp路由

  • mpls默认不会为bgp路由分配标签,但是会为bgp路由的下一跳分配标签
  • bgp中的路由条目是相当多的,因此通过mpls,可大大简化路由器的性能损耗,bgp的transit AS 的路由黑洞也得到了很好的解决。

问题二:路由汇总对mpls的影响

  • 路由汇总将原先的LSP分割成两段
  • 看似没有问题,但是在LSP环境下就有问题,入 mpls vpn ,TE

问题三:LDP与IGP同步

  • igp和ldp都认可某条链路为待转发报文的出站链路
  • 由于LDP的收敛依赖于IGP的收敛,即LDP的收敛速度比IGP的收敛速度慢,存在主备链路汇总的问题
    • 主链路故障,lsp流量丢失
    • igp正常运行,但主节点ldp会话发生故障,lsp流量丢失

解决方法

开启LDP和IGP同步

  • 原理:预支igp发布正常路由,保证ldp和igp同步完成收敛
  • 定义了3个定时器,5个状态

命令(华为)

命令备注
ospf/isis ldp-sync接口模式下开启
ospf timer ldp-sync hold-down value配置同步保持时间

命令(cisco)

命令配置
mpls ldp sync路由协议模式下开启
no mpls ldp igp synv接口模式下单独关闭
mpls ldp igp sync holddown msecs配置同步保持时间

口模式下开启 |
| ospf timer ldp-sync hold-down value | 配置同步保持时间 |

命令(cisco)

命令配置
mpls ldp sync路由协议模式下开启
no mpls ldp igp synv接口模式下单独关闭
mpls ldp igp sync holddown msecs配置同步保持时间

本文均属肉肉原创,本文章属于本人花费大量时间整理出来,如有不详或错误,欢迎指出!读到这里了,不妨给肉肉点个赞

往期精彩:


本文作者肉肉
版权声明:博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

  • 31
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是肉肉肉肉呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值