CN111835879A - 一种基于dhcp relay协议的报文处理方法及中继设备 - Google Patents
一种基于dhcp relay协议的报文处理方法及中继设备 Download PDFInfo
- Publication number
- CN111835879A CN111835879A CN202010560812.7A CN202010560812A CN111835879A CN 111835879 A CN111835879 A CN 111835879A CN 202010560812 A CN202010560812 A CN 202010560812A CN 111835879 A CN111835879 A CN 111835879A
- Authority
- CN
- China
- Prior art keywords
- interface
- information
- user attribute
- mac
- client
- 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
Images
Classifications
-
- 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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于DHCP RELAY协议的报文处理方法及中继设备,涉及DHCP RELAY领域,包括生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口虚拟路由转发VRF ID间映射关系的转发域信息表。解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器。解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从指定出接口将下行协议报文单播发送给客户端。本发明能避免下行协议报文广播和洪泛的冲击,增强了网络稳定和安全。
Description
技术领域
本发明涉及DHCP RELAY领域,具体涉及一种基于DHCP RELAY协议的报文处理方法及中继设备。
背景技术
随着PON(Passive Optical Network,无源光纤网络)接入光网的大规模普及,终端用户除了传统上网业务外还会频繁使用IPTV(Internet Protocol Television,交互式网络电视)电视、VOIP(Voice over Internet Protocol,网络电话)语音等新兴业务。获取IP地址的方式发生了很大改变,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)接入和PPPOE(Point-to-Point Protocol Over Ethernet,基于以太网的点对点通讯协议)拨号一样成为主流接入技术。
另一方面,运营商网络扁平化管理需求的推广,DHCP服务器通常部署在VPN(Virtual Private Network,虚拟专用网络)网络中,而非局域网中。这就要求局端汇聚设备上支持DHCP中继功能,将来自用户的报文转发到VPN网络中指定服务器上,同时将服务器下行报文分发到特定的用户。常见的协议应用组网场景,可参见图1所示。
在5G大力推广的背景下,用户接入汇聚通常以基站的形式存在。对于下行报文,汇聚层OLT(optical line terminal,光线路终端)设备不知道用户接入时的出接口信息,将应答包发给所有用户基站。对基站造成影响,甚至会影响业务。
应对上述问题,目前业界主流的做法是通过线路标识OPTION82选项***接入端口位置信息,将含有OPTION82选项的DHCP报文发送给上行网络的DHCP SERVER,DHCP SERVER收到该信息后将该OPTION82信息原封不动传回,汇聚层中继设备收到该回传信息后解析该OPTION82内容,找到出接口信息,将应答包单播给相应基站。
但是,部分VPN远端网络中部署的DHCP服务器并不支持OPTION82选项的识别和解析处理,此场景下使用该常规方法就无法完成下行单播给指定用户的目的了。
发明内容
针对现有技术中存在的缺陷,本发明第一方面在于提供一种基于DHCP RELAY协议的报文处理方法,其能避免下行协议报文广播和洪泛的冲击,增强了网络稳定和安全。
为达到以上目的,本发明采取的技术方案是:
一种基于DHCP RELAY协议的报文处理方法,该方法包括以下步骤:
生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口虚拟路由转发VRF ID间映射关系的转发域信息表;
解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器;
解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从指定出接口将下行协议报文单播发送给客户端。
一些实施例中,所述解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器,具体包括:
接收并解析上行请求报文,获取客户端MAC地址;
基于客户端MAC地址查找本地的MAC信息存储表,在未找到时,基于收包接口的用户属性信息新建MAC信息存储表,在找到且用户属性信息变更时,将查找的MAC信息存储表中的用户属性信息更新为收包接口的用户属性信息;
在上行请求报文中***对应用户属性信息,封装后转发至服务器。
一些实施例中,
基于收包接口的用户属性信息新建MAC信息存储表时,判断当前MAC信息存储表的容量是否超过最大值,若是,结束,若否,新建MAC信息存储表,并基于收包接口的用户属性信息将MAC信息存储表的各个属性字段赋值。
一些实施例中,所述解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从所述出接口将下行协议报文单播发送给客户端,具体包括:
解析下行协议报文,基于用户属性信息获取对应的接口VLAN ID;
以该接口VLAN ID为索引,查找接口信息表和转发域信息表,记录对应的接口索引和接口VRF ID;
利用接口索引和接口VRF ID查找路由表,记录对应的出接口和路由下一跳IP映射的MAC地址;
基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文中的以太头信息,将重新封装的下行协议报文从所述出接口单播发送给客户端。
一些实施例中,将下行协议报文单播发送给客户端后,所述方法还包括:
提取客户端MAC地址;
以客户端MAC地址为索引查找MAC信息存储表;
在查找成功时,删除该MAC信息存储表中的对应记录。
一些实施例中,所述生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口VRF ID间映射关系的转发域信息表,具体包括:
以接口VLAN ID为关键字,查找是否存在对应的接口信息表和转发域信息表,若否,结束,若是,新建接口信息表和/或转发域信息表。
一些实施例中,在生成接口信息表和转发域信息表时,还包括判断三层接口是否存在、接口VRF是否创建成功以及三层接口是否绑定了其他VRF的步骤。
本发明第二方面在于提供一种基于DHCP RELAY协议的中继设备,其能避免下行协议报文广播和洪泛的冲击,增强了网络稳定和安全。
为达到以上目的,本发明采取的技术方案是:
一种基于DHCP RELAY协议的中继设备,包括:
接口信息管理模块,其用于生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口VRF ID间映射关系的转发域信息表;
MAC信息存储模块,其用于解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLANID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器;
下行协议报文处理模块,其用于解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从指定出接口将下行协议报文单播发送给客户端。
一些实施例中,
所述MAC信息存储模块包括上行协议报文解析单元和接口信息查询单元;
所述上行协议报文解析单元用于接收并解析上行请求报文,获取客户端MAC地址;
所述接口信息查询单元基于客户端MAC地址查找本地的MAC信息存储表,在未找到时,基于收包接口的用户属性信息新建MAC信息存储表,在找到且用户属性信息变更时,将查找的MAC信息存储表中的用户属性信息更新为收包接口的用户属性信息;
所述上行协议报文解析单元还用于在上行请求报文中***对应用户属性信息,封装后转发至服务器。
一些实施例中,
所述下行协议报文处理模块包括下行协议报文解析单元和路由查询转发单元;
所述下行协议报文解析单元用于解析下行协议报文,基于用户属性信息获取对应的接口VLAN ID;
且所述下行协议报文解析单元还用于以该接口VLAN ID为索引,查找接口信息表和转发域信息表,记录对应的接口索引和接口VRF ID;
所述路由查询转发单元利用接口索引和接口VRF ID查找路由表,记录对应的出接口和路由下一跳IP映射的MAC地址;
且所述路由查询转发单元还基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文中的以太头信息,将重新封装的下行协议报文从所述出接口单播发送给客户端。
与现有技术相比,本发明的优点在于:
本发明中的基于DHCP RELAY协议的报文处理方法,其通过新增接口信息表和转发域信息表,以记录接口VLAN ID和接口索引间映射关系,以及接口VLAN ID和接口VRF ID间映射关系。再基于客户端的上行请求报文生成的MAC信息存储表,当服务器应答下行协议报文时,便可通过查找MAC信息存储表、接口信息表和转发域信息表,找到指定出接口,从而以单播的方式将下行协议报文发送给客户端。从而避免下行协议报文广播和洪泛的冲击,增强了网络稳定和安全。解决了远端DHCP SEVER不支持OPTION82选项的局限性,提升了DHCP中继协议应用场景范围。
此外,由于增设了转发域信息表,解决了不同虚拟域情景下分配的IP地址相同时用户的区分问题,进一步扩大了适用场景。
附图说明
图1为协议应用组网场景的示意图;
图2为本发明实施例中基于DHCP RELAY协议的报文处理方法的流程图;
图3为本发明实施例中步骤S1配置消息发送单元的处理流程图;
图4为本发明实施例中步骤S1配置消息接收单元的处理流程图;
图5为本发明实施例中接口信息表的结构图;
图6为本发明实施例中转发域信息表的结构图;
图7为本发明实施例中MAC信息存储表的结构图;
图8为本发明实施例中步骤S2的流程图;
图9为本发明实施例中步骤S3的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
首先对L3VPN业务中用户侧与网络侧交互的数据进行介绍。
网络数据分为2类:访问浏览器、视频等用户业务相关数据流。以及配置用户接入网络参数的信令流。信令流主要是客户端和服务器之间的信息流。从功能角度,信令流有以下几种:
(1)DHCP客户端发送给DHCP服务器的广播请求报文,向DHCP服务器请求各种网络参数的配置,包括DHCP DISCOVER和DHCP REQUEST两种格式的包,DISCOVERY属于发现阶段:用来查找链路指定DHCP服务器;REQUEST属于请求阶段,向DHCP服务器确认所配置的网络参数是否存在。
(2)DHCP服务器向DHCP客户端回应下行广播应答报文,通告分配给DHCP客户端的IP地址、租约时间、DNS、网关等参数;包括DHCP OFFER和DHCP ACK两种包文格式。OFFER报文属于提供阶段,是DHCP服务器预分配给DHCP客户端的网络地址参数。ACK报文属于确认阶段,DHCP服务器会校验REQUEST中请求地址选项,是否之前OFFER阶段提供的IP,若是且未被其它DHCP客户端占用,则回复该报文。
上述消息交互属于C/S模式,消息交互在一个广播域完成。随着客户规模的扩大,无法实现在每个物理网络都部署DHCP服务器,因为这会造成地址资源管理分散、紊乱、维护成本巨大、地址分配利用率低、地址资源浪费等弊端。基于这一考虑,工程部署上通过DHCP中继代理来完成,实现DHCP协议跨网运作。
上述情况下,在边缘接入设备OLT或路由器上由DHCP中继完成广播包到单播包的转换,因此中继设备必须自己具有路由能力,且能将双方的数据报文互传对方。
在L3VPN体系架构下,在三层跨路由基础上铺垫二层隧道,DHCP服务器的部署方式更是集中式、而非局部局域网分布式均衡。
在这种网络结构体系中,中继设备更是必不可少,但引入的一个新问题是在跨路由中继时会指定VRF(Virtual Routing Forwarding,虚拟路由转发),VRF通常用VRF ID进行标识,因此DHCP RELAY模块需要识别和维护该转发域信息。
另一方面,VPN用户对数据安全隔离和私密性要求很高,在客户端希望通过单播数据包完成协议信令的精准传送,而传统DHCP中继对下行报文的处理或直接广播报文,或依赖于标识确定用户侧接入端口从指定端口发出,但这对于更一般的应用场景,如DHCP服务器不支持OPTION82也是无法做到的。
基于以上情况,参见图2所示,本发明实施例提供一种基于DHCP RELAY协议的报文处理方法,该方法包括以下步骤:
S1.生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLANID和接口虚拟路由转发VRF ID间映射关系的转发域信息表。
本实施例在生成接口信息表和转发域信息表时,记录用户的粒度是ONU级别或LAN侧IPTV实际用户级别,这取决于最终用户接入网络的方式是桥接还是路由。桥接是直接反应最终用户、路由则是屏蔽用户侧,对上呈现的是网络连接。因此,在实际部署时,依据线卡和主控交互芯片的能力,在ONU上尽量采用桥接的方式可大大减少用户管理表项容量,提升管理效率,简化处理流程。
具体而言,在本实施例中,步骤S1包括:
在配置三层接口信息时,将接口VRF ID、接口VLAN ID和接口索引封装成配置消息并进行发送。
轮询等待配置消息,在收到配置消息时,提取配置消息中的接口VLAN ID。
以提取的接口VLAN ID为关键字,查找是否存在对应的接口信息表和转发域信息表,若否,结束,若是,新建接口信息表和/或转发域信息表。
参见图3和图4所示,分别通过配置消息发送单元和配置消息接收单元的处理流程来对步骤S1做出进一步说明:
配置消息发送单元的处理流程:
S111.配置消息发送单元在配置三层接口信息时,包括创建删除三层接口和绑定去绑定接口VRF,校验参数是否合法;
其中校验参数是否合法,主要是判断VLAN对应的三层接口VLAN(VLAN通常用VLANID进行标识)是否存在、接口VRF是否创建成功、该三层接口是否已经绑定了其它虚拟路由转发。若该三层接口已创建存在,虚拟路由转发也存在且当前该三层接口归属于虚拟路由转发0(预留公共虚拟路由转发,即VRF ID为0),则校验通过,转到步骤S112,否则,结束处理。
S112.将步骤S111校验通过的接口VLAN和接口VRF参数按如下消息结构封装成配置消息:命令字类型(2字节)+接口VLAN ID(4字节)+接口VRF ID(4字节)+接口索引(4字节)。
在本实施例中会加填充字节,来保证字节对齐,转到S113处理。
S113.创建配置消息通道,在SOCKET套接口上启用客户端,建立TCP连接,绑定在内部环回口127.0.0.1上实现任务间通信,配置消息通道建立成功后,将步骤S112中配置消息通过该配置消息通道发给配置消息接收单元,转到S114处理。
S114.等待配置消息接收单元执行处理完并返回最终成功或失败的结果,若有执行结果返回,则关闭该配置消息通道并结束退出。否则转到S115处理。
S115.若步骤S114等待超时,仍未有命令执行结果返回,先校验消息发送是否超过最大次数,未超过则尝试重新发送该消息,转到S113处理,若已将超过,现将消息计数器清0,关闭配置消息通道,然后结束退出。
配置消息接收单元的处理流程:
S121.配置消息接收单元轮询上述配置消息发送单元的配置消息通道套接字,等待配置消息唤醒该任务。若有配置消息到来,提取配置消息中的接口VLAN ID,并发送至配置消息处理单元,转到S122,否则继续轮询等待,留在S121。
S122.配置消息处理单元以接口VLAN ID作为关键字,查找是否存在对应的接口信息表和转发域信息表,若否,转到步骤S123,若是,结束。
S123.新建接口信息表和/或转发域信息表,结束。
其中,接口信息表的结构参见图5所示,相应表项元素信息包括:接口VLAN ID、接口名和接口索引,其中entry指接口信息表中某一个接口关联的表项,由很多表项组成了整个表。
转发域信息表结构参见图6所示,相应表项元素信息包括:接口VLAN ID和接口VRFID。
S2.解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器。
在本实施例中,所述用户属性信息包括客户端MAC地址、接口名、接口索引、接口VLAN ID和接口VRF ID。客户端MAC地址是属于DHCP协议内部的一个必选项字段,用来唯一标识用户,在协议传输交互过程中不会改变。
参见图7所示,其为本实施例中的MAC信息存储表的结构,相应表项元素信息包括:接口名、接口VLAN ID、接口索引、接口VRF ID。表项以客户端MAC地址为哈希关键字来存储管理。
在本实施例中,步骤S2包括:
接收并解析上行请求报文,获取客户端MAC地址;
基于客户端MAC地址查找本地的MAC信息存储表,在未找到时,基于收包接口的用户属性信息新建MAC信息存储表,在找到且用户属性信息变更时,将查找的MAC信息存储表的中的用户属性信息更新为收包接口的用户属性信息;
在上行请求报文中***对应用户属性信息,封装后转发至服务器。
具体而言,参见图所8示,对步骤S2的流程做出进一步说明:
S21.接收并解析上行请求报文,获取客户端MAC地址。
S22.基于客户端MAC地址查找本地的MAC信息存储表,若未找到,执行步骤S25,若找到,执行步骤S23。
S23.判断查找的MAC信息存储表的中的用户属性信息是否和收包接口的用户属性信息相同,若否,执行步骤S24,若是,结束。
如果查找的MAC信息存储表的中的用户属性信息是否和收包接口的用户属性信息不一样,则认为用户网络接入位置发生变化,需要进行更新,即需要更新MAC信息存储表。
S24.将查找的MAC信息存储表中的用户属性信息更新为收包接口的用户属性信息,执行步骤S27。
S25.判断当前MAC信息存储表的容量是否超过最大值,若是,结束,若否,执行步骤S26。
在本实施例中,当需要新增MAC信息存储表时,先判断当前MAC信息存储表的容量是否超过最大值,为的是防止攻击和节省资源。
S26.新建MAC信息存储表,并基于收包接口的用户属性信息将MAC信息存储表的各个属性字段赋值。
S27.在上行请求报文中***对应用户属性信息。
在本实施例中***对应用户属性信息是通过***自定义选项信息来实现的,该自定义选项的结构为:类型(1字节)+长度(1字节)+内容(具体按长度字段值填充),其中内容会填入用户属性信息,即填入接口名、接口VLAN ID和接口VRF ID,用来标记客户端在中继设备上的接入位置信息,便于后续下行协议报文转发查表使用,以达到下行单播点对点发送的优化目的。
S28.通过上行网络侧路由确定去往服务器所在的转发路径,按该转发路径封装上行请求报文并转发至服务器。
S3.解析服务器应答的下行协议报文,基于获取的所述用户属性信息查找所述MAC信息存储表、接口信息表和转发域信息表,从所述出接口将下行协议报文单播发送给客户端。
具体而言,在本实施例中,步骤S3包括:
解析下行协议报文,基于用户属性信息获取对应的接口VLAN ID。
以该接口VLAN ID为索引,查找接口信息表和转发域信息表,记录对应的接口索引和接口VRF ID。
利用接口索引和接口VRF ID查找路由表,记录对应的出接口和路由下一跳IP映射的MAC地址。
基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文中的以太头信息,将重新封装的下行协议报文从所述出接口单播发送给客户端。
优选地,将下行协议报文单播发送给客户端后,所述方法还包括:
提取客户端MAC地址,以客户端MAC地址为索引查找MAC信息存储表,在查找成功时,删除该MAC信息存储表中的对应记录。
参见图9所示,以对步骤S3做出进一步说明:
S31.解析下行协议报文,判断是否存在用户属性信息,若否,结束;若是,则获取对应的接口VLAN ID,执行步骤S32;
S32.以接口VLAN ID为索引,查找接口信息表,若查找失败则结束,若查找成功,记录对应的接口索引;
S33.以接口VLAN ID为索引,查找转发域信息表,若查找失败则结束,若查找成功,记录对应的接口VRF ID;
S34.利用接口索引和接口VRF ID查找路由表,若查找失败则结束,若查找成功,记录对应的出接口和路由下一跳IP映射的MAC地址;
S35.基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文的以太头信息,并重新封装成下行协议报文,单播发送给客户端。
具体而言,利用接口索引和接口VRF ID查找MAC信息存储表成功后,将会替换原始下行协议报文中的以太头信息,即将源MAC地址替换为中继设备MAC地址、目的MAC地址替换为路由下一跳IP映射的MAC、接口VLAN ID替换为步骤S31中查询到的接口VLAN ID,然后重新封装成下行协议报文,并以单播的方式发给对应的客户端。
S36.从重新封装的下行协议报文中提取客户端MAC地址;
S37.以客户端MAC地址为索引查找MAC信息存储表,若查找失败则结束,若查找成功,执行步骤S38;
S38.删除该MAC信息存储表中的对应记录,同时容量计数值减1。
当下行协议报文以单播的方式发给对应的客户端后,本实施例还会通过再次查询客户端MAC地址,以将对应的MAC信息存储表删除。从而便于内存资源循环利用,同时满足表项规格限制,防止恶意攻击设备。
综上所述,本发明中的基于DHCP RELAY协议的报文处理方法,其通过新增接口信息表和转发域信息表,以记录接口VLAN ID和接口索引间映射关系,以及接口VLAN ID和接口VRF ID间映射关系。再基于客户端的上行请求报文生成的MAC信息存储表,当服务器应答下行协议报文时,便可通过查找MAC信息存储表、接口信息表和转发域信息表,找到指定出接口,从而以单播的方式将下行协议报文发送给客户端。从而避免下行协议包广播和洪泛的冲击,增强了网络稳定和安全。解决了远端DHCP SEVER不支持OPTION82选项的局限性,提升了DHCP中继协议应用场景范围。
此外,由于增设了转发域信息表,解决了不同虚拟域情景下分配的IP地址相同时用户的区分问题,进一步扩大了适用场景。
本发明实施例还提供一种基于DHCP RELAY协议的中继设备,其包括接口信息管理模块、MAC信息存储模块和下行协议报文处理模块。
其中,接口信息管理模块,其用于生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口VRF ID间映射关系的转发域信息表;
MAC信息存储模块,其用于解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLANID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器。
下行协议报文处理模块,其用于解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从所述出接口将下行协议报文单播发送给客户端。
进一步地,所述MAC信息存储模块包括上行协议报文解析单元和接口信息查询单元。
所述上行协议报文解析单元用于接收并解析上行请求报文,获取客户端MAC地址。
所述接口信息查询单元基于客户端MAC地址查找本地的MAC信息存储表,在未找到时,基于收包接口的用户属性信息新建MAC信息存储表,在找到且用户属性信息变更时,将查找的MAC信息存储表的中的用户属性信息更新为收包接口的用户属性信息。
所述上行协议报文解析单元还用于在上行请求报文中***对应用户属性信息,封装后转发至服务器。
进一步地,所述下行协议报文处理模块包括下行协议报文解析单元和路由查询转发单元。
所述下行协议报文解析单元用于解析下行协议报文,基于用户属性信息获取对应的接口VLAN ID。
且所述下行协议报文解析单元还用于以该接口VLAN ID为索引,查找接口信息表和转发域信息表,记录对应的接口索引和接口VRF ID。
所述路由查询转发单元利用接口索引和接口VRF ID查找路由表,记录对应的出接口和路由下一跳IP映射的MAC地址。
且所述路由查询转发单元还基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文中的以太头信息,将重新封装的下行协议报文从所述出接口单播发送给客户端。
进一步地,所述下行协议报文处理模块还包括MAC信息删除单元,所述MAC信息删除单元用于提取客户端MAC地址,并以所述客户端MAC地址为索引查找MAC信息存储表,在查找成功时,删除该MAC信息存储表中的对应记录。
进一步地,所述接口信息管理模块包括配置消息发送单元、配置消息接收单元和配置消息处理单元。
所述配置消息发送单元用于在配置三层接口信息时,将接口VRF ID、接口VLAN ID和接口索引封装成配置消息并进行发送;
所述配置消息接收单元轮询等待配置消息,在收到配置消息时,提取配置消息中的接口VLAN ID,并发送至所述配置消息处理单元。
所述配置消息处理单元用于以接口VLAN ID为关键字,查找是否存在对应的接口信息表和转发域信息表,若否,结束,若是,建接口信息表和/或转发域信息表。
本发明中的这种将转发报文集中在中继设备内处理的方式,符合了软件设计高内聚、低耦合的设计原则,尽量将功能特性聚集在同一模块内,简化接口。
从处理逻辑来说,降低了不同模块间消息通信开销,对***消耗少,效率高,容错性也好,部署范围更灵活。
从应用角度来说,可快速移植,不用考虑不同操作***平台IP协议栈的差异,使用产品类型范围更广。
从部署场景看,在支持虚拟域转发条件后,在保证中继转发下行单播的前提下,既能满足公网分配全局唯一IP地址的需要,又能满足不通私网分配相同IP地址的需要,扩大了场景适用范围。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种基于DHCP RELAY协议的报文处理方法,其特征在于,该方法包括以下步骤:
生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口虚拟路由转发VRFID间映射关系的转发域信息表;
解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器;
解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从指定出接口将下行协议报文单播发送给客户端。
2.如权利要求1所述的基于DHCP RELAY协议的报文处理方法,其特征在于,所述解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器,具体包括:
接收并解析上行请求报文,获取客户端MAC地址;
基于客户端MAC地址查找本地的MAC信息存储表,在未找到时,基于收包接口的用户属性信息新建MAC信息存储表,在找到且用户属性信息变更时,将查找的MAC信息存储表中的用户属性信息更新为收包接口的用户属性信息;
在上行请求报文中***对应用户属性信息,封装后转发至服务器。
3.如权利要求2所述的基于DHCP RELAY协议的报文处理方法,其特征在于:
基于收包接口的用户属性信息新建MAC信息存储表时,判断当前MAC信息存储表的容量是否超过最大值,若是,结束,若否,新建MAC信息存储表,并基于收包接口的用户属性信息将MAC信息存储表的各个属性字段赋值。
4.如权利要求1所述的基于DHCP RELAY协议的报文处理方法,其特征在于,所述解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从所述出接口将下行协议报文单播发送给客户端,具体包括:
解析下行协议报文,基于用户属性信息获取对应的接口VLAN ID;
以该接口VLAN ID为索引,查找接口信息表和转发域信息表,记录对应的接口索引和接口VRFID;
利用接口索引和接口VRFID查找路由表,记录对应的出接口和路由下一跳IP映射的MAC地址;
基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文中的以太头信息,将重新封装的下行协议报文从所述出接口单播发送给客户端。
5.如权利要求4所述的基于DHCP RELAY协议的报文处理方法,其特征在于,将下行协议报文单播发送给客户端后,所述方法还包括:
提取客户端MAC地址;
以客户端MAC地址为索引查找MAC信息存储表;
在查找成功时,删除该MAC信息存储表中的对应记录。
6.如权利要求1所述的基于DHCP RELAY协议的报文处理方法,其特征在于,所述生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口VRFID间映射关系的转发域信息表,具体包括:
以接口VLAN ID为关键字,查找是否存在对应的接口信息表和转发域信息表,若否,结束,若是,新建接口信息表和/或转发域信息表。
7.如权利要求1所述的基于DHCP RELAY协议的报文处理方法,其特征在于:在生成接口信息表和转发域信息表时,还包括判断三层接口是否存在、接口VRF是否创建成功以及三层接口是否绑定了其他VRF的步骤。
8.一种基于DHCP RELAY协议的中继设备,其特征在于,包括:
接口信息管理模块,其用于生成记录接口VLAN ID和接口索引间映射关系的接口信息表、记录接口VLAN ID和接口VRFID间映射关系的转发域信息表;
MAC信息存储模块,其用于解析客户端的上行请求报文,获取用户属性信息,并将所述用户属性信息存储或更新至本地的MAC信息存储表,以建立客户端MAC地址和接口VLAN ID的映射关系,且在上行请求报文中***用户属性信息,并发送至服务器;
下行协议报文处理模块,其用于解析服务器应答的下行协议报文,基于所述MAC信息存储表、接口信息表和转发域信息表,从指定出接口将下行协议报文单播发送给客户端。
9.如权利要求8所述的基于DHCP RELAY协议的中继设备,其特征在于:
所述MAC信息存储模块包括上行协议报文解析单元和接口信息查询单元;
所述上行协议报文解析单元用于接收并解析上行请求报文,获取客户端MAC地址;
所述接口信息查询单元基于客户端MAC地址查找本地的MAC信息存储表,在未找到时,基于收包接口的用户属性信息新建MAC信息存储表,在找到且用户属性信息变更时,将查找的MAC信息存储表中的用户属性信息更新为收包接口的用户属性信息;
所述上行协议报文解析单元还用于在上行请求报文中***对应用户属性信息,封装后转发至服务器。
10.如权利要求8所述的基于DHCP RELAY协议的中继设备,其特征在于:
所述下行协议报文处理模块包括下行协议报文解析单元和路由查询转发单元;
所述下行协议报文解析单元用于解析下行协议报文,基于用户属性信息获取对应的接口VLAN ID;
且所述下行协议报文解析单元还用于以该接口VLAN ID为索引,查找接口信息表和转发域信息表,记录对应的接口索引和接口VRFID;
所述路由查询转发单元利用接口索引和接口VRFID查找路由表,记录对应的出接口和路由下一跳IP映射的MAC地址;
且所述路由查询转发单元还基于出接口和路由下一跳IP映射的MAC地址,替换下行协议报文中的以太头信息,将重新封装的下行协议报文从所述出接口单播发送给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010560812.7A CN111835879B (zh) | 2020-06-18 | 2020-06-18 | 一种基于dhcp relay协议的报文处理方法及中继设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010560812.7A CN111835879B (zh) | 2020-06-18 | 2020-06-18 | 一种基于dhcp relay协议的报文处理方法及中继设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111835879A true CN111835879A (zh) | 2020-10-27 |
CN111835879B CN111835879B (zh) | 2022-06-24 |
Family
ID=72899234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010560812.7A Active CN111835879B (zh) | 2020-06-18 | 2020-06-18 | 一种基于dhcp relay协议的报文处理方法及中继设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111835879B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887137A (zh) * | 2021-01-22 | 2021-06-01 | 新华三信息安全技术有限公司 | 接口索引一致性的实现方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067043A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Recording Stateless IP Addresses |
CN104253878A (zh) * | 2014-09-09 | 2014-12-31 | 烽火通信科技股份有限公司 | Dhcp relay终结子接口的vlan信息管理***及方法 |
CN104660446A (zh) * | 2015-01-29 | 2015-05-27 | 烽火通信科技股份有限公司 | N:1保护场景下dhcp中继实现***及方法 |
WO2017054526A1 (zh) * | 2015-09-28 | 2017-04-06 | 中兴通讯股份有限公司 | 一种arp条目生成方法和装置 |
CN107547665A (zh) * | 2016-06-23 | 2018-01-05 | 华为技术有限公司 | 一种dhcp地址分配的方法、设备及*** |
-
2020
- 2020-06-18 CN CN202010560812.7A patent/CN111835879B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067043A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Recording Stateless IP Addresses |
CN104253878A (zh) * | 2014-09-09 | 2014-12-31 | 烽火通信科技股份有限公司 | Dhcp relay终结子接口的vlan信息管理***及方法 |
CN104660446A (zh) * | 2015-01-29 | 2015-05-27 | 烽火通信科技股份有限公司 | N:1保护场景下dhcp中继实现***及方法 |
WO2017054526A1 (zh) * | 2015-09-28 | 2017-04-06 | 中兴通讯股份有限公司 | 一种arp条目生成方法和装置 |
CN107547665A (zh) * | 2016-06-23 | 2018-01-05 | 华为技术有限公司 | 一种dhcp地址分配的方法、设备及*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887137A (zh) * | 2021-01-22 | 2021-06-01 | 新华三信息安全技术有限公司 | 接口索引一致性的实现方法及装置 |
CN112887137B (zh) * | 2021-01-22 | 2022-05-24 | 新华三信息安全技术有限公司 | 接口索引一致性的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111835879B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7656872B2 (en) | Packet forwarding apparatus and communication network suitable for wide area Ethernet service | |
US7489700B2 (en) | Virtual access router | |
US11038711B2 (en) | Separating control plane function and forwarding plane function of broadband remote access server | |
US9853896B2 (en) | Method, device, and virtual private network system for advertising routing information | |
CN101313534B (zh) | 一种实现vpn配置服务的方法、装置和*** | |
EP1876754B1 (en) | Method system and server for implementing dhcp address security allocation | |
CN101026519B (zh) | 基于用户信息字符串动态创建vlan接口 | |
CN101299698B (zh) | 通信代理的方法及装置及*** | |
JP4598859B2 (ja) | 中継ネットワークシステム及び端末アダプタ装置 | |
US8917723B2 (en) | Method, device, and system for processing IPv6 packet | |
US20070171918A1 (en) | Frame forwarding apparatus for converting VLAN identifiers | |
US8681779B2 (en) | Triple play subscriber and policy management system and method of providing same | |
US9154404B2 (en) | Method and system of accessing network for access network device | |
CN113872845B (zh) | 建立vxlan隧道的方法及相关设备 | |
CN101577722A (zh) | 实现强制mac转发功能的方法和装置 | |
KR101358775B1 (ko) | 사용자 액세스 방법, 시스템, 및 액세스 서버, 액세스 장치 | |
WO2007124679A1 (fr) | Procédé et système de communication en réseau | |
KR101786620B1 (ko) | 소프트웨어 정의 네트워크에서 서브넷을 지원하는 방법, 장치 및 컴퓨터 프로그램 | |
CN116633585A (zh) | 报文处理方法、up设备及cp设备 | |
JP3394727B2 (ja) | ネットワーク間通信方法及びその装置 | |
CN111835879B (zh) | 一种基于dhcp relay协议的报文处理方法及中继设备 | |
WO2021052381A1 (zh) | 报文的发送方法和装置 | |
CN107547467B (zh) | 一种电路认证处理方法、***及控制器 | |
CN109728982B (zh) | 一种自治网络中自治云的入网方法和*** | |
CN104539455A (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 |