SR是一种灵活的、可扩展的源路由方法。源选择一条路径,并在包头中将其编码为Segment的有序列表。每个Segment由Segment ID (SID)标识。通过SR,网络不在需要来维护每个应用和每个流的状态。取而代之的是,它完全遵从包头中的转发指令。本篇将针对Segment Routing的Data-Plane & Control-Plane进一步展开介绍。

一、MPLS Data-Plane Operations

1/ MPLS使用现有的MPLS作为Data-Plane:

  • Segment (SR)-> label (MPLS)
  • Segment list (SR)-> label stack (MPLS)

2/ 仍然使用“次末跳弹出(PHP)”以及“显式空(Explicit-Null)”

  • 默认: PHP 开启
  • Explicit-Null label 为非默认,如有需要可以手动enable

二、MPLS Data Plane Operations – PHP:

我们一起来结合下图举例说明:

  • Node-4 通告了它的loopback接口的IPv4前缀:1.1.1.4/32,prefix-SID:16004. (或者Node-4通告ipv6前缀2001::0101:0104/128,prefix-SID:16004)
  • Node-4要求使用默认PHP(noPHP-flag=0, ExpNull-flag=0)。PS:在这里Explicit-Null没有被使用。

接下来,我们逐跳的看一下:

在Node-1上执行“Push”动作,查看FIB:压入标签16004,出接口为G0/0/0/0

在Node-2上执行“Swap”动作,查看LFIB:local label,outgoing label,prefix,outgoing interface,next hop的对应关系

在Node-3上执行“Pop”动作,查看LFIB:Outgoing label变成了Pop

在Node-4上,它收到的包就不再带有SID Lable

三、MPLS Data Plane Operations – Explicit-Null:

  • Explicit-Null需要针对每一个prefix-SID进行配置
  • 针对本地起源的prefix-SID配置E-flag:

老规矩,结合下图举例说明:

这里Node-4通过的loopback接口前缀“NP-flag=1,E-flag=1”,即:禁用PHP,启用Explicit-Null。这里Node-3将与上一个例子中的动作不同:从Node-3的LFIB输出可见:Outgoing Label变成了“Exp-Null-v4”。如果是IPv6,这里就会显示成“Exp-Null-v6”

四、简单高效的MPLS传输服务:

案例走起:

  • MPLS服务依赖于prefix segment
  • 上图两个PE(Node-1 & Node-2)建立MP-BGP
  • Node-2通告前缀1.1.1.2/32,prefix-SID:16002
  • Red VRF中的CE(Node-8)通告前缀10.0.0.0/30

我们看一眼Node-1的输出:


  • Node-1上有两个VRF:一个是global vrf(或者叫default vrf),一个是RED vrf
  • Node-1上查看global vrf中的1.1.1.2/32 FIB:
    • 1.1.1.2/32为global prefix
    • 两个ECMP(等价负载路径)
    • 分别push label 16002,两个出接口
  • Node-1上查看RED vrf中的10.0.0.0/30 FIB:
    • 10.0.0.0/32为VPN prefix
    • BGP下一跳:1.1.1.2(egress PE)
    • 两个ECMP路径:99.1.3.3,99.1.5.5;
    • 两个ECMP,分别压入两层标签:一个是prefix-SID 16002,一个是BGP VPN label 90001

五、IGP Control plane:

  • 使用IS-IS或者OSPF
  • 在IGP下配置Segment Routing
  • Segment Routing同样也支持multi-area,multi-level网络

1/ SR IS-IS Control Plane:

  • 支持IPv4和IPv6
  • 支持Level 1,level 2 和multi-level路由
  • 支持Prefix-SID
  • 支持Adj-SID
  • 支持MPLS的PHP和Explicit-Null

IS-IS的扩展TLV:

IS-IS配置以及database输出:

2/ SR OSPF Control Plane Overview:

  • 支持Multi-area
  • 支持Prefix-SID
  • 支持Adj-SID
  • 支持MPLS的PHP和Explicit-Null

OSPF的扩展:

OSPF配置以及database输出:

3/ Anycast Prefix Segments:

  • Anycast prefixes: 相同的prefix由多个节点通告
  • Anycast prefix-SID:相同的prefix使用相同的prefix-SID
  • 流量转发依据IGP最佳路径
  • 如果primary node故障,流量自动re-route到其他节点
  • 注意:通告相同的anycast prefix-SID必须有相同的SRGB!

4/ Anycast Prefix-SID的高可用:

  • PE1 and PE2 各自通告自己的prefix-SID:16001,16002
  • PE1 and PE2 都通告了一个 Anycast prefix-SID,16100
  • 正常情况下,流量通过PE1转发(这里假设PE1的IGP最优)

  • 当PE1出现故障时,自动re-route,流量通过PE2转发

例行结束语:Adj-SID & LAN-Adj-SID都不需要配置,当IGP启用了Segment Routing之后,IGP会自动分配。Segment Routing TE,敬请持续关注!

