CN114650196A - 一种vlan接口数据报文转发方法、装置、设备及存储介质 - Google Patents
一种vlan接口数据报文转发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114650196A CN114650196A CN202011494797.7A CN202011494797A CN114650196A CN 114650196 A CN114650196 A CN 114650196A CN 202011494797 A CN202011494797 A CN 202011494797A CN 114650196 A CN114650196 A CN 114650196A
- Authority
- CN
- China
- Prior art keywords
- vlan
- interface
- data message
- index value
- arp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000015654 memory Effects 0.000 claims description 20
- 230000006978 adaptation Effects 0.000 abstract description 5
- 238000012356 Product development Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100034761 Cilia- and flagella-associated protein 418 Human genes 0.000 description 1
- 101100439214 Homo sapiens CFAP418 gene Proteins 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种VLAN接口数据报文转发方法、装置、设备及存储介质,通过在上层应用创建VLAN接口并生成对应的VLAN接口索引值,在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口,将数据报文从第二物理接口发送出去。本发明摒弃了对底层虚网卡的依赖,不需要在底层收发包分流,完全省掉了驱动层适配代码的工作量和人力投入,提升了产品开发和适配效率。
Description
技术领域
本申请属于数据转发技术领域,尤其涉及一种VLAN接口数据报文转发方法、装置、设备及存储介质。
背景技术
传统的网络设备VLAN接口实现都是通过一个VALN接口适配一个虚网卡来实现,VLAN接口承载在实际物理接口上,物理接口收到网络流量后,在底层进行目的MAC判断,判断是到VLAN接口的流量,进行分流到创建VLAN接口时所创建的虚网卡上,上层报文转发处理模块通过调用驱动的接口从队列中读取报文进行处理,实现报文的转发或者对报文的响应。
随着互联网的快速发展、5G网络的普及,网络承载的通信流量在持续快速发展,实时响应的音频、图像、视频的使用快速增长,驱动了网络服务质量需求的快速增长。人们期望高速高效高质量的网络设备,随之出现了数据平面开发套件DPDK(Data PlaneDevelopment Kit)技术。DPDK主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率,越来越多网络设备厂商采用了DPDK技术来开发高性能的网络设备。DPDK使用了轮询而不是中断来处理数据包,在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,这样节省了大量的CPU中断时间和内存拷贝时间。
但是DPDK技术当前只提供了物理接口、聚合接口的接口绑定功能,轮询直接将数据包存入设置的大页内存,实现报文高效转发,而实际网络业务中使用比较频繁的VLAN接口却没有较好的解决方案。目前应用DPDK的网络设备,对于VLAN之间的数据转发一般是通过VLAN接口适配虚网卡,DPDK绑定虚网卡来实现。然而VLAN接口适配虚网卡,需要根据VLAN接口业务适配底层驱动,底层逻辑复杂、工作量大,风险高、投入时间长。
发明内容
本申请的目的是提供一种VLAN数据报文转发方法、装置、设备及存储介质,通过上层应用实现数据转发,避免了需要配置底层驱动带来的工作量大,投入时间长的问题。
为了实现本申请的目的,技术方案如下:
一种VLAN数据报文转发方法,应用于基于上层应用实现数据转发的网络设备,所述VLAN数据报文转发方法,包括:
创建VLAN接口,生成VLAN接口的VLAN ID对应的VLAN接口索引值,在各个物理接口上配置各自承载的VLAN接口,并在ARP学习时将VLAN接口索引值记录在ARP表项,在下发路由时将VLAN接口索引值记录在FIB转发表中;
在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口;
将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,根据目的IP地址查找ARP表,用下一跳MAC地址替换数据报文的目的MAC地址,将数据报文从第二物理接口发送出去。
进一步的,所述在ARP学习时将VLAN接口索引值记录在ARP表项,包括:
物理接口三层UP时,接收直连的主机发出的ARP报文;
承载在物理接口上的VLAN接口学习所述ARP报文,将学习到的IP地址、MAC地址、物理接口的ID、VLAN ID记录在ARP表项,并根据VLAN ID生成对应的VLAN接口索引值,记录在ARP表项。
进一步的,所述在下发路由时将VLAN接口索引值记录在FIB转发表中,包括:
上层应用接收下发路由时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLAN ID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
进一步的,所述在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口之后,还包括:
在接收的数据报文的目的MAC地址是数据报文VLAN ID对应的VLAN接口的MAC地址时,将接收报文接口替换为数据报文VLAN ID对应的VLAN接口。
进一步的,所述生成VLAN接口的VLAN ID对应的VLAN接口索引值,包括:
将VLAN接口对应的VLAN ID与一个固定的阈值相加得到对应的VLAN接口索引值。
本申请还提出了一种VLAN数据报文转发装置,应用于基于上层应用实现数据转发的网络设备,所述VLAN数据报文转发装置,包括:
配置学习模块,用于创建VLAN接口,生成VLAN接口的VLAN ID对应的VLAN接口索引值,在各个物理接口上配置各自承载的VLAN接口,并在ARP学习时将VLAN接口索引值记录在ARP表项,在下发路由时将VLAN接口索引值记录在FIB转发表中;
查表模块,用于在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口;
转发模块,用于将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,根据目的IP地址查找ARP表,用下一跳MAC地址替换数据报文的目的MAC地址,将数据报文从第二物理接口发送出去。
进一步的,所述配置学习模块在ARP学习时将VLAN接口索引值记录在ARP表项,执行如下操作:
物理接口三层UP时,接收直连的主机发出的ARP报文;
承载在物理接口上的VLAN接口学习所述ARP报文,将学习到的IP地址、MAC地址、物理接口的ID、VLAN ID记录在ARP表项,并根据VLAN ID生成对应的VLAN接口索引值,记录在ARP表项。
进一步的,所述配置学习模块在下发路由时将VLAN接口索引值记录在FIB转发表中,执行如下操作:
上层应用接收下发路由时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLAN ID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
进一步的,所述查表模块在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口之后,还执行如下操作:
在接收的数据报文的目的MAC地址是数据报文VLAN ID对应的VLAN接口的MAC地址时,将接收报文接口替换为数据报文VLAN ID对应的VLAN接口。
进一步的,所述配置学习模块生成VLAN接口的VLAN ID对应的VLAN接口索引值,包括:
将VLAN接口对应的VLAN ID与一个固定的阈值相加得到对应的VLAN接口索引值。
本申请还提出了一种电子设备,包括处理器以及存储有若干计算机指令的存储器,所述计算机指令被处理器执行时实现上述VLAN数据报文转发方法的步骤。
本申请还提出了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行,以实现上述VLAN数据报文转发方法的步骤。
本申请提出的一种VLAN数据报文转发方法、装置、设备及存储介质,通过在上层应用创建VLAN接口并生成对应的VLAN接口索引值,不需要将VALN接口收发包承载在虚网卡上,摒弃了对底层虚网卡的依赖;不需要在底层收发包分流,完全省掉了驱动层适配代码的工作量和人力投入,提升了产品开发和适配效率。产品接口收发包仍然全部采用DPDK的高性能网络框架,VLAN接口转发性能依然高效、优秀。本申请VALN接口在功能上与普通三层物理口基本相同,摒弃了和底层驱动的关联,实现更加简单、可移植、易维护。同时打破了DPDK中支持的可用接口索引的限制,可以支持4094个VLAN接口。
附图说明
图1为本申请实施例一种VLAN数据报文转发方法流程图;
图2为本申请实施例网络结构图;
图3为本申请一种VLAN数据报文转发装置结构示意图;
图4为本申请实施例电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请提供的一种VLAN数据报文转发方法,应用于基于上层应用实现数据转发的网络设备。例如基于数据平面开发套件DPDK的网络设备,或其他软件实现数据转发的网络设备。以下以DPDK为例进行说明。由于现有技术VLAN之间的数据转发是通过VLAN接口适配虚网卡来实现,如果采用基于上层应用实现数据转发,就需要根据VLAN接口业务适配底层驱动,但是适配底层驱动,需要很高的开发成本和工作量。同时在DPDK中,支持的可用接口索引是有限的。VLAN ID范围是1-4094,那么对应的VLAN接口也可以对应4094个,那就需要有4094个接口索引,可见无法通过VLAN接口适配虚网卡来实现。
本申请希望在业务应用上层直接创建使用VLAN接口,在上层对底层物理接口收到的报文在业务层分流,同时刷新收发包接口索引,不在底层适配DPDK虚网卡驱动来收发包,同时分配DPDK接口索引。降低了成本和工作量,同时打破了DPDK支持的可用接口索引的限制。
本申请的一个实施例,如图1所示,一种VLAN数据报文转发方法,包括:
步骤S110、创建VLAN接口,生成VLAN接口的VLAN ID对应的VLAN接口索引值,在各个物理接口上配置各自承载的VLAN接口,并在ARP学习时将VLAN接口索引值记录在ARP表项,在下发路由时将VLAN接口索引值记录在FIB转发表中。
网络设备划分VLAN时,通常将物理接口划分为不同的VLAN,在同一个VLAN的物理接口可以相互通信,而不同VLAN的物理接口无法进行通信。为了实现不同VLAN之间的通信,需要在网络设备上配置VLAN接口,实现不同VLAN之间的通信。然而在采用数据平面开发套件DPDK的网络设备上,DPDK并未提供VLAN接口的接口绑定功能,实现VLAN之间的通信需要开发VLAN接口的底层驱动,带来较高的开发成本和工作量。
本实施例在上层应用中创建和配置VLAN,具体地,基于网络设备上需要承载的VLAN创建各个用于存放基本接口信息的VLAN接口的数据结构,网络设备需要承载多少个VLAN就创造多少个VLAN接口的数据结构。本申请的VLAN接口,是没有驱动的逻辑接口,用于存放基本的接口信息,如VLAN ID、IP地址、MAC地址、最大传输单元MTU、接口状态等,接口状态有up和down两种状态。由于本申请并非创建有驱动的VLAN接口,因此创建的VLAN接口并不直接对数据报文进行处理,而仅是提供了VLAN接口索引值,在数据报文的处理时,作为中间参数来协助实现VLAN之间的通信。
在创建各个VLAN接口的数据结构后,需要在各个物理接口上配置各自所承载的VLAN接口。也就是说,本申请在各个物理接口上配置并启用需要应用到的VLAN接口,一个物理接口可以配置一个VLAN接口,也可以配置多个VLAN接口,具体是根据该物理接口实际所接收的数据报文来自不同VLAN的个数来确定。
在一个示例中,如图2所示,本实施例网络中配置了VLAN20和VLAN30,首先创建VLAN20接口和VLAN30接口的数据结构,并生成VLAN20接口和VLAN30接口的接口索引值。VLAN接口索引值的生成,可以根据预设的算法来生成,例如将VLAN接口对应的VLAN ID与一个固定的阈值(32)相加,避免VLAN接口的索引值与DPDK提供的可用的索引冲突,VLAN20接口(VLAN ID的值为20)和VLAN30(VLAN ID的值为30)接口分别对应的VLAN接口索引值分别是52和62。关于VLAN接口索引值的生成,还可以采用其他方法映射为一个VLAN ID唯一对应并且与DPDK提供的可用索引不同的值这里不再赘述。
网络设备物理接口1上连接了主机A,主机A属于VLAN20,在物理接口1上配置并启用VLAN 20接口;物理接口2上连接了主机B,主机B属于VLAN30,在物理接口2上配置并启用VLAN30接口。
需要说明的是,上述示例仅仅表示一种网络结构,本申请并不限于物理接口上配置的VLAN接口数量,根据物理接口实际连接的主机属于不同的VLAN,可以在物理接口上配置并启用多个VLAN接口,这里不再赘述。
地址解析协议ARP(Address Resolution Protocol),是根据IP地址获取MAC地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的MAC地址;收到返回消息后将该IP地址和MAC地址存入本机ARP表中。
本申请在ARP学习时将VLAN接口索引值记录在ARP表项,包括:
物理接口三层UP时,接收直连的主机发出的ARP报文;
承载在物理接口上的VLAN接口学习所述ARP报文,将学习到的IP地址、MAC地址、物理接口的ID、VLAN ID记录在ARP表项,并根据VLAN ID生成对应的VLAN接口索引值,记录在ARP表项。
以图2为例,物理接口1三层UP时(物理接口1物理状态UP并且配置了IP),分别会收到直连的主机A和主机B发出的ARP报文,此时承载在物理接口1上的VLAN20接口,会学习从物理接口1上收上来ARP报文,记录IP地址、MAC地址、物理接口1的ID、VLAN ID、老化时间等,就是所谓的ARP表项内容。进一步的,本申请还根据VLAN ID的值算出VLAN 20的接口索引值,记录在ARP表项中。同样对于物理接口2,也是这样学习ARP报文建立ARP表项。
在网路设备上,路由表RIB(Routing Table,Routing Info Base)和转发表FIB(Forwarding Info Base)是两种不同的表。RIB存储所有的路由信息,所有的路由协议都在这里保存它们的路由,只要路由器上运行的路由协议学到了新路由,就都会放到路由表中。转发表FIB用于判断基于IP包的网络前缀,如何进行转发。对于每一条可达的目标网络前缀,FIB包含接口标识符(接口ID)和下一跳信息。当IP路由从RIB拷贝到FIB时,它们的下一跳信息被明确地分析出来,包括下一跳的具体端口,以及如果到下一跳有多条路径时,每条路径的具体端口。因此通过目的IP查找FIB表,就可以找到对应的出接口。
本申请在下发路由时将VLAN接口索引值记录在FIB转发表中,包括:
上层应用接收下发路由时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLANID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
具体的,静态路由或者动态路由下发到DPDK数据面生成FIB表时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLANID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
步骤S120、在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口。
网络设备的物理接口会接收数据报文,本申请仅考虑对带有VLAN ID的数据报文进行处理,对于非VLAN数据报文不是本申请考虑的范围,因此接收的数据报文中必然带有VLAN ID,从而可以确定数据报文VLAN ID对应的拟VLAN接口,该VLAN接口的VLAN ID与数据报文VLAN ID的VLAN ID相同。
在网路设备上,路由表RIB(Routing Table,Routing Info Base)和转发表FIB(Forwarding Info Base)是两种不同的表。RIB存储所有的路由信息,所有的路由协议都在这里保存它们的路由,只要路由器上运行的路由协议学到了新路由,就都会放到路由表中。转发表FIB用于判断基于IP包的网络前缀,如何进行转发。对于每一条可达的目标网络前缀,FIB包含接口标识符(接口ID)和下一跳信息。当IP路由从RIB拷贝到FIB时,它们的下一跳信息被明确地分析出来,包括下一跳的具体端口,以及如果到下一跳有多条路径时,每条路径的具体端口。因此通过目的IP查找FIB表,就可以找到对应的出接口。
静态路由或者动态路由下发到DPDK数据面生成FIB表时,会记录VLAN接口索引值。因而,在查询路由时,根据目的IP地址前缀,可以查找到出接口,由于本实施例数据报文在不同的VLAN之间通信,所查找到的出接口就是通信对象VLAN对应的VLAN接口,进而得到出接口对应的VLAN接口索引值。
又由于ARP学习的过程中,ARP表项记录了物理接口的ID以及VLAN接口索引值,因此可以根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口,也就是确定数据报文发送出去的真实物理接口。
本实施例将网络设备接收数据报文的物理接口称为第一物理接口,而网络设备在转发该数据报文时,将数据报文发送出去的物理端口是第二物理接口。
如图2所示,物理接口1接收主机A发出的数据报文,数据报文的VLAN是VLAN20,物理接口1启用了VLAN20接口,数据报文的目的IP是访问主机B,主机B属于VLAN30。查找转发表FIB,由于目的IP属于VLAN30,因此查找到出接口就是VLAN30接口,其对应的VLAN接口索引值是62。在ARP表项中,VLAN接口索引值62对应的物理接口是物理接口2,从而确定了第二物理接口。
步骤S130、将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,根据目的IP地址查找ARP表,用下一跳MAC地址替换数据报文的目的MAC地址,将数据报文从第二物理接口发送出去。
具体地,网络设备在进行转发时,使用出接口MAC替换报文的源MAC地址,用下一跳MAC替换报文的目的MAC地址。
如图2所示,将数据报文从物理接口2发送到下一跳时,将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,也就是VLAN30接口的MAC地址。用下一跳MAC(也就是主机B的MAC地址)替换报文的目的MAC地址,从而将数据报文从主机A发送给主机B,实现跨越VLAN的数据通信。
应用了DPDK的网络设备,在收到数据报文时,由于本申请物理接口上的配置并启用的VLAN接口并不带有底层驱动,因此VLAN接口无法如底层虚拟网卡一样对接收的数据报文进行处理,因此本申请在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口之后,还包括:
在接收的数据报文的目的MAC地址是数据报文VLAN对应的VLAN接口的MAC地址时,将接收报文接口替换为数据报文VLAN对应的VLAN接口。
以物理接口1为例,当接收报文的目的MAC地址是到VLAN20接口的MAC地址时,将接收报文接口替换为数据报文VLAN对应的VLAN接口,及VLAN20接口。从而让上层业务无感知的认为报文就是从VLAN接口收上来的,如同从底层虚拟网卡接收,用户感知就是从VLAN接口收到报文。
本申请技术方案,不需要将VALN接口收发包承载在虚网卡上,摒弃了对底层虚网卡的依赖;不需要在底层收发包分流,完全省掉了驱动层适配代码的工作量和人力投入,提升了产品开发和适配效率。产品接口收发包仍然全部采用DPDK的高性能网络框架,VLAN接口转发性能依然高效、优秀。本申请VALN接口在功能上与普通三层物理口基本相同,摒弃了和底层驱动的关联,实现更加简单、可移植、易维护。
本申请的一个实施例,本实施例可以与上述一个或者多个实施例中各个可选方案结合,图2为例,进一步阐述本申请一种VLAN数据报文转发方法,包括:
创建VLAN20接口、VLAN30接口,通过加法运算生成VLAN20接口、VLAN30接口对应的VLAN接口索引值52、62。
在物理接口1上配置其承载的VLAN20接口,在物理接口2上配置其承载的VLAN30接口。
物理接口1接收数据报文(SIP100.1.1.2,DIP200.1.1.2),该数据报文所携带的VLAN ID是VLAN20,物理接口1上承载了VLAN20接口,在数据报文是ARP报文时,目的MAC是VLAN20接口的MAC,则进行ARP处理,ARP学习表项记录VLAN20接口的索引值52(同理,物理接口2通过ARP学习,也记录了VLAN30接口的索引值62);在数据报文是IP报文时,将数据报文的接收报文接口替换为VLAN20接口。
查找FIB表,根据数据报文的目的IP(200.1.1.2,属于VLAN30)查找出的出接口对应的VLAN30接口,其对应的接口索引值是62。
根据出接口对应的VLAN30接口索引值62,查找ARP表项,获得真正的承载的物理接口为物理接口2。
替换报文源mac地址为VLAN30接口的MAC地址,然后根据目的IP地址查找ARP表,替换报文目的MAC地址(主机B的MAC地址),然后从物理接口2发送出去。
本申请的一个实施例,如图3所示,还提供了一种VLAN数据报文转发装置,应用于基于上层应用实现数据转发的网络设备,所述VLAN数据报文转发装置,包括:
配置学习模块,用于创建VLAN接口,生成VLAN接口的VLAN ID对应的VLAN接口索引值,在各个物理接口上配置各自承载的VLAN接口,并在ARP学习时将VLAN接口索引值记录在ARP表项,在下发路由时将VLAN接口索引值记录在FIB转发表中;
查表模块,用于在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口;
转发模块,用于将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,根据目的IP地址查找ARP表,用下一跳MAC地址替换数据报文的目的MAC地址,将数据报文从第二物理接口发送出去。
关于本申请一种VLAN数据报文转发装置的具体限定可以参见上文中对于一种VLAN数据报文转发方法的限定,在此不再赘述。上述一种VLAN数据报文转发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个具体的实施例中,所述配置学习模块在ARP学习时将VLAN接口索引值记录在ARP表项,执行如下操作:
物理接口三层UP时,接收直连的主机发出的ARP报文;
承载在物理接口上的VLAN接口学习所述ARP报文,将学习到的IP地址、MAC地址、物理接口的ID、VLAN ID记录在ARP表项,并根据VLAN ID生成对应的VLAN接口索引值,记录在ARP表项。
在另一个具体的实施例中,所述配置学习模块在下发路由时将VLAN接口索引值记录在FIB转发表中,执行如下操作:
上层应用接收下发路由时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLAN ID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
在另一个具体的实施例中,所述查表模块在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口之后,还执行如下操作:
在接收的数据报文的目的MAC地址是数据报文VLAN ID对应的VLAN接口的MAC地址时,将接收报文接口替换为数据报文VLAN ID对应的VLAN接口。
在另一个具体的实施例中,所述配置学习模块生成VLAN接口的VLAN ID对应的VLAN接口索引值,包括:
将VLAN接口对应的VLAN ID与一个固定的阈值相加得到对应的VLAN接口索引值。
本申请的一个实施例,提供了一种电子设备,如图4所示,本实施例提供的电子设备包括处理器以及存储有若干计算机指令的存储器,所述计算机指令被处理器执行时实现上述VLAN数据报文转发方法的步骤。
该电子设备中的处理器可以是一个或多个,存储器用于存储计算机指令,计算机指令可以是一个或多个计算机程序。本实施例计算机指令被所述处理器执行,是的所述处理器实现本申请实施例中所述的VLAN数据报文转发方法。
本实施例电子设备还可以包括输入装置和输出装置,该电子设备中的处理器、存储器、输入装置和输出装置可以通过直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件互相之间可以通过一条或多条通讯总线或信号线实现电性连接,图4中以通过总线连接为例。
该电子设备中的存储器作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、结算机可执行程序以及模块,如本申请实施例中所提供的VLAN数据报文转发方法/装置对应的程序指令/模块。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述实施例中VLAN数据报文转发方法。
存储器可包括存储程序区和存储数据区,其中存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的实用创建的数据等。此外,存储器可以包括高速随机存储器,还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。
本申请还提出了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行,以实现上述VLAN数据报文转发方法的步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限于一一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或土述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Small talk、C++,还包括常规的过程式程序设计语言一诸如"c"语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一一包括局域网(LAN)或广域网(WAN)一一连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
所述处理器可能是一种集成电路芯片,具有数据的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor)等。可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种VLAN数据报文转发方法,应用于基于上层应用实现数据转发的网络设备,其特征在于,所述VLAN数据报文转发方法,包括:
创建VLAN接口,生成VLAN接口的VLAN ID对应的VLAN接口索引值,在各个物理接口上配置各自承载的VLAN接口,并在ARP学习时将VLAN接口索引值记录在ARP表项,在下发路由时将VLAN接口索引值记录在FIB转发表中;
在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口;
将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,根据目的IP地址查找ARP表,用下一跳MAC地址替换数据报文的目的MAC地址,将数据报文从第二物理接口发送出去。
2.如权利要求1所述的VLAN数据报文转发方法,其特征在于,所述在ARP学习时将VLAN接口索引值记录在ARP表项,包括:
物理接口三层UP时,接收直连的主机发出的ARP报文;
承载在物理接口上的VLAN接口学习所述ARP报文,将学习到的IP地址、MAC地址、物理接口的ID、VLAN ID记录在ARP表项,并根据VLAN ID生成对应的VLAN接口索引值,记录在ARP表项。
3.如权利要求1所述的VLAN数据报文转发方法,其特征在于,所述在下发路由时将VLAN接口索引值记录在FIB转发表中,包括:
上层应用接收下发路由时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLAN ID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
4.如权利要求1所述的VLAN数据报文转发方法,其特征在于,所述在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口之后,还包括:
在接收的数据报文的目的MAC地址是数据报文VLAN ID对应的VLAN接口的MAC地址时,将接收报文接口替换为数据报文VLAN ID对应的VLAN接口。
5.如权利要求1所述的VLAN数据报文转发方法,其特征在于,所述生成VLAN接口的VLANID对应的VLAN接口索引值,包括:
将VLAN接口对应的VLAN ID与一个固定的阈值相加得到对应的VLAN接口索引值。
6.一种VLAN数据报文转发装置,应用于基于上层应用实现数据转发的网络设备,其特征在于,所述VLAN数据报文转发装置,包括:
配置学习模块,用于创建VLAN接口,生成VLAN接口的VLAN ID对应的VLAN接口索引值,在各个物理接口上配置各自承载的VLAN接口,并在ARP学习时将VLAN接口索引值记录在ARP表项,在下发路由时将VLAN接口索引值记录在FIB转发表中;
查表模块,用于在第一物理接口接收到数据报文后,如果第一物理接口承载了数据报文VLAN ID对应的VLAN接口,则查找转发表FIB,根据数据报文的目的IP查找得到出接口对应的VLAN接口索引值,根据出接口对应的VLAN接口索引值查找ARP表项,确定对应的第二物理接口;
转发模块,用于将数据报文源MAC地址替换为出接口对应的VLAN接口的MAC地址,根据目的IP地址查找ARP表,用下一跳MAC地址替换数据报文的目的MAC地址,将数据报文从第二物理接口发送出去。
7.如权利要求6所述的VLAN数据报文转发装置,其特征在于,所述配置学习模块在ARP学习时将VLAN接口索引值记录在ARP表项,执行如下操作:
物理接口三层UP时,接收直连的主机发出的ARP报文;
承载在物理接口上的VLAN接口学习所述ARP报文,将学习到的IP地址、MAC地址、物理接口的ID、VLAN ID记录在ARP表项,并根据VLAN ID生成对应的VLAN接口索引值,记录在ARP表项。
8.如权利要求6所述的VLAN数据报文转发装置,其特征在于,所述配置学习模块在下发路由时将VLAN接口索引值记录在FIB转发表中,执行如下操作:
上层应用接收下发路由时,根据下发路由的下一跳IP地址,查找同网段的IP地址,如果同网段的IP地址是VLAN接口的IP地址,生成VLAN接口的VLAN ID对应的VLAN接口索引值,将生成的VLAN接口索引值记录在FIB转发表中。
9.一种电子设备,包括处理器以及存储有若干计算机指令的存储器,其特征在于,所述计算机指令被处理器执行时实现权利要求1至权利要求5中任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行,以实现权利要求1至权利要求5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011494797.7A CN114650196B (zh) | 2020-12-17 | 2020-12-17 | 一种vlan接口数据报文转发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011494797.7A CN114650196B (zh) | 2020-12-17 | 2020-12-17 | 一种vlan接口数据报文转发方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114650196A true CN114650196A (zh) | 2022-06-21 |
CN114650196B CN114650196B (zh) | 2024-04-05 |
Family
ID=81991540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011494797.7A Active CN114650196B (zh) | 2020-12-17 | 2020-12-17 | 一种vlan接口数据报文转发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114650196B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259727A (zh) * | 2012-08-31 | 2013-08-21 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
US8724629B1 (en) * | 2011-06-13 | 2014-05-13 | Juniper Networks, Inc. | E-tree service having extended shared VLAN learning across VPLS network |
CN103841026A (zh) * | 2014-02-21 | 2014-06-04 | 烽火通信科技股份有限公司 | 一种路由器ip协议栈的vpn路由管理系统及方法 |
-
2020
- 2020-12-17 CN CN202011494797.7A patent/CN114650196B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8724629B1 (en) * | 2011-06-13 | 2014-05-13 | Juniper Networks, Inc. | E-tree service having extended shared VLAN learning across VPLS network |
CN103259727A (zh) * | 2012-08-31 | 2013-08-21 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
CN103841026A (zh) * | 2014-02-21 | 2014-06-04 | 烽火通信科技股份有限公司 | 一种路由器ip协议栈的vpn路由管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114650196B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
EP3273643B1 (en) | Method for sending virtual extensible local area network packet, computer device, and readable medium | |
US20150358232A1 (en) | Packet Forwarding Method and VXLAN Gateway | |
CN101573913B (zh) | 用于多播路由选择的方法和设备 | |
CN107770073B (zh) | 一种信息同步的方法,装置及系统 | |
WO2016062169A1 (zh) | 一种报文传输方法及装置 | |
US11616720B2 (en) | Packet processing method and system, and device | |
US20210029022A1 (en) | Packet forwarding method and apparatus | |
WO2014201974A1 (zh) | 业务路由报文处理方法、装置及网络系统 | |
EP2890064B1 (en) | Packet forwarding method and system | |
CN110855568B (zh) | 报文转发方法及系统 | |
CN108347392B (zh) | 业务报文跨板处理方法、装置及系统 | |
US11522792B2 (en) | Method for discovering forwarding path and related device thereof | |
KR20180025944A (ko) | Sdn 기반의 arp 구현 방법 및 장치 | |
CN113395212B (zh) | 网络装置及其操作方法和非暂时性计算机可读介质 | |
CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
EP3503484B1 (en) | Message transmission methods and devices | |
CN102394828A (zh) | 一种跨vpn访问时的报文传输方法和设备 | |
CN105207904A (zh) | 报文的处理方法、装置和路由器 | |
CN110620715B (zh) | 虚拟扩展局域网通信方法、隧道端点和控制器 | |
CN114650196B (zh) | 一种vlan接口数据报文转发方法、装置、设备及存储介质 | |
CN105684400A (zh) | 二层虚拟专用网络业务的建立方法和设备 | |
CN115297069B (zh) | Evpn网络设备及mac地址学习方法、通信系统 | |
EP4290811A1 (en) | Message forwarding method, device and system | |
WO2023050981A1 (zh) | 虚拟专用网络业务标识的分配方法、报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |