多网卡绑定的冗余网络通信系统数据处理方法技术方案

技术编号:37053107 阅读:11 留言:0更新日期:2023-03-29 19:30
多网卡绑定的冗余网络通信系统数据处理方法,针对多网卡绑定在广播模式下,系统接收报文存在重复报文的场景,在bonding驱动中增加接收报文去重模块,实时监测当前网络链路的接收报文,针对接收报文中的源IP地址建立链路表,根据网卡接收报文的时间戳来维护链路表状态并进行接收链路的选择,只接收值班链路进来的网络报文,备用链路收到的网络报文则直接丢弃。针对跨局域网的网络架构,发送报文目的MAC地址和对应链路上的网关地址不匹配的问题,根据指定的网关IP地址识别到网关回复的ARP报文,从这个报文中获取当前链路上网关的MAC地址,在发送报文时根据报文目的MAC地址识别到发送给网关的报文,并进行目的MAC地址的修正。并进行目的MAC地址的修正。并进行目的MAC地址的修正。

【技术实现步骤摘要】
多网卡绑定的冗余网络通信系统数据处理方法


[0001]本专利技术涉及多网卡绑定的冗余网络通信系统数据处理方法,具体涉及多网卡绑定在广播模式,对接收报文进行去重处理及对发送报文目的MAC地址进行修正的冗余网络通信系统数据处理方法。

技术介绍

[0002]在电力、能源和金融等安全关键行业,对网络传输的可靠性要求比较高,网络拓扑通常会采用冗余网络架构,并配合冗余网络协议(PRP、HSR)或者多网卡绑定的方式提供冗余网络通信。其中多网卡绑定是指将多个物理网卡绑定到同一个虚拟的网络接口上,使用同一个IP地址对外通信,并且可通过参数设置不同的绑定模式,在实际应用中比较广泛。
[0003]在Linux系统中由内核bonding模块提供多网卡绑定功能,可支持端口聚合、负载均衡、主备模式和广播模式等7种绑定模式,其中广播模式(broadcast)下发送端会将数据包复制成多份,分别从绑定的各个物理网卡发送出去,接收端也会将所有物理网卡上收到的数据包都接收进来。这种模式有较好的容错机制,当某一个网络链路上出现故障也不会丢包,而且不需要交换机额外的配置,比较适用于对网络可靠性要求比较高的场景。但是这种广播模式在实际应用中可能存在一些问题,在接收端从各个物理网卡上会收到重复的网络报文,而在bonding模块中并没有去除重复报文的处理,直接交给了上层协议栈处理。TCP协议对每一帧报文都进行了编号排序,在内核协议栈会去除重复报文,而对于UDP或者ICMP协议的报文,协议栈无法区分重复报文,继续往上送给应用程序处理,因此这种模式下应用程序会收到重复的报文,给报文接收处理带来一些问题。
[0004]另外针对跨局域网的冗余网络架构,链路中间需要配置网关进行报文转发。而有的网关MAC地址固定不可更改,因此不同链路上的网关MAC地址会不一致,但是在广播模式发送端只会复制完全一样的报文从不同的物理网卡上发送出去,导致发送报文的目的MAC地址和实际链路上的网关MAC地址不匹配,实际发送报文无法传输到对应网关。
[0005]因此针对多网卡绑定在广播模式下,需要解决接收端报文重复的问题,以及链路中有网关时发送报文目的MAC地址不匹配的问题。
[0006]中国专利技术专利“一种基于Linux系统的冗余以太网接口”(专利号CN205610658U)。该专利提出了一种包括以太网接口芯片、网卡底层驱动和bonding冗余处理模块的冗余以太网接口,仅针对bonding模块采用主备模式(active

backup)提供冗余功能,而且只有在子接口(slave)故障时才能切换到其他子接口上去,没有考虑复杂网络链路下的故障情况。
[0007]中国专利技术专利“一种并行冗余网络中的报文去重方法、系统及存储介质”专利号(CN113726486A)。该专利仅针对并行冗余网络协议(PRP)提出了一种报文去重方法,以及在网络抖动有乱序报文产生时的处理算法,该方法并未涉及在多网卡绑定在广播模式下的报文去重问题。
[0008]中国专利技术专利“一种网卡绑定状态下动态接收负载均衡的方法”(专利号CN101610283A)。该专利针对bonding模块采用负载均衡模式(Adaptive load balancing)
的情况提出了网卡接收负载动态均衡的方法,在检测到网卡的接收流量不均衡时,通过向客户端发送arp reply包的方式令某些客户端更改其arp地址表,从而改变客户端到服务器每个网卡的流量分布。
[0009]中国专利技术专利“一种基于网卡绑定的提高链路稳定性的方法”(专利号CN114039907A)。该专利针对网卡绑定在主备模式下,对目标IP地址发送PING包,通过监测绑定网口的丢包率来执行主备链路的切换,从而提高网络链路的稳定性。
[0010]因此,目前现有的关于冗余网络系统数据处理方案中,并没有一种是专门针对多网卡绑定在广播模式下的接收报文重复问题以及发送报文目的MAC和网关不匹配问题。

