MPLS 基础

MPLS

多协议标签交换MPLS(Multiprotocol Label Switching)是一种IP(Internet Protocol)骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简捷性

网络结构

路由器角色: LSR 标签交换路由协议,LER 边缘路由器
上下游
LSP

体系结构

控制层面:产生和维护路由以及标签信息

  • RIB:路由协议生成,用于选路
  • LDP:分标签、建立LFIB表、LSP的建立与拆除
  • LIB:由标签协议建立,用做MPLS标签转发

转发层面:对普通IP报文和MPLS标签报文做转发

  • FIB:根据RIP表生成,用做转发IP报文
  • LFIB:由标签协议建立,用做MPLS标签转发

MPLS 标签

转发等价类 LEC
标签

  • Lable:20 bit
  • EXP:3 bit
  • S:1bit
  • TTL:8 bit

标签空间:

  • 特殊标签空间:“3”标签,隐式空标签。交换后的标签值为3,则标签弹出,将报文发给最后一跳。
  • “0”标签:显示空标签。出节点分配给倒数第二跳节点的标签值为0时,倒是第二跳LSR需要将值为0的标签压入报文标签顶部

静态标签空间:16-1023
动态信令协议标签空间:1024以上

LSP的建立

静态LSP如何建立
  • 入节点配置:目标网络、下一跳、出接口、出标签
  • 中间节点:入接口、入标签、下一跳、出接口、出标签
  • 出节点:入接口、入标签
动态LSP

动态标签分发协议

  • LDP:LSR吧路由信息映射到数据链路层的交换路径上
  • RSVP-TE
  • MP-BGP:MP-BGP支持为MPLS VPN 中私网路由和跨域VPN的标签路由分配标签

动态LSP的基本建立过程

  • 下游LSR分标签,按从下游到上游的方向分发
  • 下游LSR根据IP路由表进行FEC的划分,根据FEC分表标签,通告给上游的LSR,建立标签转发表和LSP
  • 在这里插入图片描述

MPLS 转发

基本概念

  • Push(压标签)
  • Swap (交换标签)
  • Pop (标签弹出)

MPLS基本转发过程

  • lngress(入节点):收到IP报文,根据目标地址打上标签Z
  • Transit (中间节点):收到标签为Z报文,把标签Z
    替换成X,倒数第二跳节点,收到标签为Y的报文,因为”出节点“给它分配的标签值为3,所以进行PHP操作
  • Egress(出节点):收到IP报文转发给目标主机
MPLS详细转发过程

基本概念:

  • Tunnel ID :32bit,本地有效
  • NHLFE :只在入节点存在,下一跳标签转发表项,用于指导MPLS报文转发。
    包括:Tunnel id、入标签、入接口、标签操作类型
  • ILM

转发过程:

  • 当报文进入MPLS网络,首先检查FIB表,根据目的IP地址对应的Tunnel id,
    如果tunnel id为0 ,则进入IP转发
    如果tunnel id不为0,则进入MPLS转发
  • 入节点处理
  • 首先查看FIB,通过目的IP地址,找tunnel id判断时IP转发还是MPLS转发;
    根据非0的tunnel id找到对应的NHIFE表项
    根据NHIFE表项得到出接口、出标签、标签操作类型、下一跳等信息; - 在IP报文压入出标签,处理TTL,将报文转发给下一跳。
  • 中间节点的处理
    根据MPLS的标签值查对应的ILM表,找到Tunnel id
    根据tunnel id 找到NHIFE表项,得到下一跳、出接口、出标签、标签操作类型;
    如果标签>=16,标签交换,处理TTL,将报文发送给下一跳
    如果标签=3,弹出标签,处理ttl,进行IP转发或者下一层标签转发
  • 出节点的处理
    收到IP报文,进行IP转发
    收到MPLS报文,查看ILM表,处理TTL,如果S=1,则IP转发,如果S=0,下一层标签转发
MPLS对TTL的处理(2种模式)

作用:用于防环和Traceroute

Uniform(统一)模式
  • 过程描述:
    IP报文进入MPLS网络时,入节点将IP TTL值减1复制到MPLS TTL字段中
    在MPLS域中,按照标准的TTL做处理(IP中的TTL值不变,MPLS TTL值做减法)
    在出节点,MPLS TTL减1,值复制到IP TTL中
Pipe(管道)模式
  • 过程描述
    IP报文进入MPLS时,入节点将IP TTL值减1, MPLS TTL值固定为255
    在MPLS域中按照标准TTL处理(IP中TTL值不变,MPLS TTL值做减法)
    在出节点,IP TTL值减1 注:IP经过MPLS网络时,只在入节点和出节点分别减1不论MPLS网络经过多少跳
