设为首页 收藏本站
查看: 2766|回复: 0

[经验分享] MPLS基础一(上)

[复制链接]

尚未签到

发表于 2017-7-8 21:43:09 | 显示全部楼层 |阅读模式
DSC0000.png

  在上图中,关于PC-A和PC-B之间互相访问的过程中
  1、所有三层网络设备形成源和目的的路由条目
  2、PC-A发出报文,source-IP为A,destination-IP为B
  3、R1收到报文后,根据目的IP检查自己的路由表,查询得到出接口,将数据包从出接口发出
  4、R2、R3同样如此,一直讲数据包传递到PC-B
  5、PC-B做出回包,沿反方向传回数据
  其中省略了二层mac地址的ARP查询和重写数据帧的内容  
  简而言之:IP数据报文在传递的过程中,根据目的IP地址,查询路由表,得到出接口将数据发出,源目的IP地址保持不变,mac地址逐跳改写
  上面这个是我们耳熟能详的IP转发原理
  其中我们为了方便理解,隐藏了其在转发过程中真实的一幕,即路由器收到IP报文时,查询的其实并不是路由表(RIB),而是转发表(LIB)
  我们需要复习一下在NP交换部分所讲过的交换工作原理
  最早期,交换机在交换数据帧时采用的交换方式我们称之为进程交换,所有的报文在交换时都需要经过CPU查询处理,导致交换效率一直无法提升
  随后,新一代交换方式出现,即采用数据流的交换方式,我们将源目的IP、源目的mac、源目的端口及入接口都相同的流量称为同一个数据流,交换机在处理这些数据时,只需要对第一个报文使用CPU进行查询,后续的所有报文全都按照第一个报文的交换方式进行处理,大大提高了交换效率
  而cisco根据数据流交换方式推出了自己独有的交换方式,在进程交换中,存在一个问题,即只有有流量触发后才会产生出对应的交换缓存,如果是处理大量不同数据流时,其实交换效率和进程交换一样慢;为了解决这个问题,cisco将其优化改进,利用交换机的闲时资源,提前计算出可能会收到的数据流的转发信息,将其载入缓存,当收到数据流时,直接使用预先缓存的转发信息处理报文,实现了正真的基于硬件的交换方式,cisco把这种方式成为思科特快转发(CEF)  
  正是由于CEF的高效,cisco在新的路由产品中也移植了这个功能,所以现在大家所能接触到的思科设备都具备CEF功能
  而我们所谓的转发表其实就是CEF表,CEF表示根据路由表产生的,其不像路由表有大量的递归内容,CEF表中显示的就是一个数据包如果匹配中其下一步应该从哪个接口发出,简单高效
  比如下面的这个路由表(RIB):
DSC0001.png

  路由就会出现需要递归查询的情况
  而我们去看一下CEF表(FIB)
DSC0002.png

  路由器在闲时会根据路由表的信息,提前计算好转发信息,收到去往4.4.4.4的数据包直接从出接口F0/0发出
  这张表我们就叫做FIB:转发信息库
  而FIB是根据路由表产生的,路由表我们称为RIB:路由信息库
  设备在收到IP报文时,其查询的其实是FIB并不是RIB,如果将CEF功能关闭,这是才会查询RIB即路由表
  以上是我们在NA、NP中所学的IP转发原理的内容,做一些补充
  下面,我们开始揭开MPLS的神秘面纱,来看一看内里乾坤
  MPLS(Multiprotocol Label Switch)最初是用来提高路由器的转发速度而提出的一个协议,但随着技术发展,设备转发性能越来越强,其加快转发速度的优势逐渐弱化,而多层MPLS报头嵌套的设计成为了其最出彩的地方
  目前用得比较多的场景主要是解决BGP路由黑洞问题和MPLS VPN数据转发
  首先,我们需要对MPLS有个大概的认识,MPLS在传递报文时会在二层帧头和三层报头中间插入MPLS报头,所以很多人叫它2.5层
DSC0003.png

  他的报文结构比IP报头简单得多,也小地多,只有4个字节(32bits)
  结构如下:
DSC0004.png

  前20位位标签位,用于表示当前的标签
  EXP协议中未作定义,一般用作COS
  S为栈底位,用于表示该MPLS报头是否为最后一个MPLS报头
  TTL相信不用解释了
DSC0005.png

  如此简单的接口我相信你看过一次就能记住,同样,设备在处理MPLS报文时也会比IP报文处理效率更高
  在MPLS中有一些专业术语必须要了解
  FEC:
  Forwarding Equivalence Class,FEC(转发等价类),是在转发过程中以等价的方式处理的一组数据分组。
  可以通过地址、隧道、COS等来标识创建FEC,
  目前看到的MPLS中只是一条路由对应一个FEC。通常在一台设备上,对一个FEC分配相同的标签。
  标签(Label)
  是一个比较短的,定长的,通常只具有局部意义的标识(类似mac地址),这些标签通常位于数据链路层的数据链路层封装头和三层数据包之间,标签通过绑定过程同FEC相映射,即一个FEC对应一个标签。
  LSP:
  标签交换通道。一个FEC的数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行。数据流所走的路径就是LSP。
  LSR:
  Label Switching Router,LSR是MPLS的网络的核心交换机,它提供标签交换和标签分发功能。
  LER:
  Label Switching Edge Router,在MPLS的网络边缘,进入到MPLS网络的流量由LER分为不同的FEC,并为这些FEC请求相应的标签。它提供流量分类和标签的映射、标签的移除功能。
  了解了上面这些专业术语,那么我们研究一下数据是如何通过MPLS进行传递的,和IP之间有什么区别:
DSC0006.png

  在上图中,我们需要解决几个问题:
  标签是怎么产生的?
  IP报文是怎么变成MPLS报文的?
  报文是如何从源传递到目的的?
  标签是怎么产生的?
  为每一条路由产生一个唯一标签(local标签,也叫 in标签)
  将这些标签传递给MPLS的邻居(remote标签,也叫out标签)
  IP报文是怎么变成MPLS报文的?
  在LER上,压入标签(根据IP报文的目的IP地址所对应的路由的标签)
  报文是如何从源传递到目的的?
DSC0007.png

  A发出IP报文,R1收到后查询FIB,得知需要压入标签
  R1将报文转发给R2,R2收到MPLS报文,查询LFIB表中in标签,将原有的标签替换成现在这个in标签对应的out标签值
  到达R3后,查询in标签,发现对应out标签为pop,则弹出最顶层标签,还原成IP报文,转发给R4
  R4收到IP报文后,查询FIB表,将报文转发给B
  其中涉及到几个动作:
  push压入:为报文添加MPLS报头
  swap替换:根据in标签查询的结果,将标签替换成out标签的值
  pop 弹出:将最顶层的MPLS报头移除
  untag 弹出:将所有MPLS报头都移除
  PHP机制:倒数第二跳弹出,减少最后一条设备的查表次数
  如果没有倒数第二跳弹出机制,在最后一条设备上才弹出标签,则在最后一条设备上首先需要查询LFIB表,得知需要弹出标签,弹出标签后变成IP报文,需要再次查询FIB表,共需要查询2次,而在倒数第二跳设备上弹出,变成IP报文后,最后一条设备就只需查询FIB表即可,只查一次

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-391823-1-1.html 上篇帖子: BGP选录原则 下篇帖子: 3g 上网卡使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表