Label一般是由运营商端的Router添加。

去往相同网段的数据包打相同的标签

基于每个数据包的负载均衡
基于目的地的负载均衡

启用CEF无非做两件事:1.把路由表中条目进行优化,加入FIB;2.把ARP表项以及帧中继映射进行优化,内容加入Adjacency Table。
启用CEF生成一张FIB(Forwarding Information Base)表(经过优化的,解决了递归路由),FIB表是基于拓扑的

LIB(Label Information Base)用来存放TDP/LDP邻居给我分发的他们的标签以及保存本地基于路由条目所产生本地标签。
LFIB:真正用来转发带标签的报文的表

路由器分发标签永远是基于FIB表项(启用MPLS的前提是启用CEF)

在一台路由器上,不能为不同的路由条目分发相同的标签,每条路由条目对应一个本地唯一的标签。例外是0-15标签,如果给路由条目分发的标签取值范围在0-15之间,此时多条路由可以对应相同的被保留标签。

对于一条路由条目,如果该路由器路由表中该路由条目的出站接口是一个没有启用MPLS的接口,则该路由器就是最后一跳路由器,或者该路由条目对应的下一跳邻居不是本地的TDP/LDP邻居时该路由器同样为最后一跳路由器,只要一台路由器收到了关于一条路由条目的标签是3,则该路由器就会判断自己就是倒数第二跳路由器。

FEC:转发等价类。一个路由条目对应一个FEC,对应一个标签。
LDP/TDP:为FIB表中路由条目分发标签,把我本地的标签通告给我的邻居,并且形成LIB和LFIB。
CEF:运行MPLS的必要因素,先运行CEF才能运行MPLS,同时会形成两张表 FIB和Adj Table,其中FIB可以用来实现标 签的插入。

VRF Virtual Routing Forwarding.一个VRF就是一个MPLS VPN中的实力例(进程)。
一台PE为一个公司提供MPLS VPN就要为该公司定义一个本地唯一的VRF进程。
PE创建了VRF之后,一定要将其和某个连接CE接口关联。

RD(区分多家公司相同的路由前缀):当PE把私网路由在运营商内传递的时候能够区分相同的路由,做一个域内传递的区分。
RT:Route Targets 该路由条目会被哪个进程所接收。
MPBGP用来路由VPNv4路由 VPNv4路由条目举例:RD:目标网路/掩码

数据层面双标签机制:
里层标签:告知我的远端PE端收到报文之后查找哪张VRF表
外层标签:在mpls域传递的时候能杜绝数据层面的路由黑洞

在控制层面收到一条VPNv4路由,这个路由的入站接口没有和任何的VRF关联,这个时候该路由加入哪张表取决于RT。
在数据层面通过一个接口收到数据包,这个接口没有和任何VRF关联,这个时候我查哪张表,取决于里层标签。

VRF用来区分不同的路由表

RD用在传递路由时区分相同的路由条目(比如两条1.1.1.0/24)

RT用来标示应该把该路由加入哪个VRF

用RT来区分相同的路由条目就好了,为什么还要引入RD?
因为一条VPNV4路由只能添加一个RD值,但是可以添加若干RT值。

因为从不同VRF学到的相同的路由可以打相同的RT(负载均衡),所以才引入RD做本地路由区分,如果RD也和路由一样相同了就变成了两个相同的包。

用OSPF作为IGP,MPLS不能正常工作原因:
因为OSPF宣告环回口默认为32位,本地环回口路由又为24位,所以本地路由器不会为/32位路由条目分配标签(本地只为/24位分配标签),所以邻居路由器想到达该环回口只能untaged去掉标签采用普通方式与该环回口通信。

MPLS VPN会打两层标签,第一层是ldp根据路由前缀打的,第二层是BGP根据VPNv4路由前缀打的。

为什么LDP协议既能支持TCP又能支持UDP?
建立邻居使用UDP,传递标签使用TCP