技术实现思路

[0011]为解决已有技术存在的不足,本专利技术提供了一种多网卡绑定的冗余网络通信系统数据处理方法,通过在回调函数bond_handle_frame中增加处理逻辑实现对接收报文的去重处理,包括如下步骤:步骤S1:从某个slave接口接收报文,判断接收报文的类型是否为IP类型的报文,如果不是则正常接收报文,如果是则进一步解析报文的IP头部获取源IP地址,根据这个源IP地址去查找当前已有的链路表中是否有记录这个IP地址;步骤S2:如果有查找到这个IP地址,则以当前的系统时间更新链路表中与此IP地址和当前slave接口所对应的链路的时间戳,并根据此IP地址和当前slave接口所对应的链路的状态决定丢弃报文或者正常接收;步骤S3:如果没有查找到这个IP地址,则新建一个针对此IP和当前slave接口所对应的链路表项,之后再查找链路表中其他slave接口是否有记录此IP地址,如果有且对应的时间戳未超时则将新建的链路状态置为备用链路并丢弃该报文,如果没有,或者尽管有但是其对应的时间戳已超时则将新建的链路设置为值班链路,报文正常接收。
[0012]其中,还通过在bond_handle_frame函数及bond_xmit_broadcast函数中增加相应的逻辑实现完成发送报文目的MAC地址的校正,解决发送报文目的MAC地址与对应链路网关MAC地址不匹配的问题。
[0013]其中,先配置链路网关MAC的IP地址,再在bond_handle_frame函数中增加的逻辑实现步骤,其逻辑实现步骤包括:步骤S4:判断接收报文的类型是否为ARP包,否则正常接收报文,是则进一步解析报文中的源IP地址;步骤S5:判断所解析的源IP地址与所配置的网关IP地址是否一致,如果不一致则正常接收报文,如果一致则从此报文的字段中获取到网关的MAC地址,并将所获取到的网关的MAC地址保存在列表gateway_list中;步骤S6:针对所有所接收的报文,重复步骤S4

S5。
[0014]其中,bond_xmit_broadcast函数中增加的逻辑实现步骤包括:判断发送报文目的MAC是否在保存的gateway_list列表中,如果在列表中在复制报文后将报文的目的MAC地址替换为当前要发送此报文的slave接口所在链路对应的网关MAC地址,如果不在则直接将报文从相应的slave接口上发送出去。
[0015]本专利技术提供的多网卡绑定的冗余网络通信系统数据处理方法,可以有效解决在广
播模式的接收报文重复的问题,实现底层网络冗余传输,上层应用无感知的优点。另外针对跨局域网的网络架构,本方法可以有效解决在广播模式下发送报文目的MAC地址和网关MAC地址不匹配的问题,拓展了多网卡绑定广播模式的应用场景。
附图说明
[0016]图1是本专利技术的基多网卡绑定在广播模式下的冗余网络系统拓扑图。
[0017]图2是本专利技术所述的基于Linux多网卡绑定在广播模式下的网络报文自动去重流程图。
[0018]图3是本专利技术的多网卡绑本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.多网卡绑定的冗余网络通信系统数据处理方法,其特征在于:通过在回调函数bond_handle_frame中增加处理逻辑实现对接收报文的去重处理,包括如下步骤:步骤S1:从某个slave接口接收报文,判断接收报文的类型是否为IP类型的报文,如果不是则正常接收报文,如果是则进一步解析报文的IP头部获取源IP地址,根据这个源IP地址去查找当前已有的链路表中是否有记录这个IP地址;步骤S2:如果有查找到这个IP地址,则以当前的系统时间更新链路表中与此IP地址和当前slave接口所对应的链路的时间戳,并根据此IP地址和当前slave接口所对应的链路的状态决定丢弃报文或者正常接收;步骤S3:如果没有查找到这个IP地址,则新建一个针对此IP和当前slave接口所对应的链路表项,之后再查找链路表中其他slave接口是否有记录此IP地址,如果有且对应的时间戳未超时则将新建的链路状态置为备用链路并丢弃该报文,如果没有,或者尽管有但是其对应的时间戳已超时则将新建的链路设置为值班链路,报文正常接收。2.如权利要求1所述的多网卡绑定的冗余网络通信系统数据处理方法,其特征在于:还通过在bond_handle_frame函数及bond_xmit_broadcast函数中增加相应的逻...

【专利技术属性】
技术研发人员:陆云肖林逵危荣广刘正元刘云张铎
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1