SCI论文(www.lunwensci.com)
摘 要: 网络通信领域的发展促进了传统网络架构的新一代变革,对相关网络技术的分析能够对网络变革提供一定的研究 思路。文章通过对当前在网络通信领域的热门技术 SR 与 SDN 的原理进行探讨,基于 SDN 的特点以及 SR 的相关技术,对两 种分段路由实现的方式(基于 IPv6 或基于 MPLS)的利弊进行分析,探索了基于 IPv6 的分段路由与 SDN 结合的道路。
Technical Analysis of Combination of IPv6 Based Segmented Routing and SDN
MENG Fanteng1. XIN Junye1. XIN Shaozong2
(1 .Shandong University of Science and Technology, Tai'an Shandong 271000; 2.Weifang University of Science and Technology, Shouguang Shandong 262700)
【Abstract】:The development of the field of network communication has promoted a new generation of changes in the traditional network architecture. The analysis of relevant network technologies can provide some research ideas for the network transformation. This paper discusses the principle of SR and SDN, which are popular technologies in the field of network communication at present. Based on the characteristics of SDN and the relevant technologies of SR, it analyzes the advantages and disadvantages of two ways of implementing segmented routing (based on IPv6 or MPLS), and explores the way of combining IPv6 based segmented routing with SDN.
【Key words】:network communications;SR;IPv6;MPLS;SDN
0 引言
在网络通信领域, 由于互联网的飞速发展,社会对 于网络通信的速率和质量都有更高的要求。基于加快网 络转发速率的需求,文章分析了传统网络中使用标签转 发的优点与不足,深入研究了分段路由的转发机制,在 整合现有体系的基础之上,结合 SDN 转控分离,集中 控制的优势,讨论 SDN 与 SRv6 结合的实现方式,为 数字社会构建新的网络基础。
1 SDN 的发展现状
SDN 在不断的发展,网络架构在原始 SDN 架构的 基础上,出现了多样化的趋势 :
(1) 原始的 SDN 架构为控制平面和数据平面完全 分离。路由的选路和计算集中在控制器上,设备只实现 数据转发的物理部分。
(2)在 SD-WAN 服务中,虽然控制整个网络的组 件集中在控制器上,但控制平面保留在设备上,以便设 备可以相对独立的运行。
(3)增量型 SDN 网络是将现有网络进行拓展,现 有设备向 SDN 演进思路,设备保留部分控制功能,把 部分需要集中控制的功能放到控制器上去处理,强调设 备平滑演进能力。
2 SDN 架构
2.1 SDN 架构的三个特点
SDN 技术具有转控分离、集中控制、开放接口的 特点 :
(1) 转控分离 :网元的控制平面位于控制器上, 控制器负责协议计算和流表生成 ;转发平面仅在网络 设备上。
(2)集中控制 :设备网元通过控制器管理和分发流 量表,因此无需逐个操作设备,只需配置控制器即可。
(3)开放接口 :第三方应用只需要通过控制器提供 的开放接口,通过编程定义新的网络功能,然后在控制 器上运行即可 [1]。
2.2 SDN 架构的转控分离
在开放网络基金会(ONF)的概念中, SDN 是指 一个将控制平面与数据平面分开,并且可编程的网络架 构。举一个简单的例子,如果某人要从家到某地旅游, 他首先要思考,查找并选择正确的路径,然后才能去往 目的地。查找和选择路径这个过程相当于控制平面的路 由接受与传递,而动身去往目的地的这个过程相当于数 据平面的数据包的转发过程。在一个网络系统中,首先 由控制平面执行网络协议的交互动作,并通过相应协议 算法进行路由计算由此产生多个路由条目,最后将路由 条目下发到转发平面,指导转发平面进行转发。
在传统网络中,每个网络设备上都具有控制层面与 数据平面。而在 SDN 网络中,控制平面和数据平面分 离 [1],不是所有的设备都具有控制层面,控制层面集中 在 SDN 控制器上。
3 SR 段路由技术
3.1 使用标签加快转发速度
在传统网络转发过程中,想要加快网络的转发速 度,在各设备获取到路由表的基础上,可以借助标签来 加快网络的转发速度。标签分发协议给设备添加一个 标签表并进行维护,标签的作用是加快数据包的转发速 度,当设备收到去往某个地址的报文时,如果标签表中 具有该地址对应的表项,会将该报文打上标签,转发给 下一个设备,中间设备收到带有标签的报文时,会根据 自己的标签表将报文的标签进行更换,并且转发给下一 个设备,最终报文将要到达目的地时(次末跳设备,即 与目的设备相邻的,转发路径上经过的除目的地址网段 设备外最后一台设备), 设备在发现自己是次末跳设备 后,会将标签剥离,发送给目的设备,目的设备收到 的是一个不带标签的数据包,它可以直接查看转发表 (FIB 表)进行转发。这样整个转发路径都通过标签进 行转发,转发时直接查找标签表,源和目的之间形成了 一条标签隧道,大大加快了网络的转发速度。
3.2 使用标签的不足
通过建立和维护标签表,加快了网络的转发速度。 然而,由于物理设备需要多维护一个表项,占用了系统 资源 ;同时通过打标签将数据报文迭代进隧道的方式进 行转发,不同站点与站点之间有不同的隧道,客观上会
使域间网络互连复杂化 ;MPLS 只有 20bit 的标签空间, 且标签字段、长度固定,缺乏可扩展性,导致很难满足 未来业务的网络编程需求 [2]。
3.3 Segment Routing 的概念
SR 是一种只需要在源节点给报文增加一系列的段 标识,便可指导报文转发的技术方案。它在现有网络的基 础上进行过渡性的扩展,提供具有可编程性的网络。SR 的核心思想是将报文转发路径分割成不同的片段,并 在从路径开始时向报文中插入分段数据,而中间结点 则只需根据报文里所包含的分段数据转发即可 [4]。而 Segment 则是中间节点可以根据所接收的报文而进行 的操作,比如通过较小的路径转发报文达到目的,或者 通过特定的端口转发报文,把报文转发到特定的技术 应用中。Segment 使用 SID(Segment ID) 进行标识, 它的格式取决于具体的技术实现,例如可以使用 MPLS 标签、MPLS 标签空间中的索引、IPv6 地址。Segment List 标签栈则是目的地址前缀 SID/ 节点 SID 和邻接 SID 有序列表的排序集合,用于标识一条完整的标签交 换路径 LSP(Label Switched Path)[3]。
3.4 Segment Routing 的实现
在 SRv6 网络中,节点角色大致分为三类 :源节点、 中间节点、尾节点 [4]。SR 将网络中的目的地址前缀 / 节 点和邻接定义为段,并且为这些段分配 SID。通过对 Adjacency SID(邻接段) 和 Prefix/Node SID(目的 地址前缀 / 节点段) 进行有序排列(Segment List), 就得到一条转发路径 [3]。
SR 技术中定义了三种基本的 Segment,分别是邻接 段(Adjacency Segment), 前缀段(Prefix Segment) 和节点段(Node Segment) [3]。邻接段用于标识网络 中某个节点的某个邻接,即代表这条链路 ;前缀段用于 标识网络中某个目的地址前缀,代表目的地址 ;节点 段则是特殊的前缀段,用于标识特定的节点,在节点的 Loopback 接口下配置 IP 地址作为前缀,这个节点的 Prefix SID 实际上就是 Node SID[5]。
在 SDN 网络中, SDN 控制器通过收集网络中所有的 前缀 SID 和邻接 SID,可以计算出网络整体的拓扑结构。 Prefix Segment 代表目的地址,Adjacency Segment 代 表数据包的外发链路, 可以分别类似于传统 IP 转发中 的目的 IP 地址和出接口。在 IGP 区域内,网元设备使 用扩展 IGP 消息将自身的 Node SID 以及 Adjacency SID 进行泛洪,这样任意一个网元都可以获得其他网元 的信息。
SR 使用标签确定路由数据包所需要经过的网络路径,标签和拓扑信息可以借助路由协议延伸并扩散至整 个系统中。在 SDN 网络中, 可以借助 SDN 控制器来集 中收集并下发网络的标签和拓扑信息, SDN 通过按序 组合前缀(节点) SID 和邻接 SID,可以构建出网络内 的任何路径。在路径中的每一跳,使用栈顶段信息区分 下一跳。段信息按照顺序堆叠在数据头的顶部。当栈顶 段信息是本节点的标识时,接收节点弹出顶部段并执行 下一个段所需的任务。
如图所示,假设数据包要从 A 设备发往 D 设备, SDN 控制器通过各种方式(例如 BGP-LS) 收集全局网 络拓扑信息和 TE 信息,在获知了数据包的目的地址之 后,通过集中算路或者手工指定一条流量路径,这里我 们指定的流量路径为 :A 设备 ->B 设备 ->C 设备 ->D 设 备, SDN 控制器将需要经过的链路的 SID(即邻接段 Adjacency SID)按顺序填入标签栈(Segment List), 然后将携带该 Segment List 的算路结果通过信令组件 (例如 PCEP, BGP)返回给 A 设备, A 设备收到标签 栈后,通过栈顶标签 102 得知该数据包通过 SID 为 102 的链路转发,并在转发前将该标签出栈。B 设备收到之 后,通过 SID 为 203 的链路转发并且将标签出栈,以 此类推。由于标签栈中的 SID 已经全部出栈, D 设备最 后收到的数据包中并不包含 SID 信息, 即原始数据。通 过这种方法可以严格指定任意一条显式路径,能够更好 的配合实现 SDN,从而满足流量工程的需求,因此被 称为 SR-TE(Traffic Engine)。
Segment Routing 也有借助 IGP 使用算法计算最 短路径的场景(SR-BE, 基于 Prefix Segment), 虽然 能够指导报文按指定的路径转发,但是这种场景不能集 中进行路径调整和流量调优, 并不适合由 SDN 控制器 统一计算和分发指令,此无法与 SDN 很好的结合,此 处不做赘述。
4 IPv6 在段路由上的应用
SR 有两个数据平面 :MPLS 和 IPv6.当 SR 应用于 MPLS 数据平面时,称为 SR-MPLS,使用 MPLS 标签作 为 SID[3]。SR 应用于 IPv6 数据平面时,称为 SRv6. 使 用 IPv6 地址作为 SID。SR-MPLS 尽管能够带来优异的 可编程性能,但是由于 SR-MPLS 是基于 MPLS 封装的, 并且 MPLS 的标签长度只有 20 bit 且固定,所以 SR- MPLS 的可扩展性欠佳,而基于 IPv6 数据平面的 SRv6 不但继承了 SR-MPLS 的全部优势,也同时带来了良好 的可扩展性。
在 SRv6 中, SID 是以 IPv6 地址的方式存在的,是 一个特殊的 IPv6 地址。SID 将以 IPv6 地址的形式被设 备学习到全局路由表上,并对这些路由表项进行维护。 当 SRv6 节点接受 IPv6 报文时,设备将按照 IPv6 报文 的目的地址搜索全局路由表项,一旦匹配到了相应的 SID,则交给 SID 指定的行为加以处理,或者进行常规 的路由转发操作。
IPv6 可以添加扩展报头, 其位置在 IPv6 报文头和数 据内容之间,可以添加 SRv6 的扩展报头(SRH :Segment Routing Header),SRH 最主要的内容就是 Segment List,Segment List 就是对段和网络节点进行有序排列 得到的一条转发路径。数据包转发时,根据 Segment Left(到达目的节点前仍然应当访问的中间节点数) 和 Segment List(段的有序列表) 确定 IPv6 目的地址的 信息,从而指导报文的转发路径和行为,转发过程类似 于第三部分我们描述的方式,将标签换成了 SID,标签 栈变成了 Segment List。
在 SDN 网络中, SDN 控制器通过信息收集和计算, 对网络进行集中控制,数据包想要到达目的地,首先将 数据发送给控制器,控制器收到之后进行计算获得流量 路径,然后给数据包添加扩展报头 SRH,在 SRH 中存储 Segment List 信息, 这里的 Segment List 是多个 SID 的有序列表,我们说过 SRv6 中 SID 是以 IPv6 地 址的形式出现的,所以 Segmnet List 即为多个 IPv6 地 址的有序列表。添加完数据包之后,控制器将数据包返 回给转发设备, 设备根据 SRH 中的 Segment Left 和 Segment List 字段对报文执行相应的行为。
5 结语
SRv6 进一步改善了网络协议类型,并具备了优异 的扩展性和可编程特性,能适应更多对新服务的个性化 要求,并提供高可靠性,在云服务中具有良好的使用发 展前景。与 SDN 结合之后,利用 SDN 转控分离,集中 控制的特性,简化了配置,还可以更好的实现对网络的 集中调控,规划流量路径,指导流量转发。
参考文献
[1] 李可欣,王兴伟,易波,等.智能软件定义网络[J].软件学报, 2021.32(1):118-136.
[2] SDNLAB君 .MPLS/IP与SRv6:困局与破局-51CTO. COM[OL].(2022-11-22)[2023-02-05].https://www.51cto. com/article/740355.html
[3] baynk.HC110110036.SR基本原理_baynk的博客-CSDN 博客[OL].(2020-03-14)[2023-02-05].https://blog.csdn.net/ u014029795/article/details/104853723
[4] 张帅,曹畅,唐雄燕.基于SRv6的算力网络技术体系研究[J]. 中兴通讯技术,2022.28(1):11-15.
[5] 石鸿伟,黄凤芝.基于关键节点的分段路由标签栈压缩算法 [J].电子技术与软件工程,2020(12):39-43.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/57761.html