MPLS笔记的更多相关文章

  1. mpls vpn剩余笔记

    将IP地址映射为简单的具有固定长度的标签 用于快速数据包交换 20 3 1 8 在整个转发过程中,交换节点仅根据标记进行转发 标签交换路径(LSP) 多协议标签交换MPLS最初是为了提高转发速度而提出 ...

  2. MPLS VPN随堂笔记3

    跨域 ASBR之间运行MPBGP 1.配置AS内部IGP保证环回口互相可达,同时建立LDP邻居 (优先启用 mpls label rang 16 100)方便查看实验现象 2.配置PE1-PE2 PE ...

  3. MPLS VPN随堂笔记2

    深入理解ospf 理解MPLS VPN 中对OSPF 层次化设计的补充 supper backbone area 2:理解MPLS VPN 中OSPF 的区域设计概念 3:理解MPLS VPN 中OS ...

  4. MPLS VPN随堂笔记1

    MPLS VPN 基础 1.MPLS vpn架构的特点 1.1.允许不同CE传递相同私网路由 1.2.SP内部(所有P路由器)不需要学习CE路由 1.3.无安全保障但有带宽保障(跟SP租用服务) 2. ...

  5. MPLS LDP随堂笔记2

    前一天排错 Acl 1 匹配所有ospf的数据包 (目的 ospf建立邻居关系 传递路由条目) 2 放行UDP报文 让LDP邻居能互相收发HELLO包 4 放行TCP报文 让LDP邻居能够建立TCP会 ...

  6. MPLS LDP随堂笔记1

    LDP 的使用原因(对于不同协议来说) LDP的四大功能 发现邻居 hello 5s 15s 224.0.0.2 发现邻居关系 R1 UDP 646端口 R2 UDP 646端口 此时形成邻居 建立邻 ...

  7. mpls vpn剩余笔记

    将IP地址映射为简单的具有固定长度的标签 用于快速数据包交换 20 3 1 8 在整个转发过程中,交换节点仅根据标记进行转发 标签交换路径(LSP) 多协议标签交换MPLS最初是为了提高转发速度而提出 ...

  8. MPLS VPN随堂笔记2

    深入理解ospf 理解MPLS VPN 中对OSPF 层次化设计的补充 supper backbone area 2:理解MPLS VPN 中OSPF 的区域设计概念 3:理解MPLS VPN 中OS ...

  9. MPLS VPN随堂笔记1

    MPLS VPN 基础 1.MPLS vpn架构的特点 1.1.允许不同CE传递相同私网路由 1.2.SP内部(所有P路由器)不需要学习CE路由 1.3.无安全保障但有带宽保障(跟SP租用服务) 2. ...

随机推荐

  1. Effective C++ 笔记:条款 30 inline

    30 : Understand the ins and outs of inlining 1 inline申请书 1.1 类内部实现函数包含隐藏的inline申请 class Human { publ ...

  2. tensorflow学习之(六)使用tensorboard展示神经网络的graph

    # 创建神经网络, 使用tensorboard 展示graph import tensorflow as tf import numpy as np import matplotlib.pyplot ...

  3. 标准时间转YYYY-MMM-DD

    // 时间处理 formatDate(date, fmt) { let o = { 'M+': date.getMonth() + 1, //月份 'd+': date.getDate(), //日 ...

  4. linux关机、重启命令

    1.shutdown -h 10 //计算机将在10分钟后关机,且会显示在登录用户的当前屏幕中 2.shutdown -h now //立即关机 3.shutdown -h 20:25 //系统会在2 ...

  5. [solution] JZOJ-5795 词典

    [solution]JZOJ-5795 词典 题面 Description 小C有$n$个字符串$T_1 T_n$,给出$m$个询问 第$i$个询问给出一个字符串$S_i$,对于每个询问,我们可以得到 ...

  6. Linux下gcc编译控制动态库导出函数小结

    根据说明文档“How To Write Shared Libraries"介绍, 有四种方法: 1. 在方法声明定义时,加修饰:__attribute__((visibility(" ...

  7. wampserver 的默认首页设置

    # wampserver 首页顺序设置 <IfModule dir_module> DirectoryIndex index.php default.php index.html inde ...

  8. SQL Server PageIOLatch和PageLatch

    Latch是轻量级的锁,它是SQL Server内部用来同步资源访问的一个数据结构,使数据的访问同步有序,这意味着,当一个线程获得资源R的Latch的独占使用权时,如果其他的线程也想访问这个Latch ...

  9. 简单的Poc Exp编写(上)

    简单的POC EXP 编写 (上)   作者BY Greekn   今天主要讲的 是关于web 方面的 poc 编写 关于web 安全 个人理解的话 一个就是攻击  另一个就是漏洞挖掘了 防御的话 看 ...

  10. 阿里开源项目arthas在docker环境初始化

    需求 我前一篇是在window环境下做的测试,实际情况现在的生成环境程序都部署在了docker环境下,此环境对arthas可能会缺失很多必要组件 目前的基础环境是在docker容器中,只存在基本的to ...