一种Linux网桥数据引流的方法及装置
文献发布时间:2023-06-19 18:29:06
技术领域
本发明涉及数据引流技术领域,尤其一种Linux网桥数据引流的方法及装置。
背景技术
随着高速光宽带,多业务融合的快速发展,光纤通信已实现光纤到户,而家庭网络终端设备种类繁多,组网复杂,业务多样化。智能家庭网关作为家庭网络与运营商网络(ISP)之间的网络连接桥梁,肩负多元数据的识别、分流和融合的责任。用户侧网络可以接IPTV、PC 终端、路由器、摄像头、智能家电等,接入方式多样化,有些设备通过无线或有线接入路由器,而路由器可以以路由、桥接模式接入家庭智能网关。
目前大多数宽带运营商的IPTV需要单独网线且固定端口,不能与宽带上网的网线共用,势必需要多根网线才能满足需求,即使有共用网线的应用,都需要额外定制带IPTV功能的路由器或者带VLAN功能的交换机,且配置复杂,需要一定的专业知识或者专业人员才能正确配置。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种Linux网桥数据引流方法及装置,在链路层即Linux网桥上实现DHCP Option60识别匹配,对业务数据进行分流的方法和装置,来实现智能家庭网关中对客户业务的自动分流处理。
本发明的目的是通过以下技术方案来实现的:
一种Linux网桥数据引流方法,包括以下步骤:
S1:系统初始化,在Linux网桥建立Option60字符串与服务端口的对照表,定义匹配规则;
S2:Linux网桥中识别DHCP报文;
S3:将收到的DHCP报文解析出Option60字符串,与步骤S1中的端口对照表进行匹配;
S4:根据步骤S3的匹配结果,建立分流策略;
S5:根据步骤S4的分流策略扩展Linux网桥的FDB;
S6:在用户侧端口或服务测端口的Linux网桥分别对接收到的报文依据步骤S5中的FDB 扩展表进行转发。
进一步的,所述步骤S1中服务端口包括IPTV端口和INTERNET端口。
进一步的,所述步骤S1中匹配规则为开头匹配;
开头匹配:DHCP客服端Option60字符串从左到右与定义的字符串(“itv”“stb”“iptv”“tv”)部分匹配。
进一步的,所述步骤S4中分流策略包括IPTV业务转发到IPTV端口,INTERNET业务转发到INTERNET端口。
进一步的,所述步骤S5中扩展FDB具体为:在FDB表项中增加服务端口项,形成新的FDB,服务端口项的值就是服务端口的索引值。
进一步的,所述步骤S6具体包括以下步骤:
在用户侧端口,Linux网桥对接收到的报文依据步骤S5中的FDB扩展表添加服务端口索引字段,Linux网桥依据报文中的服务端口索引字段将报文转发到相应的服务端口,从服务端口转发出去,同时去掉报文中的服务端口索引字段。
在服务端口侧,Linux网桥对接收到的报文查询步骤S5中的FDB扩展表,将报文从服务端口转发到相应的用户侧端口。
一种Linux网桥数据引流装置,包括DHCP Option60服务端口映射模块、DHCP报文接收模块、DHCP Option60解析匹配模块、分流策略应用模块和数据分流转发模块;
所述DHCP Option60服务端口映射模块用于系统初始化时,在Linux网桥建立Option60 字符串与服务端口的映射表,定义匹配规则;
所述DHCP报文接收模块用于在Linux内核中通过报文协议头和移动指针识别出DHCP报文,将报文发送给Option60解析模块;
所述DHCP Option60解析匹配模块用于对DHCP报文提取出Option60字符串,将DHCP Option60字符串与DHCP Option60服务端口映射模块进行匹配,依据匹配规则生成匹配结果;
所述分流策略应用模块用于依据DHCP Option60字符串与DHCP Option60-服务端口映射模块的匹配结果,建立分流策略,将发起DHCP请求的客户机的MAC值和服务端口索引记录到扩展FDB表中,形成新的扩展FDB表;
所述数据分流转发模块用于Linux网桥查询扩展FDB表,对接收和需转发的业务数据进行正确的数据引流。
本发明的有益效果:
本发明中装置通过接收DHCP客户的DHCP请求,依据Option60字符串将DHCP报文进行分流,分流到不同的服务端口后,客户机与部署在服务端口链路上的DHCP服务器进行交互,获取相应业务的IP地址,并记录扩展FDB表项;后续的业务数据查询扩展FDB表进行相应的数据处理和转发。实现智能家庭网关中对客户业务的自动分流,降低配置的复杂度,避免用户误插网线造成业务故障。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明的数据分流方法流程图;
图2是本发明的智能家庭网关具体实施例网络拓扑图;
图3是本发明的DHCP和业务数据流向示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当人认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
智能家庭网关作为一台运行Linux系统的设备具备Linux网桥功能,Linux网桥是一个高层次的虚拟设备,内核通过这个虚拟网桥,绑定若干以太网接口和虚拟网络服务接口(如 IPTV服务接口)。Linux网桥既能学习MAC,完成报文转发的二层功能,也能分析报文网络地址,将报文送往本机网络层参与IP路由。
RFC2131定义了DHCP Vendor Class Identifier(Option60)来定义特殊的厂商标识符信息,智能家庭网关可以根据此Option60信息,将客户机数据定向转发到特定DHCP服务器上。从而达到数据引流目的。
DHCP是应用层协议,本发明提出一种在链路层即Linux网桥上实现DHCP Option60识别匹配,对业务数据进行分流的方法和装置。来实现智能家庭网关中对客户业务的自动分流处理。
如图1所示,一种Linux网桥数据引流的方法流程图,包括如下步骤:
步骤S1:Linux内核通过/proc虚拟文件系统的方式从用户空间读取DHCPOption60字符串和服务名称,内核依据服务名读取出相应的物理接口,形成Option60-服务端口映射表,具体的关系如下(其中Option60字符串不区分大小写):
步骤S2:DHCP报文接收模块,Linux内核网桥识别DHCP报文,在内核中采用IP和UDP协议头指针指向数据包,提取头部信息匹配出UDP端口为67和68的报文为DHCP报文。
步骤S3:DHCPOption60解析模块进一步识别出DHCP报文中Option60字段,提取出Option60字符串值,与S1中的映射表进行匹配,生成匹配结果。
步骤S4:依据S3的匹配结果,建立分流策略,提取DHCP报文中的二层物理地址MAC地址,将MAC值,服务端口索引值写入扩展FDB表中,扩展后的FDB表内容大致如下:
其中:
MAC——MAC地址,此步骤的DHCP报文的MAC地址填入此字段
VLAN——报文的VLAN ID
PORT——MAC地址对应的端口
TYPE——MAC地址类型,静态或者动态
Service Index——服务端口索引,如0x01表示INTERNET,0x02表示IPTV
Aging Time——表项老化时间
相对于标准FDB表项,扩展增加了Service Index字段。
步骤S5:数据分流转发模块,在Linux内核网桥中,首先判断网桥接收到的数据来自哪种类型的接口,即来自于WAN接口还是LAN接口。
(1)若来自LAN接口表明数据是从用户侧发往业务服务器,提取出数据报文的源MAC地址,然后依据MAC查找扩展FDB表,查找出相应的服务端口索引,然后在数据报文结构体属性中添加该服务字段索引值。然后数据被送往服务端口对应的WAN接口。
若Service Index为0x01,数据被发送到INTERNET WAN连接,若INTERNET WAN连接是路由模式,则数据报文发往本地CPU端口,上协议栈,交由家庭网关路由模块处理;若INTERNET WAN连接是桥模式,则数据报文发往INTERNET WAN桥接口,INTERNET WAN桥接口收到该数据报文后,将服务端口索引去掉后,转发出去。
若Service Index为0x02,数据被发送到IPTV WAN连接,通常IPTV WAN连接仅是桥模式,故数据报文发往IPTV WAN桥接口,IPTV WAN桥接口收到该数据报文后,将服务端口索引去掉后,转发出去。
(2)若来自WAN接口表明数据是从服务端发往用户侧,则提取出目的MAC地址和Service Index,然后查找扩展FDB表,查找出相应的PORT值,然后数据被送往PORT对应的LAN接口, LAN接口接收到数据报文后,转发给用户侧终端。
如图2所示,一种Linux网桥数据引流的装置,具体地该装置即智能家庭网关中集成如下模块:
DHCP Option60-服务端口映射模块,
DHCP报文接收模块,
DHCP Option60解析匹配模块,
分流策略-应用模块,
数据分流转发模块。
具体的实施例如下:
在智能家庭网关中部署如上模块后,不同的DHCP Client发送携带DHCP Option60字段的DHCP请求报文给智能家庭网关,智能家庭网关识别提取出Option60字段,进行解析匹配,添加或者更新DHCP Option60服务端口映射表,同时建立分流策略,添加或者更新扩展FDB 表。
业务数据根据上述建立的扩展FDB表查找转发路径,进行数据的分流转发。
具体地,INTERNET Client数据走INTERNET数据流通道,IPTV Client数据走IPTV数据流通道
如图3所示,绘制了DHCP和业务数据流向示意图,具体地:
DHCP报文经过DHCP接收解析模块解析后,依据匹配结果流向不同的服务端口,INTERNET DHCP报文流经INTERNET服务端口,再与INTERNET DHCP服务器进行交互,获取地址等信息,同时添加或者更新扩展FDB表。
IPTV DHCP报文流经IPTV服务端口,再与IPTV DHCP服务器进行交互,获取地址等信息。同时添加或者更新扩展FDB表。
业务报文查询扩展FDB表,依据查询结果流经不同的服务端口。
INTERNET业务流经INTERNET服务端口,访问INTERNET Service提供的Internet业务; IPTV业务流经IPTV服务端口,访问IPTV Service提供的IPTV业务。
本发明在Linux网桥识别DHCP报文,依据DHCP Option60字段对业务数据进行分流,达到自动数据引流目的。在Linux网桥识别和解析DHCP报文,优先链路层解析,加快解析速度,降低装置CPU负载。Linux内核桥中扩展了FDB表,更精确地进行数据的转发控制,同时也结合硬件加速表项,针对大量相同路径的报文进行硬件加速,提高数据转发速率,减少延迟。在Linux内核报文中添加和删除服务端口索引,更精确地在装置中进行数据的转发控制。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
- 一种连铸钢包无引流开浇装置及无引流开浇方法
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种数据处理方法、装置和用于数据处理的装置
- 一种Linux内核协议栈网桥数据转发方法
- 一种Linux内核协议栈网桥数据转发方法