十八、多协议标签交换MPLS (Multi-Protocol Label Switching)

  • MPLS
    • MPLS概述
      • 多协议标签交换(英语:Multi-Protocol Label Switching,缩写为MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。多协议的含义是指MPLS不但可以支持多种网络层层面上的协议,还可以兼容第二层的多种数据链路层技术。
    • MPLS 术语
      • LER( Label Edge Router)
        • 在MPLS网络中,用于标签的压入或弹出,如R2、R4。
      • LSP( Label Switched Path)
        • 标签交换路径,即到达某一目的地址的报文在MPLS网络中经过的路径。
      • LSR( Label Switched Router)
        • 在MPLS网络中,用于标签的交换,如R3。
      • 根据数据流的方向,LSP的入口LER被称为入节点( ( Ingress);位于LSP中间的LSR被称为中间节点(Transit);LSP的出口LER被称为出节点( Egress)。
      • FEC转发等价类
        • 具有相同特征的一类报文(可以根据源地址、目的地址、源端口、目的端口、VPN等要素进行划分),
        • 在MPLS网络中,同一目的地址的所有报文就是一个FEC。MPLS为同一种FEC分配相同的标签
    • MPLS 标签
      • 报文
      • 标签栈(Label Stack)
        • 标签的排序集合
        • 靠近二层首部的标签称为栈顶MPLS标签或外层MPLS标签(Outer MPLS label);靠近IP首部的标签称为栈底MPLS标签或内层MPLS标签(Inner MPLS label)。理论上,MPLS标签可以无限嵌套
      • 标签空间/标签取值
        • 0~15:特殊标签。如标签3,称为隐式空标签,用于倒数第二跳弹出
        • 16~1023:静态LSP的标签空间(现网不用)
        • 1024及以上:LDP、MP-BGP( Multiprotocol Border Gateway Protocol)的标签空间
        • 思科:0-15特殊标签,其他都可以用
        • LDP是为IGP表里面的路由去动态的分配标签(注意:华为只为32位的路由分配标签,思科会为IGP表里面有的路由去分配标签)
        • MP-BGP会为BGP表路由进行分发标签
    • 标签操作
      • Push:标签压入
      • Swap:标签交换
      • go(pop):标签弹出
    • MPLS体系结构
      • 控制平面:产生和维护路由信息及标签信息
        • RIB:路由表 由IP路由协议生成,用于选择路由。
        • LDP:标签分发协议 负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作
        • LIB:标签信息表 由标签分发协议生成,用于管理标签信息。
      • 转发平面:负责普通IP报文或者带MPLS标签报文的转发
        • FIB:转发信息表 硬件中精简的路由表(即常转发的路由信息,从RIB提取必要的路由信息生成,负责普通IP报文的转发)
        • LFIB:标签转发信息表Label Forwarding Information Base 标签转发表,由标签分发协议在LSR上建立LFIB,负责带MPLS标签报文的转发。
    • LDP
      • Label Distribution protocol,标签分发协议,用来动态建立LSP,MPLS网络中最常用标签分配协议。
      • 作用
        • 1.LSR发现
        • 2.LDP会话建立和维护
        • 3.FEC分类、标签分发、LSP的建立和维护(标签映射关系的通告或撤销)
    • LDP工作过程
      • 主要使用4类消息
        • 发现( Discovery)消息:用于LDP邻居的发现和维持,如Hello消息。
        • 会话( Session)消息:用于LDP邻居会话的建立、维持和中止。如initalization消息、 Keepalive消息。
        • 通告( Advertisement)消息:用于创建、改变和删除标签映射,如 Address消息、 Label Mapping消息。
        • 通知( Notification)消息:用于提供建议性的消息和差错通知。
        • 注意:为保证LDP消息的可靠发送,除了Discovery消息使用UDP传输外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP传输。

      • 工作过程主要分两个阶段
        • LDP会话的建立
          • 1.LSR之间发送Hello消息,Hello消息携带传输地址(默认是LSR ID),后续使用传输地址建立LDP会话。(Hello消息基于UDP,周期性5s,目的是224.0.0.2),LSR ID华为手动配置,一定要配设备存在的地址
          • 2.传输地址大(LSR ID)的一方主动发起建立TCP连接
          • 3.TCP建立完成后,主动方发送initalization消息(协商LDP版本号、标签分发方式、标签空间、Keepalive保持时间等)
          • 4.被动方收到初始消息后,如果接受相关参数,则发送initalization消息和 Keepalive消息。否则发送Notification消息终止LDP会话的建立
          • 5.主动发收到被动方的初始消息后,接受相关参数,则发送Keepalive消息,否则发送Notification消息(后续Keepalive 周期性发送,华为15s,思科60s)
        • LDP LSP的建立
          • 发送标签请求和标签映射消息(Address消息、 Label Mapping消息),通告FEC(即某条路由信息)和标签的绑定关系来建立LSP
          • MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发
          • LSP的建立过程就是将FEC(路由)和标签进行绑定,并将绑定通告LSP上相邻LSR的过程
          • 注意:华为只为IGP学习到的32位路由分发标签,思科可以为IGP表中学习到的所有路由分发标签
            建立LSP的方式有两种:
            静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道;
            ​动态LSP:通过标签发布协议动态建立转发隧道。
        • LDP工作模式
          • 标签的发布方式
          • 标签的分配控制方式
          • 标签的保持方式
    • 标签的发布和管理
      • 标签发布方式
        • DU(Downstream Unsolicited,下游自主方式) 本地主动把分配好标签的路由信息发给所有LDP邻居
        • DoD( Downstream on Demand,下游按需方式) 只有邻居请求某条路由信息的标签的时候,本地才给邻居
        • 华为/思科默认采用DU发布标签
      • 标签分配控制方式
        • 本地为一条路由分配标签的方式
        • Independent(独立分配控制方式) 只要本地通过IGP学习到的路由,就会主动为此路由分配标签。
        • Ordered(有序分配控制方式) 本地通过IGP学习到路由,必须下游路由器已经为此路由分配了标签,上游设备才可以为此路由分配标签
        • 华为设备默认采用ordered的方式分配标签。
        • 思科默认使用Independent模式。
      • 标签的保持方式
        • Liberal(自由标签保持方式)
        • 针对某一FEC,保留所有邻居发的标签(有多少个邻居发标签就保留多个标签)
        • Conservative(保守标签保持方式)
        • 针对某一FEC,保留最优下一跳邻居发的标签
        • 华为/思科设备默认采用自由标签保持方式
    • MPLS数据转发过程
      • MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。
      • 1.标签Push:Ingress节点收到目的地址X.X.X.X的IP报文,查FIB表(disp fib),TunnelID不为0,压入标签Z并转发。(TunnelID=0,就按普通IP报文路由转发)
      • 2.标签交换Swap:Transit节点收到该标签报文,查看LFIB表进行标签交换,将标签Z换成标签Y。
      • 3.标签弹出(Pop):倒数第二跳Transit节点收到带标签Y的报文。因为Egress分给它的标签值为3,所以进行PHP操作,弹出标签Y并转发报文。从倒数第二跳转发给Egress的报文以IP报文形式传输。
      • 4.Egress节点收到该IP报文,查FIB表转发给目的地。
    • PHP 次末跳弹出技术
      • PHP( Penultimate Hop Popping,倒数第二跳弹出)
      • 当出标签为3的时候,要先弹出标签再发送给下游邻居。
    • LDP配置
      • 华为配置
        • 1.全局开启MPLS及LDP,配置LSR ID
        • mpls lsr-id 1.1.1.1 //启用MPLS时,lsr-id必须先手动配置
        • mpls
        • mpls ldp
        • 2.接口开启MPLS、LDP
        • interface GigabitEthernet0/0/0
        • mpls
        • mpls ldp
        • 查看命令
          • display fib //查看FIB表
          • display mpls lsp //查看LSP
          • display mpls ldp peer//查看LDP对等体的信息。
          • display mpls ldp lsp //查看LDP构建的LSP路径
          • display mpls ldp session//查看LDP对等体间的会话信息。
          • display mpls route-state //查看哪些路由信息需要标签转发
      • 思科配置
        • mpls ldp router-id loopback 0 //lsr-id 默认选择loopback接口,多个则选IP地址最大的。无loopback口选择物理接口最大的。
        • interface FastEthernet0/0
        • mpls ip //接口开启mpls,默认为LDP
        • 路由进程下配置:
          mpls ldp autoconfig area x运行在相应area的接口自运行ldp在不需要运行LDP的接口下.可以no掉:
          ​no mplsldp igp autoconfig
        • 非直连邻居之间起LDP session
          用途:MPLS TE,AToM,MPLS LDP会话保护
          发起端:mpls ldp neighbor 22.1.1.1 targeted ldp
          ​接收端:mpls ldp discovery targeted-hello accept
        • 高级控制
          No mpls ldp advertise-labels
          Mpls ldp advertise-labels for 90 to 91
          Access-list 90 permit 192.168.254.0 0.0.0.255
          ​Access-list 91 permit ip any
        • 控制接收某些前缀的label
          mpls ldp neighbor x.xx.x labels accept acl_number
        • MD5认证
          mpls ldp neighbor 22.1.1.1 password higlab.com
        • show ip cef //cisco 查看FIB表
        • show mpls ldp bindings //查看LIB表
        • show mpls forwarding-table //查看LFIB表
        • show mpls ldp neighbor //查看LDP邻居
        • show mpls ldp discovery detail //排错的命令
        • show mpls interface //查看哪些接口开启mpls
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值