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. 第一个VS2015 Xaramin Android项目(续)

    上文说到已经第一个 App已经可以运行,但是并不能调试! 经过细心发现,我察觉到VS刚开始进入了调试模式,但是一闪而过.也就是说调试失败了,此时需要等待一段时间才能打开此App,如果立即打开App 会 ...

  2. loadtxt()函数的糟心历程

    原计划:导入一个csv文件,然后算出平均值 import numpy as np c=np.loadtxt('d:\python36\data.csv', delimiter=',', usecols ...

  3. sql server中replace()函数用法解析

    知识点一:replace()的语法 REPLACE ( string_replace1 , string_replace2 , string_replace3 ) 参数解析: string_repla ...

  4. 1.MFC架构分析

    1.架构代码文件的结构 主要由四个部分组成 1.资源文件Resource.h:主要定义资源的ID 2.预编译文件:stdafx.h 可以用来解决头文件包含冲突的问题,定义一些需要全局性包含的文件. 3 ...

  5. VUE 动态给对象增加属性,并触发视图更新。

    在开发过程中,我们时常会遇到这样一种情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的. 根据官方文档定义 ...

  6. java内存模型和垃圾回收(收藏)

    java内存模型: https://www.cnblogs.com/handsomeye/p/5442879.html java垃圾回收 http://www.cnblogs.com/handsome ...

  7. drf5 版本和认证组件

    开发项目是有多个版本的 随着项目的更新,版本就越来越多.不可能新的版本出了,以前旧的版本就不进行维护了 那我们就需要对版本进行控制,这个DRF框架也给我们提供了一些封装好的版本控制方法 版本控制组件 ...

  8. CSS样式总结(作业六)

    1:CSS基本介绍 CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. css 样式由选择符 ...

  9. Kotlin 开篇

    Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发官网地址:http://kotlinlang.org.JetBrains,作为目前广受欢迎的 Java IDE Intel ...

  10. Java 线程使用注意事项

    事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发起新的IO请求 ...