【技术实现步骤摘要】
一种段路由扩展报文转发方法
[0001]本专利技术属于计算机网络
,尤其涉及面向IPv4的段路由转发方法。
技术介绍
[0002]随着云计算、物联网等技术的发展和应用推广,超大带宽需求、大规模设备连接等给传统IP网络运营带来了巨大挑战。基于IPv6的段路由技术(SRv6,Segment Routing for IPv6)支持灵活计算和实施路径,同时极大简化网络配置,可以让用户轻松的控制网络流的传输路径,在软件定义网络、流量工程、网络服务链等
有广泛应用前景。
[0003]但是SRv6技术与IPv4协议并不兼容,只能应用于IPv6网络,无法应用于IPv4网络。虽然当前大部分网络都支持IPv6,但是在实际运行网络中特别是数据中心网络中仍然存在不支持SRv6的IPv4网络。
[0004]目前关于SRv6技术的研究主要有:IETF(Internet Engineering Task Force)RFC8402基于IPv6协议定义了段路由的技术架构;IETF RFC8754基于IPv6协议定义了段路由报文头SRH(Segment Routing Header);IETF RFC8986基于RFC8754的SRH定义了19种段路由的SID(Segment ID)指令;IETF RFC8354以及Kushwaha A等人(参见Kushwaha A,Sharma S,Gumaste A.A Survey on Segment Routing with Emphasis on Use Cases in La ...
【技术保护点】
【技术特征摘要】
1.一种段路由扩展报文转发方法,其特征在于包括以下步骤:第一步,设计面向IPv4的段路由扩展报文头,方法是:1.1设计面向IPv4的段路由扩展报文头SRHv4,SRHv4由Next Header、Hdr Ext Len、Routing Type、Seg Left、Last Entry、Flags、Tag、Segment List[m]、Optional TLV共9个字段组成;Next Header指示SRHv4报文头封装的内层报文的类型;Segment List[m]标识段路由中一个段的Segment ID,0≤m≤M,且M、m为正整数;Hdr Ext Len指示SRHv4报文头不包括前64bit的长度;Routing Type指示当前报文的路由类型;Seg Left指示当前要使用的Segment List元素是Segment List[m];Last Entry指示Segment List中最后一个元素的索引;Flags是预留标志位;Tag指示报文所属报文组的组号;Optional TLV为预留字段;1.2对IPv4报文头格式中与SRHv4相关的字段进行重定义,包括:Total Length表示从IPv4 Header头开始直到原始报文Payload结束的报文总长度;Protocol指示IPv4 Header后的报文类型;Destination Address指示报文的目的地址;1.3设计IPv4段路由封装报文格式,方法是:使用SRHv4报文头和IPv4报文头对原始报文Payload进行封装,即在原始报文Payload的外面包SRHv4报文头,再在SRHv4报文头外面包IPv4报文头;封装后的报文为IPv4段路由扩展报文;1.4设计IPv4段路由SID,即Segment List中的元素,用于指示转发设备对当前报文的转发方式;定义2种SID:End:指示将SRHv4中Seg Left字段指示的Segment List元素值拷贝到Destination Address字段中,将Seg Left字段值减1;End.D:指示对IPv4段路由扩展报文中的SRHv4封装报文进行解封装,剥离IPv4报文头和SRHv4,恢复出原始报文Payload;第二步,构建IPv4段路由转发系统,方法是:IPv4段路由转发系统由一个网关节点、N个报文转发节点组成;网关节点位于外部网络和IPv4段路由网络之间,是外部网络报文进入IPv4段路由网络的入口节点,其上部署有配置文件、初始化模块、报文构建发送模块;报文转发节点是IPv4段路由网络中具备IPv4段路由功能的实施报文转发功能的专用设备或通用服务器,其上部署有报文转发处理模块;配置文件存储IPv4段路由转发系统运行所需的参数,包括:网络流分段传输数据个数NF;NF个网络流分段传输数据;段路由网络中报文转发节点个数N;N个报文转发节点的SID配置数据;NF和N均为正整数;网络流分段传输数据格式为flow_sid_str,flow_sid_str包含7个域:网络流的源IP地址sip,网络流的目的IP地址dip,网络流的源端口sport,网络流的目的端口dport,网络流的协议号proto,网络流分段传输的段的个数sn,网络流分段传输的段列表sid_list,sid_list为段SID的数组,共有sn个元素,每个元素存储一个SID;报文转发节点的SID配置数据格式为sid_config_str,sid_config_str包含2个域:以IPv4地址形式表示的End对应的SID值即End_sid,以IPv4地址形式表示的End.D对应的SID值即End.D_sid;初始化模块与配置文件、报文构建发送模块以及N个报文转发节点上的报文转发处理模块相连;初始化模块从配置文件读取网络流分段传输数据个数NF,按顺序读取NF个网络流分段传输数据并存入网络流分段传输数据数组flow_sid_array,flow_sid_array中每个
元素存储一个网络流的分段传输数据flow_sid_str,共NF个元素,读取段路由网络转发节点个数N,按顺序读取N个报文转发节点SID配置数据并存入转发节点SID配置数据数组sid_config_array,sid_config_array中每个元素存储一个SID配置数据sid_config_str,共N个元素,将NF和flow_sid_array发送给报文构建发送模块,将N个转发节点SID配置数据分别发送给N个转发节点上的报文转发处理模块,即将第n个报文转发节点SID配置数据sid_config_array[n]发送给第n个转发节点上的报文转发处理模块,1≤n≤N,且N、n为正整数;报文构建发送模块与初始化模块、外部网络相连;报文构建发送模块从初始化模块接收NF和flow_sid_array;报文构建发送模块从外部网络接收要进行段路由的原始IPv4报文,根据原始IPv4报文的源IP、目的IP、源端口、目的端口以及网络协议号,从flow_sid_array中查找对应网络流的分段传输数据,根据该分段传输数据、原始IPv4报文以及第一步表2中的IPv4报文头部分格式构建该网络报文的IPv4报文头,根据该分段传输数据、原始网络报文以及SRHv4格式,构建该网络报文的SRHv4报文头,最后根据IPv4段路由扩展报文,将原始报文、SRHv4报文头和IPv4报文头拼接构建IPv4段路由扩展报文,并发送至IPv4段路由网络;报文转发处理模块部署于IPv4段路由网络的报文转发节点,与初始化模块、所属报文转发节点上的IPv4转发部分相连,IPv4转发部分是转发节点上用于完成IPv4转发功能的部分;第n个报文转发节点上的报文转发处理模块从初始化模块接收转发节点SID配置数据sid_config_array[n],第n个报文转发节点上的报文转发处理模块接收第n个转发节点SID配置数据sid_config_array[n];从IPv4段路由网络接收网络报文,根据IPv4报文头格式获取Protocol字段;根据Protocol字段判断网络报文是否为IPv4段路由扩展报文,如果不是,将网络报文发送给IPv4转发部分,如果是,根据IPv4段路由扩展报文格式和SRHv4格式,获取网络报文的当前报文SID即Segment List的第Seg Left个元素,根据当前报文SID查找数值相等的本地SID,如果查找到的SID为END对应的SID,则按照END的指示修改报文的IPv4报文头和SRHv4报文头;如果查找到的SID为END.D对应的SID,则按照END.D的指示修改报文的IPv4报文头和SRHv4报文头;将处理后的网络报文发送给IPv4转发部分;第三步,初始化配置文件,方法是:确定网络流分段传输数据个数NF,以及每个网络流分段传输数据flow_sid_str,分别将NF和NF个flow_sid_str写入配置文件;确定网络中报文转发节点个数N,以及每个报文转发节点SID配置数据sid_config_str,将N和N个sid_config_str写入配置文件;第四步,初始化模块初始化IPv4段路由转发系统,将NF和flow_sid_array发送给报文构建发送模块;并将sid_config_array的N个元素分别发送给对应的转发节点,即将sid_config_array[1]发送给第1个转发节点,
…
,将sid_config_array[n]发送给第n个转发节点,
…
,将sid_config_array[N]发送给第N个转发节点;第五步,IPv4段路由转发系统的报文构建发送模块和N个报文转发处理模块并行配合工作,完成IPv4段路由扩展报文的转发,方法是:报文构建发送模块按照5.1所述流程从初始化模块接收网络流分段传输数据个数NF以及网络流分段传输数据数组flow_sid_array;同时从外部网络接收IPv4报文pkt,根据pkt的源IP、目的IP、源端口、目的端口和协议号从flow_sid_array中找出对应的元素,令该元素为flow_sid_str_pkt,根据flow_sid_str_pkt和IPv4段路由扩展报文头格式构建SRHv4
报文头;从pkt中根据IPv4报文头格式获取IPv4报文头,令为IPv4Header,修改IPv4Header中的Total Length、Protocol和Destination Address字段;根据IPv4段路由扩展报文格式,将IPv4Header、SRHv4和原始报文pkt封装为IPv4段路由扩展报文pkt_sr,将pkt_sr发送至IPv4段路由网络;同时N个报文转发处理模块均按照5.2所述流程从IPv4段路由网络接收IPv4段路由扩展报文pkt_sr,从pkt_sr中按照IPv4段路由扩展报文所述格式获取IPv4报文头IPv4Header和IPv4段路由扩展报文头SRHv4,根据SR...
【专利技术属性】
技术研发人员:原玉磊,王宝生,赵宝康,赵锋,彭伟,时向泉,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。