广域网技术——SRv6隧道类型及数据转发

news2024/12/26 16:07:21

目录

SRv6节点

节点角色

节点行为

SRv6数据转发隧道建立方式

SRv6 BE

L3VPNv4 over SRv6 BE

EVPN L3VPNv6 over SRv6 BE

SRv6 TE Policy


SRv6使用IPv6数据平面,基于IPv6扩展头进行扩展实现类似标签转发的处理

SR-MPLS在建立SR-MPLS隧道时,如果有设备不支持MPLS或SR,则就无法建立隧道

SRv6在建立SRv6隧道时,可以允许有设备不支持SR(只需要支持IPv6)


SRv6节点

节点角色

节点角色与其在SRv6报文转发中承担的任务有关,同一个节点可以是不同的角色(在某个SRv6路径中可能是源节点,在另一个SRv6路径中又可能是中转节点或Endpoint节点)

节点概括

生成SRv6报文的节点是SRv6的源节点

只需进行普通IPv6报文处理转发的节点为中转节点

需要处理SRv6 SID和SRH的节点是Endopint节点

源节点(SR Source Node )

压入Segment List的设备为源节点(生成SRv6报文的源节点)

此节点需要支持SR和IPv6

中转节点(Transit Node)

在压入Segment List时,没有被压入的节点(即没有Segment List标识此节点)

转发SRv6报文但是不进行SRv6处理,进行IPv6处理的节点(根据IPv6报文的目的地址转发数据,不解封装SRH)

此节点只需要支持IPv6,可以不支持SR(只不过此设备只能进行转发操作,无法控路)

Endopint节点(SR Endopint Node)

接收并处理SRv6的任何节点都为Endopint节点(并不是指尾节点)

其中该报文的IPv6目的地址必须是本地配置的SID或者本地接口地址

此节点需要支持SR和IPv6

Endopint节点在SR-MPLS TE Policy中Endpoint Node指的是尾节点

SRv6路径中,可以没有Transit节点,但是必须有源节点和Endpoint节点

粘连节点Bind SID同SR-MPLS中的粘连节点

节点行为

源节点行为——不同的源节点行为其SRv6报文封装方式会不同

H.Insert行为

直接在接收到的IP报文中插入SRH扩展报文头,并查表转发

H.Insert.Red行为

直接在接受到的IP报文中插入Reduced SRH扩展报文头,并查表转发

Reduced SRH指的就是SRH扩展头不封装第一个需要处理的SID,在进行溯源时可能会有点问题

(即:在封装SRH时,将最后一个Segment List加入到IPv6目的地址后,将此Segment List删除后在发送);但是Segment List的数值是不变的

H.Encaps行为

为接收到的IP报文封装外层IPv6报文头与SRH扩展报文头,并查表转发

H.Encaps.Red行为

为接收到的IP报文封装外层IPv6报文头与Reduced SRH扩展报文头,并查表转发

H.Encaos.L2行为

为接收到的二层报文封装外层IPv6报文头与SRH扩展报文头,并查表转发

H.Encaps.L2.Red行为

为接收到的二层报文封装外层IPv6报文头与Reduced SRH扩展报文头,并查表转发

Endpoint节点行为

收到SRv6报文解封装看到SID后,执行与此SID绑定的本地指令,就是配置的各种End类型

例如:如果此SID对应End.X类型,则代表发往某条链路

广域网技术——SRv6 SID讲解_静下心来敲木鱼的博客-CSDN博客_srv6技术是什么icon-default.png?t=M85Bhttps://blog.csdn.net/m0_49864110/article/details/123591943?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167046770416800182780137%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167046770416800182780137&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-123591943-null-null.nonecase&utm_term=SR&spm=1018.2226.3001.4450

Flavors附加行为

为了增强End系列指令而定义的附加行为(这些附加行为为可选项,会改变End系列指令的执行动作)

PSP(Penultimate Segment POP of the SRH)附加行为

倒数第二段执行SRH移除操作(类似MPLS的倒数第二条弹出PHP的标签3)

USP(Ultimate Segment POP of the SRH)附加行为

在最后一段执行SRH移除操作(类似MPLS的倒数第二条弹出PHP的标签0)

USD(Ultimate Segment Decapsulation)附加行为

最后一段执行外层IPv6解封装操作

USD标记通常应用于SRv6 TE Policy没有业务SID时的场景,以此来确保当到达最后一段SID所在设备时,此设备能够正常解封装

例如:当Segment List没有End.DT4类型指令时,当转发到最后一段SID所在设备时,USD可以确保其能够正常解封装


SRv6数据转发隧道建立方式

SRv6 BE