标签转发的简单描述

IP报文进入MPLS网络时,MPLS的LER分析IP报文的内容并为这些IP报文添加合适的标签,在MPLS网络中的lsr根据标签转发数据。IP报文离开MPLS网络时标签弹出。

MPLS LDP

基本概念
  • LDP对等体:指相互存在LDP会话、使用LDP来交换标签消息的两个LSR
  • LDP邻接体
    本地邻接体, 以组播形式发送hello消息
    远端邻接体,以单播形式发送hello消息
  • LDP会话
LDP消息类型
  • 发现(Discovery)消息:用于通告和维护网络中的LSR的存在,如hello消息
  • 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如initialzation消息、keepalive消息
  • 通告 (Advertisement)消息:用于创建、改变和删除FEC的标签映射
  • 通知 (Notification)消息:用于提供建议性的消息和差错通知
LDP会话的建立

LDP 会话发现机制

  • 基本发现机制:用于发现链路上直连的LSR,目的地址时组播地址224.0.0.2
  • 扩展发现机制:用于发现链路上非直连LSR

会话过程

  • 两个LSR互发hello消息,hello消息中携带传输地址(一般时LSR ID),双方用传输地址建立LDP会话
  • 传输地址大的一方作为主动方,发起TCP连接
  • TCP建立成功后,主动方发初始化消息,协商建立LDP会话相关参数
  • 被动方收到消息后,
    如果接受相关参数,则发送初始化消息,同时发keepalive消息给主动方
    如果不接受相关参数,则发送notification消息终止LDP会话(初始化消息包括LDP版本,标签分发方式,keepalive保持定时器的值,标签空间)
  • 主动方收到初始化消息后
    如果接受相关参数,则发送keepalive消息
    如果不接受相关参数,则发送Notification消息终止会话
LDP会话的建立过程

只有双方都收到对端的keepalive消息后,LDP会话建立成功

LDP LSP的建立

标签的发布和管理

标签发布方式

  • DU:下游自主
  • DOD:下游按需

标签的分配控制方式

  • 独立
  • 有序

标签的保持方式

  • 自由
  • 保守

支持的组合方式

  • DU+有序+自由
  • DOD+有序+保守
普通LSP的建立
  • 缺省情况下,网络的边缘节点(Egress)发现主机路由,并该路由不属于任何FEC。
  • 如果MPLS网络Egress有可供分配的标签,则为FEC分配标签,并主动向上游发出标签映射消息,标签映射消息中包含分配的标签和绑定的FEC等消息
  • Transit收到标签映射消息后
    判断发送者是否为该FEC的的下一跳,若是,则在其标签转发表中曾加相应条目,然后向上游LSR发送该FEC的标签映射消息
  • lngrees收到标签映射消息后,判断发送者是否为该FEC的下一跳
    若是,则在标签转发表中曾加相应条目。这时,就完成了LSP的建立,然后就是对该FEC对应的数据报文进行标签转发。
    在这里插入图片描述

MPLS VPN

CE—PE1—P---PE2—CE2

  • PEQ收到IPv4路由是根据接口绑定的VPN实例打上RD值,变成vpnv4路由,在发布给对方PE时,下一跳更改为自身,并打上私网标签,私网标签由MP-BGP随机生成,并加上扩展团体属性RT值,通过update报文发送给PE2
  • PE2收到路由时,将vpnv4路由转换成ipv4路由,通过update报文中的RT与自身的RT值做匹配,匹配成功,根据VPNv4路由的下一跳找合适的隧道,保留该隧道的Tunnel id和标签
  • 将VPNv4路由放入到实例路由表中,然后PE2将路由传递给CE2
数据转发过程
  • CE1 发送一个数据
  • PE1从绑定的VPN实例的接口收到后,
    根据绑定的VPN实例的RD找对应的VPN转发表
    根据自身报文目标IP找对应的Tunnel id ,给报文打上对应的私网标签
    根据下一跳的Tunnel id找到对应的隧道,将报文从隧道发出去
    根据Tunnel id 找到NHLFE到对应的出标签,打上公网标签
    数据包根据公网LDP隧道穿越骨干网,经过P设备到达PE2
  • PE2收到数据包后,
    发现数据举报携带MPLS报文,交给MPLS协议处理,MPLS协议剥离外层标签
    PE2设备在根据私网标签,就知道从什么接口发给CE2
    PE2发现私网标签处于栈低(S=1),于是剥离私网标签,进行IP转发

基本概念

site
  • 一个site中的设备可以属于多个vpn
  • 一个site可以包含多个CE,但一个CE只属于一个site