Segment Routing 之 Data-Plane Control-Plane相关推荐

  1. Segment Routing IGP Control Plane

    本文是在读C. Filsfils et al.所著的Segment Routing第一卷第5章后所做的总结. 因为知识和能力有限,本章很多内容还没有理解,因此这里呈现的是极简版的. 通过扩展IGP协议 ...

  2. 微软研究院研究员Ryan Beckett 博士论文《Network Control Plane Synthesis and Verification》下载—2018ACM最佳博士论文题目奖

    欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯 论文下载 关注微信公众号[计算机视觉联盟],回复关键词[Ryan]即可下载全文! 论文封面 论文目录 目前,Beckett 是微软研究 ...

  3. Docker Universal Control Plane(UCP)——提供企业级的容器云的解决方案

    题记 我所关注的Docker技术还只是在裸机环境下部署docker,或者通过Swarm将多个裸机组成集群等,而且多有的操作都是建立在命令行上面,CLI是专业人士的最爱,普通用户更喜欢使用可视化的管理界 ...

  4. RFC8402 Segment Routing Architecture 翻译

     黑色为原文 紫色为翻译 红色为校注 Internet Engineering Task Force (IETF)                                            ...

  5. Segment Routing基础知识

    本文是在读C. Filsfils et al. 所著的Segment Routing第一卷第2章内容所做的总结 What is Segment Routing Segment Routing (SR) ...

  6. Segment Routing — SR-MPLS

    目录 文章目录 目录 SR-MPLS v.s. MPLS SR-MPLS SR-MPLS 的转发原理 SR-MPLS 的控制面 IGP Prefix/Node Segment IGP Adjacenc ...

  7. 互联网协议 — Segment Routing(分段路由网络)— SR-MPLS

    目录 文章目录 目录 SR-MPLS 技术 SR-MPLS 技术 SR 脱胎于 MPLS,但是又做了革命性的颠覆和创新. 所谓 "脱胎" 意指 SR Forwarding Plan ...

  8. Cisco IOS上Segment Routing TE的简单实验

    最近看了些Segment Routing的一些资料,官网找到的实验都是基于IOS-XR系统的,于是自己查看配置手册试着做了个简单实验测试下效果. 拓扑如下: R1.R2.R3.R5.R6.R7之间运行 ...

  9. Segment Routing — Overview

    目录 文章目录 目录 Segment Routing 的发展历程 IP 网络 ATM 网络 MPLS 网络 Segment Routing 网络 Segment Routing 的发展历程 IP 网络 ...

  10. Segment Routing — SRv6 — Overview

    目录 文章目录 目录 SRv6 SRv6 v.s. SR-MPLS SRv6 拥有更好的传统网络兼容性 SRv6 拥有更好的可编程能力 SRv6 拥有更好的可扩展性 功能的可扩展性 网络容量的可扩展性 ...

最新文章

  1. 图像卷积下非极大值抑制 Sobel 的实现
  2. mysql 去重_点赞功能,用 MySQL 还是 Redis ?
  3. Cisco端口镜像配置
  4. 计算机维修案例分析题,14-15年春季高考信息技术题(组装维修部分)
  5. java容器doc_关于Java容器类学习心得体会.doc
  6. POI SXSSFWorkbook 实现大批量数据 导出
  7. linux下C\C++ 开发小笔记
  8. 李宏毅机器学习——深度学习卷积神经网络
  9. matlab实现带通滤波器的方法,数字信号处理课程设计---带通滤波器的设计及其MATLAB实现.doc...
  10. 计算机word制作成绩单,如何用word批量制作学生成绩单?
  11. k8s ingress配置自签名证书,并解决Kubernetes Ingress Controller Fake Certificate
  12. 华为又又又白给了,自动化福利领取了吗?
  13. 生活随记-如何健康摄入果糖
  14. 计算机网络--串行传输与并行传输
  15. 阅读《JavaScript设计模式》第二章心得
  16. 深圳市员工工资支付条例
  17. Windows安装Scoop失败解决方法
  18. IDEA 问题 following errors occurred on attempt to save files
  19. 【go实战系列五】 go1.19.2与pkg中error如何wrap与unwrap Errors | 将error进行wrap向上处理思想 | pkg/errors
  20. to your MariaDB server version for the right syntax to use near ?,?,?,?,?,?,?,?)

热门文章

  1. PyCharm基本使用
  2. 中文的习题解答中国人看懂, 英文的习题解答外国人能看懂
  3. 用VS调试 javascript
  4. 第五章:Redis pipeline流水线
  5. android:xml属性集
  6. 使用synchronized(非this对象)同步代码块解决脏读问题
  7. UVA 1252 十五 Twenty Questions
  8. HTML+JS实现可编辑表格
  9. Utils工具方法集插件详解
  10. eclipse提示打不开java虚拟机