Segment Routing 之 Data-Plane Control-Plane
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相关推荐
- Segment Routing IGP Control Plane
本文是在读C. Filsfils et al.所著的Segment Routing第一卷第5章后所做的总结. 因为知识和能力有限,本章很多内容还没有理解,因此这里呈现的是极简版的. 通过扩展IGP协议 ...
- 微软研究院研究员Ryan Beckett 博士论文《Network Control Plane Synthesis and Verification》下载—2018ACM最佳博士论文题目奖
欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯 论文下载 关注微信公众号[计算机视觉联盟],回复关键词[Ryan]即可下载全文! 论文封面 论文目录 目前,Beckett 是微软研究 ...
- Docker Universal Control Plane(UCP)——提供企业级的容器云的解决方案
题记 我所关注的Docker技术还只是在裸机环境下部署docker,或者通过Swarm将多个裸机组成集群等,而且多有的操作都是建立在命令行上面,CLI是专业人士的最爱,普通用户更喜欢使用可视化的管理界 ...
- RFC8402 Segment Routing Architecture 翻译
黑色为原文 紫色为翻译 红色为校注 Internet Engineering Task Force (IETF) ...
- Segment Routing基础知识
本文是在读C. Filsfils et al. 所著的Segment Routing第一卷第2章内容所做的总结 What is Segment Routing Segment Routing (SR) ...
- Segment Routing — SR-MPLS
目录 文章目录 目录 SR-MPLS v.s. MPLS SR-MPLS SR-MPLS 的转发原理 SR-MPLS 的控制面 IGP Prefix/Node Segment IGP Adjacenc ...
- 互联网协议 — Segment Routing(分段路由网络)— SR-MPLS
目录 文章目录 目录 SR-MPLS 技术 SR-MPLS 技术 SR 脱胎于 MPLS,但是又做了革命性的颠覆和创新. 所谓 "脱胎" 意指 SR Forwarding Plan ...
- Cisco IOS上Segment Routing TE的简单实验
最近看了些Segment Routing的一些资料,官网找到的实验都是基于IOS-XR系统的,于是自己查看配置手册试着做了个简单实验测试下效果. 拓扑如下: R1.R2.R3.R5.R6.R7之间运行 ...
- Segment Routing — Overview
目录 文章目录 目录 Segment Routing 的发展历程 IP 网络 ATM 网络 MPLS 网络 Segment Routing 网络 Segment Routing 的发展历程 IP 网络 ...
- Segment Routing — SRv6 — Overview
目录 文章目录 目录 SRv6 SRv6 v.s. SR-MPLS SRv6 拥有更好的传统网络兼容性 SRv6 拥有更好的可编程能力 SRv6 拥有更好的可扩展性 功能的可扩展性 网络容量的可扩展性 ...
最新文章
- 图像卷积下非极大值抑制 Sobel 的实现
- mysql 去重_点赞功能,用 MySQL 还是 Redis ?
- Cisco端口镜像配置
- 计算机维修案例分析题,14-15年春季高考信息技术题(组装维修部分)
- java容器doc_关于Java容器类学习心得体会.doc
- POI SXSSFWorkbook 实现大批量数据 导出
- linux下C\C++ 开发小笔记
- 李宏毅机器学习——深度学习卷积神经网络
- matlab实现带通滤波器的方法,数字信号处理课程设计---带通滤波器的设计及其MATLAB实现.doc...
- 计算机word制作成绩单,如何用word批量制作学生成绩单?
- k8s ingress配置自签名证书,并解决Kubernetes Ingress Controller Fake Certificate
- 华为又又又白给了,自动化福利领取了吗?
- 生活随记-如何健康摄入果糖
- 计算机网络--串行传输与并行传输
- 阅读《JavaScript设计模式》第二章心得
- 深圳市员工工资支付条例
- Windows安装Scoop失败解决方法
- IDEA 问题 following errors occurred on attempt to save files
- 【go实战系列五】 go1.19.2与pkg中error如何wrap与unwrap Errors | 将error进行wrap向上处理思想 | pkg/errors
- to your MariaDB server version for the right syntax to use near ?,?,?,?,?,?,?,?)