地址空间重叠
  • 允许VPN使用重叠地址空间情况
  • 两个VPN没有沟通的site
  • 两个VPN由沟通的site,但此site中的设备不与两个VPN中使用重叠地址空间的设备互访
VPN实例
  • 不同的VPN之间的路由隔离通过VPN实例(VPN-instance)实现
  • VPN实例信息包括:IP路由表、标签转发表、与VPN实例绑定的接口以及VPN实例的管理信息
  • VPN实例管理信息包括;RD、路由过滤策略、接口成员列表等。
VPN、site、VPN实例间的关系
  1. VPN是多个site的组合,一个site可以属于多个VPN
  2. 每个site在PE 上都关联一个VPN实例
  3. VPN实例域VPN不是一一对应的关系,VPN实例域site之间存在一一对应的关系
RD与VPNv4地址
  1. 传统BGP无法正确处理地址空间重叠的VPNv4路由对端PE无法区分相同网段的路由,所以就需要RD。

配置BGP/MPLS VPN遇到的问题

1. 如何解决不同site连接到同一个PE后,私网路由冲突问题?

通过在PE上使用VPN-instance(vrf),隔离不同site的私网路由

  • vpn-instance的组成
  1. 独立的路由表
  2. 独立的地址空间(即冲突路由可以隔离)
  3. 一组独立的路由协议(IBGP)除外
  4. 一组绑定到该实例的接口
2. 如何在不同的VPN-instance之间传递路由信息
  • 通过PE之间建立MP-IBGP的邻居关系
  • 将VPN-instance中的IPv4私网路由,转换为VPNv4路由,MP-IBGP传递这些VPNv4路由
  • VPNv4就是添加了RD参数的IPv4路由
  • PE接收到不同的VPNv4实例的路由,通过 RD来判断这些VPN4是否来自同一个VPN实例
    RD规则的原则
  1. 在PE上本地VPN-instance的RD要唯一
  2. 不同PE上每个VPN-instance RD可以全局唯一
  3. 同一个VPN中的所有VPN-instance的RD可以相同,不同VPN-instance的RD不同相同
    同一个VPN指的可以互相通信的VPN-instance或者是site
    RD只能解决区分不同的VPNv4的路由,但无法解决vpn中ipv4路由冲突的问题
3.如何将ipv4的私网路由转化成VPNv4路由
  • P可以直接将VPN-instance中学到的EBGP路由直接转化VPNv4路由
  • 将VPN-instance中IGP路由引入到该VPN-instance 的BGP表中,然后自动转化为VPNv4路由。
4.当PE收到VPNv4路由后,如何将这些VPNv4路由自动注入到本地的vpn-instance的BGP表中?
  • RT:路由目标,本质是BGP团体属性,在VPNv4中称为RT
  • RT分为:export-rt import-rt
  • 每个vpn-instance可以配置多个ERT和IRT
  • ERT:发送VPNv4路由时携带
  • IRT:接受vpnv4路由后,根据vpnv4路由携带的ERT做匹配,如果匹配则接收该vpnv4路由,并自动引入路由到匹配的vpn-instance的BGP表中
转发问题,当PE从网络侧收到私网的业务报文时,如何判断使用本地哪个vpn-instance的路由表执行私网报文转发呢?
  1. 在PE传递VPNv4路由时,由MP-BGP协议为本地的所有vpnv4路由分配一个本地唯一的私网标签。
  2. 将私网标签和vpnv4路由以及ERT,next-hop传递个PE邻居
    私网标签 :用于PE从网络侧收到私网报文,根据私网标签判断该报文 用本地的哪个vpn-instance路由表执行转发。MP-BGP产生
    公网标签:用在私网报文在公网的LSP中进行转发,LDP协议负责生成,即为BGP路由的下一跳创建的LSP即可

ipv4-family vpnv4
policy vpn-target

  1. 本地不存在任何vpn实例则不接收任何vpnv4路由
  2. 如果本地存在VPN实例,则根据ERT匹配,没有匹配的IRT则也不接收
  3. undo policy vpn-target 接收任何有效的vpnv4路由,一般在RR,ASBR上启用该命令。
MPLS VPN 配置思路
  1. ISP网络IGP做通
  2. ISP网络LDP做通,公网LSP
  3. PE之间建立IBGP邻居关系,激活MP-IBGP地址族
    ————————————————————————————————
    vpn业务接入配置:
  4. 创建vpn-instance,规划RD,RT
  5. 接口绑定vpm-instance
  6. 配置CE和PE之间的路由协议
  7. 引入私网路由,通过vpnv4进行传递
  8. vpnv4路由引入vpn-instance中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值