返回顶部
扩大
缩小
Fork me on CSDN
大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。

欢迎来到肉肉的博客

深入理解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应用

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

网络及体系架构

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

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

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

字段

字段 备注
label 20bit,用于报文转发
exp(experimental use) 3bit,用于承载ip报文中的优先级(qos)
s (bottom of stack) 1bit,栈底,表明是否多个,(标签可以多层嵌套)
TTL 8bit,类似于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的处理模式

术语 备注
uniform mpls TTL 和ip TTL相互同步,中间节点只处理mpls tll
pipe mpls 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
类型 备注
DU downstream unsolicited,下游自主。
DOD distribution 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 许可协议。转载请注明出处!

posted @ 2020-07-07 23:17  吃一口肉肉  阅读(7777)  评论(0编辑  收藏  举报