一种简化的SRv6实现,正常情况下不含有SRH扩展头,只能提供尽力而为的转发

SRv6 BE的报文封装与普通IPv6报文封装的不同点在于普通IPv6报文的目的地址是一个主机或者网段,但是SRv6 BE报文的目的地址是一个业务SID

SRv6 BE转发过程

通过IPv6报文的目的地址(业务SID)进行数据转发,转发路径为IGP计算出来的最短路径

SRv6 BE的应用场景

SRv6 BE可以应用在多种场景,包括L3VPNv4 over SRv6 BE、EVPN L3VPNv4 over SRv6 BE、EVPN L3VPNv4 over SRv6 BE等其它场景

L3VPNv4 over SRv6 BE

主要指的是利用公网的SRv6 BE承载L3Vpnv4的私网数据(底层路由为IPv4,通过Vpnv4建立IPv6地址的邻居)

L3VPNv4 over MPLS使用两层MPLS标签,L3VPNv4 over SRv6 BE只使用一个业务SID就可以实现两层MPLS标签的功能

业务建立过程

  1. PE配置SRv6和SRv6 VPN,中间设备需要支持IPv6
  2. PE2发布SRv6 Locator路由给PE1
  3. CE和PE之间通过IGP/BGP进行路由信息交换
  4. PE将从CE学习到的路由存入VPN实例IPv4路由表,并转为Vpnv4路由
  5. PE之间建立BGP Vpnv4邻居,互相交换Vpnv4路由(通过Update报文携带,会携带RT属性以及SRv6 VPN SID属性
  6. PE接收到从Vpnv4邻居传递来的Vpnv4路由,并将其存入相应的VPN实例表项和BGP Vpnv4路由表中
  7. PE将VPN实例路由传递给CE

路由发布与数据转发过程

路由发布

数据转发

EVPN L3VPNv6 over SRv6 BE

数据中心——Vxlan基本概念3(动态建立Vxlan的技术理论讲解)_静下心来敲木鱼的博客-CSDN博客_头端复制列表icon-default.png?t=M85Bhttps://blog.csdn.net/m0_49864110/article/details/125590720?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167050857416800184140913%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167050857416800184140913&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-125590720-null-null.nonecase&utm_term=vxlan&spm=1018.2226.3001.4450

主要指的是利用公网的SRv6承载EVPN L3VPNv6的私网三层业务(底层路由为IPv6,通过EVPN建立IPv6的邻居)

为什么要使用EVPN来传递IPv6实例路由

       因为华为的Vpnv6邻居只可以传递IPv4路由,无法传递IPv6路由

       所以当此层为IPv6时,通过EVPN来传递IPv6路由

业务建立过程

  1. PE配置SRv6和SRv6 VPN,中间设备需要支持IPv6
  2. PE2发布SRv6 Locator路由给PE1
  3. CE和PE之间通过OSPFv3、ISIS、BGP4+等路由协议进行路由信息交换
  4. PE将从CE学习到的路由存入VPN实例IPv6路由表,并转为IP Prefix Route形式的EVPN路由
  5. PE之间建立BGP EVPN邻居,互相交换IP Prefix Route路由(通过Update报文携带,会携带RT属性以及SRv6 VPN SID属性
  6. PE接收到从EVPN邻居传递来的IP Prefix Route路由,并将其存入相应的IPv6 VPN实例表项和BGP EVPN路由表中
  7. PE将IPv6 VPN实例路由传递给CE

路由发布与数据转发过程

路由发布

数据转发

SRv6 TE Policy

可以实现流量工程,配合控制器可以更好地响应业务的差异化需求,做到业务驱动网络

SRv6 TE Policy包含的三元组

头端(HeadEnd):SRv6 TE Policy生成的节点

颜色(Color):SRv6 TE Policy携带的团体属性,携带相同Color属性的BGP路由可以使用该SRv6 TE Policy

尾端(Endpoint):SRv6 TE Policy的目的地址

业务网络头端通过路由携带的Color属性和目的地址信息来匹配对应的SRv6 TE Policy实现业务流量转发

SRv6 TE Policy模型与SR-MPLS TE Policy完全相同

SRv6 TE Policy创建

在转发器上静态配置(通过CLI和Netconf)

在控制器上动态生成SRv6 TE Policy然后传递给转发器(通过PCEP或BGP SR Policy传递)

       先手工部署SRv6 TE Policy,在Locator的静态段范围内配置Binding SID;而后控制

SRv6 TE Policy的流量导入

同SR-MPLS TE Policy的流量导入(将公网路由迭代进SRv6 TE Policy隧道,然后再配置隧道策略进行引流)

隧道策略引流有基于Color和基于DSCP两种方式

SRv6 TE Policy数据转发(控制器模式)

  1. 控制器下发SRv6 TE Policy给头端PE1设备(设备通过BGP-LS将ISIS/OSPF v3收集的拓扑信息、前缀信息,SRv6 locator和SID信息通告给控制器,控制器通过BGP IPv6 SR Policy下发SRv6 Policy给源节点)
  2. 尾端PE2设备发布BGP Vpnv4路由10.2.2.2.2/32给头端PE1设备(吓一跳为PE2的2001:DB8:1::1/128)
  3. 在头端PE1设备上配置隧道策略(当PE1收到BGP路由之后,通过Color和下一跳迭代进SRv6 TE Policy中),隧道的SID Lisy已经由控制器下发给PE1,PE1只需要进行转发就可以
  4. 头端PE1收到CE1发送的普通单播报文后,查找VPN实例路由表,该路由的出接口是SRv6 TE Policy(PE1会为报文插入SRH信息,封装SRv6 TE Policy的SID List,然后封装IPv6报文头信息,然后PE1将报文进行转发给P1)
  5. 中间节点P1和P2根据SRH信息逐跳转发(将SL减一,并将SL对应的SID作为IPv6报文头的下一跳,进行转发)
  6. 报文到达尾节点之后,PE2使用报文的IPv6目的地址2001:DB8:A4::1查找My local SID表,命中到End SID,然后PE2将报文SL减一,IPv6 DA更新为VPN SID 2001:DB8:A4::100
  7. PE2使用VPN SID 2001:DB8:A4::100查找My Local SID表,命中到End DT4 SID,PE2解封装报文,去掉SRH信息和IPv6报文头信息,使用内层报文目的地址查找VPN SID 2001:DB8:A4::100对应的VPN实例路由表,然后将报文转发给CE2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows版本的Redis(新版本的GitHub地址)

Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型 Redis官网地址:Redis 关于Windows版本 Redis目前提供源码、Docker镜像、云版三种下载形…

利用@Retryable注解实现重试机制

Retryable 它可以作用在方法上&#xff0c;当方法抛出指定的异常时&#xff0c;整个方法将会被重新执行。在使用时需要先在pom.xml中导入相关依赖&#xff0c;再在启动类中添加EnableRetry注释以开启重试功能&#xff0c;最后在相应的方法上添加Retryable注释。 引入依赖 <…

【边缘检测】蚁群算法图像边缘检测【含Matlab源码 1189期】

⛄一、获取代码方式 获取代码方式1&#xff1a; 完整代码已上传我的资源&#xff1a;【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】 获取代码方式2&#xff1a; 通过订阅紫极神光博客付费专栏&#xff0c;凭支付凭证&#xff0c;私信博主&#xff0c;可…

12.17 - 每日一题 - 408

每日一句&#xff1a; 我们生活在行动中&#xff0c;而不是生活在岁月里;我们生活在思想中&#xff0c;而不是生活在呼吸里。 数据结构 1 在有向图G的拓扑序列中&#xff0c;若顶点Vi在顶点Vj之前&#xff0c;则下列情形不可能出现的是______ A.G中有弧<Vi,Vj>B.G中有…

sqli-labs 通关笔记详解 Less1 - Less10

文章目录GET显错注入流程前置知识注入步骤GET盲注基本流程前置知识注入步骤Less - 1Less - 2Less - 3Less - 4Less - 5Less - 6Less - 7Less - 8Less - 10做sqli-labs靶场之前建议补一下基础 SQL注入简介和注入方法教学 Web安全基础-SQL MySQL SQLMAP工具 详细使用方法 GET显…

动态规划问题——换钱的最少货币数

题目&#xff1a; 给定数组arr&#xff0c;arr中所有的值都为正数且不重复。每个值代表一种面值的货币&#xff0c;每种面值的货币可以使用任意张&#xff0c;在给定一个整数aim&#xff0c;代表要找的钱数&#xff0c;求组成aim的最少货币数。 示例&#xff1a; arr [5,2,…

自动生成MySQL DDL建表语句

简介项目中大部分情况下都是使用MySQL数据&#xff0c;而且主要使用的数据库类型是char、varchar、date、datetime、timestamp、int、tinyint等几种常见的数据类型&#xff1b;而且进行表设计时&#xff0c;一般都要出一份表设计文档&#xff0c;例如表设计模板如下因为有了如此…

[附源码]Nodejs计算机毕业设计基于移动端的药方收集系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

【Spring】一文带你吃透IOC容器技术

目录 一、前言 二、IOC容器技术 1、ioc概念 2、DI依赖注入 2.1、构造注入依赖 2.2、setter注入依赖 3、ioc底层实现 4、基于xml配置声明Bean以及使用 4.1、根节点标签beans 4.2、声明Bean 4.3、Bean的使用 5、面向接口编程 5.1、新增接口IOrderService 5.2、Order…

非零基础自学Golang 第11章 文件操作 11.2 文件基本操作 11.2.2 文件读取

非零基础自学Golang 文章目录非零基础自学Golang第11章 文件操作11.2 文件基本操作11.2.2 文件读取第11章 文件操作 11.2 文件基本操作 11.2.2 文件读取 想要读取文件可以使用os库中的Read接口&#xff1a; func (f &#xff0a;File) Read(b []byte) (n int, err error)Re…

RCNN网络源码解读(Ⅳ) --- 训练SVM二分类模型的准备过程

目录 1.回忆上一讲及本讲我们要做什么 2.回顾finetune是怎么训练的&#xff08;finetune.py&#xff09; 3. 训练SVM二分类模型 &#xff08;linear_svm.py&#xff09; 3.1 load_data 3.2 custom_classifier_dataset.py 3.3 custom_batch_sampler.py 3.4 hinge_loss 1…

python制作问题搜索解答器,从此学习无忧

前言 大家早好、午好、晚好吖 ❤ ~ 今天博主给大家带来一个问题搜索解答器&#xff01;&#xff01; 需要素材 以及一双慧手和一个灵活的脑子~ 效果展示 代码展示 导入模块 import requests import tkinter as tk from tkinter import ttk import webbrowserdef search(wor…

北京车牌那么难摇为什么还能那么受欢迎?

在北京生活的人来说一块北京车牌真的影响正常生活&#xff0c;特别是这两年的疫情反复...&#xff0c;面对房贷房租&#xff0c;衣食住行&#xff0c;就算外面世界再纷纷扰扰&#xff0c;也要面对...所以在北京生活没有一辆北京车牌汽车真的很麻烦。 对于在北京生活的人来说就…

【C语言刷题】PTA基础编程题目集精选

作者&#xff1a;匿名者Unit 专栏&#xff1a; 《C语言刷题》 目录题目精选6-7 统计某类完全平方数6-9 统计个位数字6-10 阶乘计算升级版6-11 求自定类型元素序列的中位数题目精选 6-7 统计某类完全平方数 我们先看一下题目要求&#xff1a; 根据题目给出的要求&#xff1a…

瑞格科技IPO被终止:曾拟募资5.6亿 江振翔三兄弟为实控人

雷递网 雷建平 12月17日浙江瑞格智能科技股份有限公司&#xff08;简称&#xff1a;“瑞格科技”&#xff09;日前IPO被终止。瑞格科技计划募资5.59亿元&#xff0c;其中&#xff0c;2.55亿元用于年产1000万套汽车配件技改项目&#xff0c;9240万元用于年产500万件智能传感器及…

css深度选择器deep

1.为什么要有deep 1.当我们给组件设置scoped的时候&#xff0c;此时我们组件的css样式只会对自己的内容生效&#xff0c;不会对子组件里面的内容生效。 <style lang"scss" scoped> .login-page {min-height: 100vh;background: url(/assets/login-bg.svg) no-r…

大脑网络的图论分析

利用图论测量大脑结构和功能网络的四个步骤: 定义网络节点——在脑电研究中&#xff0c;电极天然形成节点&#xff1b;在磁共振研究中&#xff0c;可以使用不同的脑图谱作为节点或者基于体素水平进行研究估计节点之间的连接性——结构上&#xff0c;可以由DTI计算两个脑区之间…

一文深度剖析扩散模型究竟学到了什么?

Title: <Diffusion Art or Digital Forgery? Investigating Data Replication in Diffusion Models> Paper: https://arxiv.org/pdf/2212.03860.pdf Github: Just get the point. 文章目录导读技术提升动机贡献背景图像检索与复制检测深度学习中的记忆语言模型中的记忆扩…

Linux Qt连接达梦数据库

最近因为工作需要&#xff0c;需要使用Qt连接达梦数据库&#xff0c;在Linux上比较麻烦&#xff0c;首先需要自己编译UnixODBC和Qt的QODBC库&#xff0c;其次还有各种环境配置。这里在安装好后记录一下&#xff0c;以后找起来方便。 先说下我的电脑是麒麟V10系统飞腾的CPU&…

共享SimpleDateFormat的并发问题

1、问题提出 梳理订单逻辑时发现对日期格式进行format的代码有如下写法 OneDateUtil中定义了一个全局static的SimpleDateFormat对象。SimpleDateFormat对象不是线程安全的&#xff0c;在多线程环境下容易造成数据转换和处理错误。 2、为什么SimpleDateFormat线程不安全 Sim…