CN106953795A - 配置多网卡的方法及装置 - Google Patents

配置多网卡的方法及装置 Download PDF

Info

Publication number
CN106953795A
CN106953795A CN201610008161.4A CN201610008161A CN106953795A CN 106953795 A CN106953795 A CN 106953795A CN 201610008161 A CN201610008161 A CN 201610008161A CN 106953795 A CN106953795 A CN 106953795A
Authority
CN
China
Prior art keywords
network interface
interface card
network
address
route
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
Application number
CN201610008161.4A
Other languages
English (en)
Other versions
CN106953795B (zh
Inventor
陈铭
郭热思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing ZTE New Software Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201610008161.4A priority Critical patent/CN106953795B/zh
Priority to PCT/CN2016/078897 priority patent/WO2016188240A1/zh
Publication of CN106953795A publication Critical patent/CN106953795A/zh
Application granted granted Critical
Publication of CN106953795B publication Critical patent/CN106953795B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了配置多网卡的方法及装置,其中,该方法包括:获取系统中网卡的配置信息;匹配该系统的网络连接和路由,建立缓存列表,并将该缓存列表添加至该系统路由表中;将建立的网络连接套接字绑定该网卡,通过该套接字和该配置信息测试该网卡的可访问网段;依据该测试的结果更新该缓存列表和该系统路由表。采用上述技术方案,解决了路由表的混乱的问题,进而达到了终端配置多网卡自适应网络的效果。

Description

配置多网卡的方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种配置多网卡的方法及装置。
背景技术
在现在计算机硬件成本低廉、大量使用的情况下,网卡已经成了一种常见的硬件设备,一台计算机配置两个网卡(其中一个有线网卡,一个无线网卡)的情况已经很常见,一台计算机配置多达三个及以上的网卡的情况也频繁出现。但普通用户同时使用多个网卡时,如动态主机配置协议(Dynamic Host Configuration Protocol,简称为DHCP)或手动配置网卡网络地址协议(Internet Protocol,简称为IP)及默认网关时,会遇到路由冲突的问题,例如,某个网卡单个接线的时候能访问的网络地址在多个网卡同时接线的时候却访问不了,这是因为多个网卡的默认网关导致操作系统的路由表产生混乱,一个网络连接本来应该走某个网卡发包到对应的网关但是依据混乱的路由表走了另一个网卡发包,导致网络连接不成功。在通用串行总线(Universal Serial Bus,简称为USB)网卡设备重定向(映射)到远程操作系统时,这个混乱的路由表还可能导致用户与远程操作系统的连接断开。目前解决这个问题的方法只能由用户在操作系统中手动添加路由配置路由表来解决,这一解决办法对普通用户来说技术难度偏高,且用起来特别不方便。
针对相关技术中,终端配置多网卡的路由表混乱的问题,目前还没有有效解决方案。
发明内容
本发明提供了一种配置多网卡的方法及装置,以至少解决相关技术中终端配置多网卡的路由表混乱的问题。
根据本发明的一个方面,提供了一种配置多网卡的方法,包括:
获取系统中网卡的配置信息;
匹配所述系统的网络连接和路由,建立缓存列表,并将所述缓存列表添加至所述系统路由表中;
将建立的网络连接套接字绑定所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段;
依据所述测试的结果更新所述缓存列表和所述系统路由表。
进一步地,所述将建立的网络连接套接字绑定所述网卡之前,包括:
删除所述系统路由表中回环网卡,虚拟网卡以及匹配所述系统的网络连接的路由以外的所有路由。
进一步地,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
发送互联网控制报文协议ICMP包至指定公网网络地址协议IP地址,并接收到所述ICMP响应包,依据所述ICMP响应包确定可访问的公网的网卡,以所述网卡的默认网关为所述系统的默认网关;
其中,在所述可访问公网的网卡为多个的情况下,确认所述网卡中优先级高的网卡的默认网关为所述系统的默认网关,其中,有线网卡的所述优先级高于无线网卡的所述优先级,响应速度快的网卡的所述优先级高于响应速度慢的网卡的优先级。
进一步地,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
获取所述系统的Internet选项配置,在所述Internet选项配置有代理服务器的情况下,解析所述代理服务器IP地址;
所述网卡与所述代理服务器进行TCP握手确认,在所述网卡收到所述代理服务器的响应后,确认所述网卡为可访问重要内网的网卡,依据所述网卡的配置信息添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由,并依据所述网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由;
在可访问重要内网的所述网卡为多个的情况下,确认所述网卡中优先级高的网卡添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由,并依据所述网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由;
其中,有线网卡的所述优先级高于无线网卡的所述优先级,响应速度快的网卡的所述优先级高于响应速度慢的网卡的优先级。
进一步地,所述方法还包括:
在所述系统的Internet选项配置预设字符开头地址不使用代理服务器的情况下,解析所述预设字符开头地址的字符串,添加路由条目。
进一步地,所述方法还包括:
在可访问重要内网的所述网卡上使用递增的跳值发送ICMP包至代理服务器,并接收ICMP响应包,可得到所述网卡经网关至所述代理服务器的每一跳路由器IP地址;
依据所述网卡与所述代理服务器的所述优先级添加所述每一跳路由器IP地址的路由。
进一步地,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
依据所述缓存列表中的所述网卡的路由及其所述网卡的优先级,合并同一个所述网卡的路由,更新所述系统路由表。
进一步地,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
解析所述网卡的IP地址与子网掩码配置,添加一条网络目的地址为IP地址&子网掩码值,掩码为子网掩码,网络接口为所述网卡,网关为所述网卡对应的IP地址的路由;
在多张所述网卡解析得到的IP地址&子网掩码值相同的,添加优先级高的网卡的路由,其中,网络接口号序号值小的网卡的所述优先级高于网络接口号序号值大的网卡的所述优先级。
进一步地,依据所述测试结果更新所述缓存列表和系统路由表之后,包括以下至少之一:
监听所述网卡IP地址配置修改事件,依据所述修改事件更新所述缓存列表和所述系统路由表;
监听所述网卡拔线事件,依据所述拔线事件更新所述缓存列表和所述系统路由表;
监听所述网卡接线事件,依据所述接线事件更新所述缓存列表和所述系统路由表。
进一步地,监听所述网卡IP地址配置修改事件,依据所述修改事件更新所述缓存列表和所述系统路由表包括:
在所述网卡的IP地址&子网掩码值,与原IP地址&原子网掩码值相同,并且子网掩码与原子网掩码相同,默认网关与原默认网关相同,只是更换了所述IP地址的情况下,所述系统路由表和所述缓存列表保持不变;
在IP地址&子网掩码值,与原IP地址&原子网掩码值不相同,或者子网掩码与原子网掩码不相同,或者默认网关与原默认网关不相同的情况下,删除所述缓存列表中所述网卡相关条目,将建立的网络连接套接字绑定所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段,更新所述缓存列表和所述系统路由表。
进一步地,监听所述网卡拔线事件,依据所述拔线事件更新所述缓存列表和所述系统路由表包括:
删除所述系统路由表中被拔线网卡相关条目;
标记所述缓存列表中所述被拔线网卡相关条目状态;
按照所述缓存列表合并路由,并更新到所述系统路由表;
删除所述缓存列表中所述被拔线网卡相关条目;
关闭相关网络连接原始套接字。
进一步地,监听所述网卡接线事件,依据所述接线事件更新所述缓存列表和所述系统路由表包括:
将建立的网络连接套接字绑定所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段,更新所述缓存列表和所述系统路由表。
进一步地,依据所述测试结果更新所述缓存列表和所述系统路由表之后,包括:
在监听到本地新建网络连接的情况下,判断所述新建网络连接对端IP地址是否落入私有地址范围内;
在判断所述新建网络连接对端IP地址落入所述私有地址范围内的情况下,判断新建网络连接对端IP地址是否在所述系统路由表中除所述系统默认网关以外的路由中;
在判断所述新建网络连接对端IP地址不是在所述系统路由表中除所述系统默认网关以外的路由中的情况下,复制所述新建网络数据包,发送所述网络连接套接字到每个被监听网卡并接收回应;
能收到响应的网卡为可访问对端地址的网卡,在每张所述可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收所述ICMP响应包,在所述缓存列表中保存不同优先级的所述对端地址相关路由;
根据所述缓存列表中网卡的路由及网卡的优先级,合并所述路由并更新到所述系统路由表。
进一步地,依据所述测试结果更新所述缓存列表和所述系统路由表之后,包括:
在监听到所述网卡所接网络中新建网络连接的情况下,判断新建网络连接两端IP地址是否落入私有地址范围内;
在判断所述新建网络连接两端IP地址落入所述私有地址范围内的情况下,监听所述新建网络连接是否收到回应,在监听到收到所述回应时,确定所述新建网络连接所属网卡;
在所述缓存列表中保存预设特定优先级指定地址的路由;
根据所述缓存列表中网卡的路由及网卡的优先级,合并或者拆分路由并更新到所述系统路由表。
根据本发明的另一方面,提供了一种配置多网卡的装置,包括:
获取模块,用于获取系统中网卡的配置信息;
匹配模块,用于匹配所述系统的网络连接和路由,建立缓存列表,并将所述缓存列表添加至所述系统路由表中;
绑定模块,用于将建立的网络连接套接字绑定到该网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段;
更新模块,用于依据所述测试的结果更新所述缓存列表,再进一步更新到所述系统路由表中。
进一步地,所述装置还包括以下至少之一:
修改监听模块,用于监听所述网卡IP地址配置修改事件,依据所述修改事件更新所述缓存列表和所述系统路由表;
拔线监听模块,用于监听所述网卡拔线事件,依据所述拔线事件更新所述缓存列表和所述系统路由表;
接线监听模块,用于监听所述网卡接线事件,依据所述接线事件更新所述缓存列表和所述系统路由表。
进一步地,所述装置还包括:
本地新建网络连接监听模块,用于在监听到本地新建网络连接的情况下,判断所述新建网络连接对端IP地址是否落入私有地址范围内,在判断所述新建网络连接对端IP地址落入所述私有地址范围内的情况下,判断新建网络连接对端IP地址是否在所述系统路由表中除所述系统默认网关以外的路由中,在判断所述新建网络连接对端IP地址不是在所述系统路由表中除所述系统默认网关以外的路由中的情况下,复制所述新建网络数据包,发送所述网络连接套接字到每个被监听网卡并接收回应,在每张可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收所述ICMP响应包,在所述缓存列表中保存不同优先级的所述对端地址相关路由,根据所述缓存列表中网卡的路由及网卡的优先级,合并所述路由并更新到所述系统路由表。
进一步地,所述装置还包括:
网络新建网络连接监听模块,用于在监听到所述网卡所接网络中新建网络连接的情况下,判断新建网络连接两端IP地址是否落入私有地址范围内,在判断所述新建网络连接两端IP地址落入所述私有地址范围内的情况下,监听所述新建网络连接是否收到回应,在监听到收到所述回应时,确定所述新建网络连接所属网卡,在所述缓存列表中保存预设特定优先级指定地址的路由,根据所述缓存列表中网卡的路由及网卡的优先级,合并或者拆分路由并更新到所述系统路由表。
通过本发明,采用获取系统中网卡的配置信息,匹配该系统的网络连接和路由,建立缓存列表,并将该缓存列表添加至该系统路由表中,将建立的网络连接套接字绑定该网卡,通过该套接字和该配置信息测试该网卡的可访问网段,依据该测试的结果更新该缓存列表和该系统路由表,解决了的路由表的混乱的问题,进而达到了终端配置多网卡自适应网络的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种配置多网卡的流程图;
图2是根据本发明实施例的一种配置多网卡的处理装置的结构框图一;
图3是根据本发明实施例的一种配置多网卡的处理装置的结构框图二;
图4是根据本发明实施例的一种配置多网卡的处理装置的结构框图三;
图5是根据本发明实施例的一种配置多网卡的处理装置的结构框图四;
图6是根据本发明实施例的一种配置多网卡的系统概要图;
图7是根据本发明实施例的一种配置多网卡的系统预处理流程图;
图8是根据本发明实施例的一种配置多网卡的IP地址配置修改事件处理流程图;
图9是根据本发明实施例的一种配置多网卡的网卡拔线事件处理流程图;
图10是根据本发明实施例的一种配置多网卡的网卡插线事件处理流程图;
图11是根据本发明实施例的一种配置多网卡的监听到本地新建网络连接处理流程图;
图12是根据本发明实施例的一种配置多网卡的监听到网卡所接网络中新建网络连接处理流程图;
图13是根据本发明实施例的一种配置多网卡的探测路由处理流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种配置多网卡的方法,图1是根据本发明实施例的一种配置多网卡的流程图,如图1所示,该流程包括如下步骤:
步骤S102,获取系统中网卡的配置信息;
步骤S104,匹配该系统的网络连接和路由,建立缓存列表,并将该缓存列表添加至该系统路由表中;
步骤S106,将建立的网络连接套接字绑定该网卡,通过该套接字和该配置信息测试该网卡的可访问网段;
步骤S108,依据该测试的结果更新该系统路由表中的该缓存列表和该系统路由表。
通过上述步骤,获取系统中网卡的配置信息,匹配该系统的网络连接和路由,建立缓存列表,该缓存列表包括:目标地址子网掩码,本地地址,网卡,响应速度,优先级,和状态,并将该缓存列表添加至该系统路由表中,将建立的网络连接套接字绑定该网卡,通过该套接字和该配置信息测试该网卡的可访问网段,依据该测试的结果更新该缓存列表和该系统路由表,解决了终端配置多网卡的路由表混乱的问题,进而达到了终端配置多网卡自适应网络的效果。
在本实施例中,将建立的网络连接套接字绑定该网卡之前,包括:删除该系统路由表中回环网卡和虚拟网卡以及匹配该系统的网络连接的路由以外的所有路由,不影响原系统使用,有效兼容VPN等等虚拟网卡,能在程序启动和系统环境改变时实现完美过渡。
在本实施例中,该通过该套接字和该配置信息测试该网卡的可访问网段包括:发送互联网控制报文协议ICMP包至指定公网网络地址协议IP地址,并接收到该ICMP响应包,依据该ICMP响应包确定可访问的公网的网卡,以该网卡的默认网关为该系统的默认网关,其中,在该可访问公网的网卡为多个的情况下,确认该网卡中优先级高的网卡的默认网关为该系统的默认网关,其中,有线网卡的该优先级高于无线网卡的该优先级,响应速度快的网卡的该优先级高于响应速度慢的网卡的优先级。
在本实施例中,该通过该套接字和该配置信息测试该网卡的可访问网段包括:获取该系统的Internet选项配置,在该Internet选项配置有代理服务器的情况下,解析该代理服务器IP地址,该网卡与该代理服务器进行TCP握手确认,在该网卡收到该代理服务器的响应后,确认该网卡为可访问重要内网的网卡,依据该网卡的配置信息添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由,并依据该网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由,在可访问重要内网的该网卡为多个的情况下,确认该网卡中优先级高的网卡添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由,并依据该网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由,其中,有线网卡的该优先级高于无线网卡的该优先级,响应速度快的网卡的该优先级高于响应速度慢的网卡的优先级。
在本实施例中,在该系统的Internet选项配置预设字符开头地址不使用代理服务器的情况下,解析该预设字符开头地址的字符串,添加路由条目。
在本实施例中,在可访问重要内网的该网卡上使用递增的跳值发送ICMP包至代理服务器,并接收ICMP响应包,可得到该网卡经网关至该代理服务器的每一跳路由器IP地址,依据该网卡与该代理服务器的该优先级添加该每一跳路由器IP地址的路由。
在本实施例中,该通过该套接字和该配置信息测试该网卡的可访问网段包括:依据该缓存列表中的该网卡的路由及其该网卡的优先级,合并同一个该网卡的路由,更新该系统路由表。
在本实施例中,该通过该套接字和该配置信息测试该网卡的可访问网段包括:解析该网卡的IP地址与子网掩码配置,添加一条网络目的地址为IP地址&子网掩码值,掩码为子网掩码,网络接口为该网卡,网关为该网卡对应的IP地址的路由,在多张该网卡解析得到的IP地址&子网掩码值相同的,添加优先级高的网卡的路由,其中,网络接口号序号值小的网卡的该优先级高于网络接口号序号值大的网卡的该优先级。
在本实施例中,依据该测试结果更新该缓存列表和该系统路由表之后,包括以下至少之一:监听该网卡IP地址配置修改事件,依据该修改事件更新该缓存列表和该系统路由表,监听该网卡拔线事件,依据该拔线事件更新该缓存列表和该系统路由表,监听该网卡接线事件,依据该接线事件更新该缓存列表和该系统路由表。
在本实施例中,监听该网卡IP地址配置修改事件,依据该修改事件更新该缓存列表和该系统路由表包括:在该网卡的IP地址&子网掩码值,与原IP地址&原子网掩码值相同,并且子网掩码与原子网掩码相同,默认网关与原默认网关相同,只是更换了该IP地址的情况下,该系统路由表和该缓存列表保持不变。
在IP地址&子网掩码值,与原IP地址&原子网掩码值不相同,或者子网掩码与原子网掩码不相同,或者默认网关与原默认网关不相同的情况下,删除该缓存列表中该网卡相关条目,将建立的网络连接套接字绑定该网卡,通过该套接字和该配置信息测试该网卡的可访问网段,更新该缓存列表和该系统路由表。
在本实施例中,监听该网卡拔线事件,依据该拔线事件更新该缓存列表和该系统路由表包括:删除该系统路由表中被拔线网卡相关条目,标记该缓存列表中该被拔线网卡相关条目状态,按照该缓存列表合并路由,并更新到该系统路由表,删除该缓存列表中该被拔线网卡相关条目,关闭相关网络连接原始套接字。
在本实施例中,监听该网卡接线事件,依据该接线事件更新该缓存列表和该系统路由表包括:将建立的网络连接套接字绑定该网卡,通过该套接字和该配置信息测试该网卡的可访问网段,更新该系统路由表中的该缓存列表。
在本实施例中,依据该测试结果更新该缓存列表和该系统路由表之后,包括:在监听到本地新建网络连接的情况下,判断该新建网络连接对端IP地址是否落入私有地址范围内,在判断该新建网络连接对端IP地址落入该私有地址范围内的情况下,判断新建网络连接对端IP地址是否在该系统路由表中除该系统默认网关以外的路由中,在判断该新建网络连接对端IP地址不是在该系统路由表中除该系统默认网关以外的路由中的情况下,复制该新建网络数据包,发送该网络连接套接字到每个被监听网卡并接收回应,能收到响应的网卡为可访问对端地址的网卡,在每张该可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收该ICMP响应包,在该缓存列表中保存不同优先级的该对端地址相关路由,根据该缓存列表中网卡的路由及网卡的优先级,合并该路由并更新到该系统路由表。
在本实施例中,依据该测试结果更新该缓存列表和该系统路由表之后,包括:在监听到该网卡所接网络中新建网络连接的情况下,判断新建网络连接两端IP地址是否落入私有地址范围内,在判断该新建网络连接两端IP地址落入该私有地址范围内的情况下,监听该新建网络连接是否收到回应,在监听到收到该回应时,确定该新建网络连接所属网卡,在该缓存列表中保存预设特定优先级指定地址的路由,根据该缓存列表中网卡的路由及网卡的优先级,合并或者拆分路由并更新到该系统路由表。
在本实施例中还提供了一种配置多网卡的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的一种配置多网卡的处理装置的结构框图一,如图2所示,该装置包括:
获取模块22,用于获取系统中网卡的配置信息;
匹配模块24,用于匹配该系统的网络连接和路由,建立缓存列表,并将该缓存列表添加至该系统路由表中;
绑定模块26,用于将建立网络连接的套接字绑定到该网卡,通过该套接字和该配置信息测试该网卡的可访问网段;
更新模块28,用于依据该测试的结果更新该缓存列表,再进一步更新到该系统路由表中。
通过上述步骤,获取模块22获取系统中网卡的配置信息,匹配模块24匹配该系统的网络连接和路由,建立缓存列表,该缓存列表包括:目标地址子网掩码,本地地址,网卡,响应速度,优先级,和状态,并将该缓存列表添加至该系统路由表中,绑定模块26将建立网络连接的套接字绑定到该网卡,通过该套接字和该配置信息测试该网卡的可访问网段,更新模块28依据该测试的结果更新该缓存列表和该系统路由表,解决了终端配置多网卡的路由表的混乱的问题,进而达到了终端配置多网卡自适应网络的效果。
图3是根据本发明实施例的一种配置多网卡的处理装置的结构框图二,如图3所示,除了图2的模块外,该装置还包括:
修改监听模块32,用于监听该网卡IP地址配置修改事件,依据该修改事件更新该缓存列表和该系统路由表;
拔线监听模块34,用于监听该网卡拔线事件,依据该拔线事件更新该缓存列表和该系统路由表;
接线监听模块36,用于监听该网卡接线事件,依据该接线事件更新该缓存列表和该系统路由表。
图4是根据本发明实施例的一种配置多网卡的处理装置的结构框图三,如图4所示,除了图2的模块外,该装置还包括:
本地新建网络连接监听模块42,用于在监听到本地新建网络连接的情况下,判断该新建网络连接对端IP地址是否落入私有地址范围内,在判断该新建网络连接对端IP地址落入该私有地址范围内的情况下,判断新建网络连接对端IP地址是否在该系统路由表中除该系统默认网关以外的路由中,在判断该新建网络连接对端IP地址不是在该系统路由表中除该系统默认网关以外的路由中的情况下,复制该新建网络数据包,发送该网络连接套接字到每个被监听网卡并接收回应,在每张可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收该ICMP响应包,在该缓存列表中保存不同优先级的该对端地址相关路由,根据该缓存列表中网卡的路由及网卡的优先级,合并该路由并更新到该系统路由表。
图5是根据本发明实施例的一种配置多网卡的处理装置的结构框图四,如图5所示,除了图2的模块外,该装置还包括:
网络新建网络连接监听模块52,用于在监听到该网卡所接网络中新建网络连接的情况下,判断新建网络连接两端IP地址是否落入私有地址范围内,在判断该新建网络连接两端IP地址落入该私有地址范围内的情况下,监听该新建网络连接是否收到回应,在监听到收到该回应时,确定该新建网络连接所属网卡,在该缓存列表中保存预设特定优先级指定地址的路由,根据该缓存列表中网卡的路由及网卡的优先级,合并或者拆分路由并更新到该系统路由表。
下面结合优选实施例和实施方式对本发明进行详细说明。
本发明的优选实施例的提供了一种在多网卡操作系统中自适应网络情况自动配置路由表的方法。图6是根据本发明实施例的一种配置多网卡的系统概要图,
该多网卡自适应网络配置的方法,其步骤包括:
1.系统预处理,其步骤包括:
1)获取当前系统所有网卡属性值(网卡类型、网络接口号或网络接口名等等)及其IP地址与默认网关及DNS配置。
2)获取当前系统Internet选项代理服务器配置。
3)获取当前系统网络连接列表。
4)在程序内部建立一个关于目标地址、子网掩码、网关、本地地址、网卡、响应速度、优先级和状态的缓存列表,针对当前系统网络连接与当前系统路由进行匹配保存进入程序内部缓存列表中同时添加至系统路由表中(即添加到网络连接对端地址,掩码为255.255.255.255的路由)。
5)删除系统路由表中除回环网卡(loopback)和虚拟网卡(如VPN,其路由由虚拟网关相关程序进行维护)相关路由及匹配当前系统网络连接的路由以外的所有路由,其目的为不影响系统当前(网络连接)使用。
6)针对除回环网卡(loopback)和虚拟网卡(如VPN,其路由由虚拟网关相关程序进行维护)以外的每一个网卡,建立网络连接原始(RAW)套接字,绑定(bind)该网卡(IP地址),使当前套接字数据发送到该网卡,并进行以下测试以判断该网卡可访问网段并以此为依据重建系统路由表及保存进入程序内部缓存表中作为后面处理网卡拔插事件及配置修改事件的依据:
a)发送ICMP包至指定公网(Internet)IP地址,并接收ICMP响应包,其中能收到目标地址到达响应的网卡为可访问公网(Internet)的网卡,以其默认网关为系统默认网关(即添加到网络目的地址0.0.0.0,掩码为0.0.0.0的路由)。如果可访问公网(Internet)的网卡有多个,则选择其中的有线网卡,并选择其中响应速度最快的那张有线网卡,以其默认网关为系统默认网关。如果可访问公网(Internet)的网卡全部为无线网卡,则也选择其中响应速度最快的那张无线网卡,以其默认网关为系统默认网关。同时按照有线网卡高于无线网卡,响应速度快高于响应速度慢在程序内部缓存表中保存不同优先级的默认网关相关路由。
b)如果当前系统Internet选项配置有代理服务器,则解析代理服务器IP地址,并发送TCPSYN包至代理服务器指定端口,接收代理服务器响应的SYN+ACK包,得到代理服务器响应后,向代理服务器回复ACK包和FIN包。其中能收到响应的网卡为可访问重要内网(Intranet或LAN)的网卡,添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由(如果代理服务器有多个,则路由条目也可以有多条)。如果可访问重要内网(Intranet或LAN)的网卡有多个,则选择其中的有线网卡,并选择其中响应速度最快的那张有线网卡,添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由。如果可访问重要内网(Intranet或LAN)的网卡全部为无线网卡,则也选择其中响应速度最快的那张无线网卡,添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由。
另外,再依据该网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由。
如果当前系统Internet选项还配置有例外情况,即对于下列字符开头的地址不使用代理服务器,则解析该例外情况字符串,添加相应路由条目,如解析到10.*.*.*或10.*则添加到网络目的地址为10.0.0.0,掩码为255.0.0.0的路由,网络接口为可访问重要内网(Intranet或LAN)的网卡的IP地址,网关为该网卡对应的网关IP地址;如解析到192.168.*.*或192.168.*则添加到网络目的地址为192.168.0.0,掩码为255.255.0.0的路由,网络接口为可访问重要内网(Intranet或LAN)的网卡的IP地址,网关为该网卡对应的网关IP地址。
在每张可访问重要内网(Intranet或LAN)的网卡上使用递增的跳(metric)值发送ICMP包至代理服务器,并接收ICMP响应包,可得到从本地网卡经网关至代理服务器的每一跳路由器IP地址。
同时,按照有线网卡高于无线网卡,响应速度快高于响应速度慢在程序内部缓存表中保存不同优先级的代理服务器相关路由,并采用与代理服务器路由相同优先级在程序内部缓存表中保存DNS相关路由及例外情况字符串解析所得相关路由和经网关至代理服务器的每一跳路由器IP相关路由。
c)根据程序内部缓存表中已知路由及其优先级,合并路由并更新到系统路由表,即添加合并后的路由并删除原系统路由表中相关路由。路由合并只有来源于同一网卡的路由才能合并,合并前先判断是否私有地址(10.0.0.0-10.255.255.255、172.16.0.0—172.31.255.255、192.168.0.0-192.168.255.255),并判断该路由中目标地址是否落入这三个私有地址段中的某一个,如果有多个目标地址落入某一个私有地址段,则解析这几个目标地址的最大子网掩码值(最大子网掩码值:从最高位bit开始置1,每个目标地址IP地址&该子网掩码得到的值相等的最大数值)。合并路由的目的是裁剪冗余,提升系统路由表使用效率,以及根据已知条件推断该网卡可访问网段大概范围,以利于用户以后的网络操作。
7)针对每一张网卡,解析其IP地址与子网掩码配置,并据此添加一条网络目的地址为IP地址&子网掩码,掩码为子网掩码,网络接口为该网卡,网关为该网卡对应的IP地址的本地路由(如果IP地址有多个,则路由条目也可以有多条)。当多张网卡解析得到的IP地址&子网掩码相同的,根据网卡网络接口号进行筛选,只保存网络接口号序号值最小的那条。
同时,按照网络接口号序号值小的高于网络接口号序号值大的在程序内部缓存表中保存不同优先级的本地相关路由。
8)开始对除回环网卡和虚拟网卡外的每张网卡网络连接的监听,并监听网卡IP地址配置修改事件和网卡拔线接线事件。
图7是根据本发明实施例的一种配置多网卡的系统预处理流程图,如图7所示,该流程包括如下步骤:
步骤S701,获取所有网卡属性;
步骤S702,获取系统代理设置;
步骤S703,获取所有网络连接;
步骤S704,建立缓存列表;
步骤S705,添加到系统路由表;
步骤S706,删除系统路由表中真实网卡建立网络连接原始(RAW)套接字;
步骤S707,为每个真实网卡建立网络连接原始(RAW)套接字;
步骤S708,为每个真实网卡建立的网络连接原始(RAW)套接字绑定该网卡;
步骤S709,探测路由;
步骤S710,开始监听。
2.网卡IP地址配置修改事件处理,其步骤包括:
1)当IP地址&子网掩码值与原IP地址&原子网掩码值相同并且子网掩码与原子网掩码相同、默认网关与原默认网关时,即只是更换了IP地址,系统路由表与程序内部缓存表保持不变。
2)在IP地址和子网掩码值,与原IP地址和原子网掩码值不相同,子网掩码与原子网掩码不相同,或者默认网关与原默认网关不相同的情况下,删除程序内部缓存表中当前网卡相关条目。
3)建立网络连接原始(RAW)套接字,绑定(bind)当前网卡(IP地址),使当前套接字数据发送到该网卡,并进行系统预处理中相同的测试更新到程序内部缓存表中。
4)按照程序内部缓存表合并路由,并更新到系统路由表。遇到有冲突的条目先比较优先级,优先级高时删除系统路由表中原条目再添加新条目,优先级低时则不处理。
图8是根据本发明实施例的一种配置多网卡的IP地址配置修改事件处理流程图,如图8所示,该流程包括如下步骤:
步骤S801,判断是否只更换了IP,所处子网未变?
步骤S802,在判断为是时,系统路由表与程序内部缓存表保持不变;
步骤S803,在判断为否时,删除程序内部缓存表中当前网卡相关条目;
步骤S804,为当前网卡建立网络连接原始(RAW)套接字;
步骤S805,为当前网卡建立的网络连接原始(RAW)套接字绑定该网卡;
步骤S806,探测路由;
步骤S807,开始监听。
3.网卡拔线(或移除)事件处理,图9是根据本发明实施例的一种配置多网卡的网卡拔线事件处理流程图,如图9所示,该流程包括如下步骤:
步骤S901,删除系统路由表中当前网卡相关条目;
步骤S902,标记程序内部缓存表中被拔线网卡相关条目状态;
步骤S903,按照程序内部缓存表合并路由,并更新到系统路由表。将程序内部缓存表中与被拔线网卡相关条目有冲突的条目次一个优先级的添加到系统路由表;
步骤S904,删除程序内部缓存表中当前网卡相关条目;
步骤S905,关闭相关网络连接原始(RAW)套接字。
4.网卡插线事件处理,其步骤包括,
1)建立网络连接原始(RAW)套接字,绑定当前网卡(IP地址),使当前套接字数据发送到该网卡,并进行系统预处理中相同的测试更新到程序内部缓存表中。
2)按照程序内部缓存表合并路由,并更新到系统路由表。遇到有冲突的条目先比较优先级,优先级高时删除系统路由表中原条目再添加新条目,优先级低时则不处理。
图10是根据本发明实施例的一种配置多网卡的网卡插线事件处理流程图,如图10所示,该流程包括如下步骤:
步骤S1001,为当前网卡建立网络连接原始(RAW)套接字;
步骤S1002,为当前网卡建立的网络连接原始(RAW)套接字绑定该网卡;
步骤S1003,探测路由;
步骤S1004,开始监听。
5.监听到(本地)新建网络连接的处理,其步骤包括:
1)判断新建网络连接对端IP地址是否落入私有地址(10.0.0.0-10.255.255.255、172.16.0.0—172.31.255.255、192.168.0.0-192.168.255.255)范围内,如果不是,则不处理。
2)判断新建网络连接对端IP地址是否当前系统路由表中除系统默认网关以外的路由中,如果是,则不处理。
3)复制该网络数据包,通过前面建立的每个网络连接原始(RAW)套接字,在每个被监听网卡上进行发送并接收回应,得到响应后,如果复制网络数据包为TCP SYN包则回复ACK包和FIN包。其中能收到响应的网卡为可访问对端地址的网卡,添加一条到网络目的地址为对端地址,掩码为255.255.255.255的路由。如果可访问对端地址的网卡有多个,则选择其中的有线网卡,并选择其中响应速度最快的那张有线网卡,添加一条到网络目的地址为对端地址,掩码为255.255.255.255的路由。如果可访问对端地址的网卡全部为无线网卡,则也选择其中响应速度最快的那张无线网卡,添加一条到网络目的地址为对端地址,掩码为255.255.255.255的路由。
4)在每张可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收ICMP响应包,可得到从本地网卡经网关至对端地址的每一跳路由器IP地址。
5)同时,按照有线网卡高于无线网卡,响应速度快高于响应速度慢在程序内部缓存表中保存不同优先级的对端地址相关路由,并采用与对端地址路由相同优先级在程序内部缓存表中保存经网关至对端地址的每一跳路由器IP相关路由。
6)根据程序内部缓存表中已知路由及其优先级,合并路由并更新到系统路由表,添加合并后的路由并删除原系统路由表中相关路由。
图11是根据本发明实施例的一种配置多网卡的监听到本地新建网络连接处理流程图,如图11所示,该流程包括如下步骤:
步骤S1101,判断新建网络连接两端IP地址是否落入私有地址;
步骤S1102,在判断新建网络连接两端IP地址是落入私有地址时,判断新建网络连接对端IP地址是否当前系统路由表中除系统默认网关以外的路由中;
步骤S1103,判断新建网络连接对端IP地址不是当前系统路由表中除系统默认网关以外的路由时,复制包;
步骤S1104,在每张网卡上发送;
步骤S1105,接收响应;
步骤S1106,按有线网卡高于无线网卡,响应速度快高于响应速度慢添加路由;
步骤S1107,获取本地至远程ip所经由的所有路由ip;
步骤S1108,保存到缓存列表;
步骤S1109,缓存列表中合并路由;
步骤S1110,系统路由中添加合并路由;
步骤S1111,系统路由中删除合并路由覆盖路由。
6.监听到(网卡所接网络中)新建网络连接的处理,其步骤包括:
1)判断新建网络连接两端IP地址是否落入私有地址(10.0.0.0-10.255.255.255、172.16.0.0—172.31.255.255、192.168.0.0-192.168.255.255)范围内,如果不是,则不处理。
2)监听该新建网络连接是否收到回应(即回应IP包源地址与目的地址与新建网络连接ip包相反),如果不是,则不处理。
3)判断当前网络连接所属网卡。
4)在程序内部缓存表中保存特定优先级指定地址相关路由(掩码为255.255.255.255,网卡为网络连接所属网卡)。
5)根据程序内部缓存表中已知路由及其优先级,合并(或拆分,即一个大的地址范围拆分成3个小的地址范围,两个属于原网卡,一个属于新网卡)路由并更新到系统路由表,添加合并后的路由并删除原系统路由表中相关路由。
图12是根据本发明实施例的一种配置多网卡的监听到网卡所接网络中新建网络连接处理流程图,如图12所示,该流程包括如下步骤:
步骤S1201,判断新建网络连接两端IP地址是否落入私有地址;
步骤S1202,在判断新建网络连接两端IP地址是落入私有地址时,监听回应
步骤S1203,查看是否收到回应
步骤S1204,在收到回应时,获取当前监听网卡;
步骤S1205,保存到缓存列表;
步骤S1206,缓存列表中合并路由;
步骤S1207,系统路由中添加合并路由
步骤S1208,系统路由中删除合并路由覆盖路由。
图13是根据本发明实施例的一种配置多网卡的探测路由处理流程图,如图13所示,该流程包括如下步骤:
步骤S1301,发送ICMP包至指定公网(Internet)IP地址;
步骤S1302,接收ICMP响应包;
步骤S1303,按有线网卡高于无线网卡,响应速度快高于响应速度慢更新默认网关路由;
步骤S1304,使用TCP SYN包测试代理服务器IP地址;
步骤S1305,接收TCP响应SYN+ACK包;
步骤S1306,回应ACK包和FIN包;
步骤S1307,按有线网卡高于无线网卡,响应速度快高于响应速度慢更新访问(重要内网)代理服务器路由;
步骤S1308,更新访问(重要内网)DNS服务器路由;
步骤S1309,更新访问(重要内网)代理例外路由;
步骤S1310,获取本地至代理服务器IP所经由的所有路由IP;
步骤S1311,保存到缓存列表;
步骤S1312,缓存列表中合并路由;
步骤S1313,系统路由中更新合并路由;
步骤S1314,根据网卡IP与掩码添加本地子网路由。
本发明采用软件的方法,使得本地操作系统具备多网卡自动适应网络的功能。本方法使用不影响原系统使用的原则,部署方便,可以有效兼容VPN等等虚拟网卡,同时保留手动路由配置等系统原有高级功能,能在程序启动和系统环境改变时实现完美过渡。采用本发明方法的操作系统能够满足当前用户越来越复杂的网络环境下多网卡衔接的需求,并可应用于USB网卡重定向远程映射。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述实施例的方法步骤的程序代码:
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行…
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行…
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种配置多网卡的方法,其特征在于,包括:
获取系统中网卡的配置信息;
匹配所述系统的网络连接和路由,建立缓存列表,并将所述缓存列表添加至所述系统路由表中;
将建立的网络连接套接字绑定所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段;
依据所述测试的结果更新所述缓存列表和所述系统路由表。
2.根据权利要求1所述的方法,其特征在于,所述将建立的网络连接套接字绑定所述网卡之前,包括:
删除所述系统路由表中回环网卡,虚拟网卡以及匹配所述系统的网络连接的路由以外的所有路由。
3.根据权利要求2所述的方法,其特征在于,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
发送互联网控制报文协议ICMP包至指定公网网络地址协议IP地址,并接收到所述ICMP响应包,依据所述ICMP响应包确定可访问的公网的网卡,以所述网卡的默认网关为所述系统的默认网关;
其中,在所述可访问公网的网卡为多个的情况下,确认所述网卡中优先级高的网卡的默认网关为所述系统的默认网关,其中,有线网卡的所述优先级高于无线网卡的所述优先级,响应速度快的网卡的所述优先级高于响应速度慢的网卡的优先级。
4.根据权利要求1所述的方法,其特征在于,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
获取所述系统的Internet选项配置,在所述Internet选项配置有代理服务器的情况下,解析所述代理服务器IP地址;
所述网卡与所述代理服务器进行TCP握手确认,在所述网卡收到所述代理服务器的响应后,确认所述网卡为可访问重要内网的网卡,依据所述网卡的配置信息添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由,并依据所述网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由;
在可访问重要内网的所述网卡为多个的情况下,确认所述网卡中优先级高的网卡添加一条到网络目的地址为代理服务器,掩码为255.255.255.255的路由,并依据所述网卡配置DNS地址额外添加到网络目的地址为DNS地址,掩码为255.255.255.255的路由;
其中,有线网卡的所述优先级高于无线网卡的所述优先级,响应速度快的网卡的所述优先级高于响应速度慢的网卡的优先级。
5.根据权利要求4所述的方法,其特征在于,包括:
在所述系统的Internet选项配置预设字符开头地址不使用代理服务器的情况下,解析所述预设字符开头地址的字符串,添加路由条目。
6.根据权利要求4所述的方法,其特征在于,包括:
在可访问重要内网的所述网卡上使用递增的跳值发送ICMP包至代理服务器,并接收ICMP响应包,可得到所述网卡经网关至所述代理服务器的每一跳路由器IP地址;
依据所述网卡与所述代理服务器的所述优先级添加所述每一跳路由器IP地址的路由。
7.根据权利要求4所述的方法,其特征在于,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
依据所述缓存列表中的所述网卡的路由及其所述网卡的优先级,合并同一个所述网卡的路由,更新所述系统路由表。
8.根据权利要求4所述的方法,其特征在于,所述通过所述套接字和所述配置信息测试所述网卡的可访问网段包括:
解析所述网卡的IP地址与子网掩码配置,添加一条网络目的地址为IP地址&子网掩码值,掩码为子网掩码,网络接口为所述网卡,网关为所述网卡对应的IP地址的路由;
在多张所述网卡解析得到的IP地址&子网掩码值相同的,添加优先级高的网卡的路由,其中,网络接口号序号值小的网卡的所述优先级高于网络接口号序号值大的网卡的所述优先级。
9.根据权利要求1所述的方法,其特征在于,依据所述测试结果更新所述缓存列表和所述系统路由表之后,所述方法还包括以下至少之一:
监听所述网卡IP地址配置修改事件,依据所述修改事件更新所述缓存列表和所述系统路由表;
监听所述网卡拔线事件,依据所述拔线事件更新所述缓存列表和所述系统路由表;
监听所述网卡接线事件,依据所述接线事件更新所述缓存列表和所述系统路由表。
10.根据权利要求9所述的方法,其特征在于,监听所述网卡IP地址配置修改事件,依据所述修改事件更新所述缓存列表和所述系统路由表包括:
在所述网卡的IP地址&子网掩码值,与原IP地址&原子网掩码值相同,并且子网掩码与原子网掩码相同,默认网关与原默认网关相同,只是更换了所述IP地址的情况下,所述系统路由表和所述缓存列表保持不变;
在IP地址&子网掩码值,与原IP地址&原子网掩码值不相同,或者子网掩码与原子网掩码不相同,或者默认网关与原默认网关不相同的情况下,删除所述缓存列表中所述网卡相关条目,将建立的网络连接套接字绑定所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段,更新所述缓存列表和所述系统路由表。
11.根据权利要求9所述的方法,其特征在于,监听所述网卡拔线事件,依据所述拔线事件更新所述缓存列表和所述系统路由表包括:
删除所述系统路由表中被拔线网卡相关条目;
标记所述缓存列表中所述被拔线网卡相关条目状态;
按照所述缓存列表合并路由,并更新到所述系统路由表;
删除所述缓存列表中所述被拔线网卡相关条目;
关闭相关网络连接原始套接字。
12.根据权利要求9所述的方法,其特征在于,监听所述网卡接线事件,依据所述接线事件更新所述缓存列表和所述系统路由表包括:
将建立的网络连接套接字绑定所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段,更新所述缓存列表和所述系统路由表。
13.根据权利要求1所述的方法,其特征在于,依据所述测试结果更新所述缓存列表和所述系统路由表之后,包括:
在监听到本地新建网络连接的情况下,判断所述新建网络连接对端IP地址是否落入私有地址范围内;
在判断所述新建网络连接对端IP地址落入所述私有地址范围内的情况下,判断新建网络连接对端IP地址是否在所述系统路由表中除所述系统默认网关以外的路由中;
在判断所述新建网络连接对端IP地址不是在所述系统路由表中除所述系统默认网关以外的路由中的情况下,复制所述新建网络数据包,发送所述网络连接套接字到每个被监听网卡并接收回应;
能收到响应的网卡为可访问对端地址的网卡,在每张所述可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收所述ICMP响应包,在所述缓存列表中保存不同优先级的所述对端地址相关路由;
根据所述缓存列表中网卡的路由及网卡的优先级,合并所述路由并更新到所述系统路由表。
14.根据权利要求1所述的方法,其特征在于,依据所述测试结果更新所述缓存列表和所述系统路由表之后,包括:
在监听到所述网卡所接网络中新建网络连接的情况下,判断新建网络连接两端IP地址是否落入私有地址范围内;
在判断所述新建网络连接两端IP地址落入所述私有地址范围内的情况下,监听所述新建网络连接是否收到回应,在监听到收到所述回应时,确定所述新建网络连接所属网卡;
在所述缓存列表中保存预设特定优先级指定地址的路由;
根据所述缓存列表中网卡的路由及网卡的优先级,合并或者拆分路由并更新到所述系统路由表。
15.一种配置多网卡的装置,其特征在于,包括:
获取模块,用于获取系统中网卡的配置信息;
匹配模块,用于匹配所述系统的网络连接和路由,建立缓存列表,并将所述缓存列表添加至所述系统路由表中;
绑定模块,用于将建立的网络连接套接字绑定到所述网卡,通过所述套接字和所述配置信息测试所述网卡的可访问网段;
更新模块,用于依据所述测试的结果更新所述缓存列表,再进一步更新到所述系统路由表中。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括以下至少之一:
修改监听模块,用于监听所述网卡IP地址配置修改事件,依据所述修改事件更新所述缓存列表和所述系统路由表;
拔线监听模块,用于监听所述网卡拔线事件,依据所述拔线事件更新所述缓存列表和所述系统路由表;
接线监听模块,用于监听所述网卡接线事件,依据所述接线事件更新所述缓存列表和所述系统路由表。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
本地新建网络连接监听模块,用于在监听到本地新建网络连接的情况下,判断所述新建网络连接对端IP地址是否落入私有地址范围内,在判断所述新建网络连接对端IP地址落入所述私有地址范围内的情况下,判断新建网络连接对端IP地址是否在所述系统路由表中除所述系统默认网关以外的路由中,在判断所述新建网络连接对端IP地址不是在所述系统路由表中除所述系统默认网关以外的路由中的情况下,复制所述新建网络数据包,发送所述网络连接套接字到每个被监听网卡并接收回应,在每张可访问对端地址的网卡上使用递增的跳值发送ICMP包至对端地址,并接收所述ICMP响应包,在所述缓存列表中保存不同优先级的所述对端地址相关路由,根据所述缓存列表中网卡的路由及网卡的优先级,合并所述路由并更新到所述系统路由表。
18.根据权利要求15所述的装置,其特征在于,所述装置还包括:
网络新建网络连接监听模块,用于在监听到所述网卡所接网络中新建网络连接的情况下,判断新建网络连接两端IP地址是否落入私有地址范围内,在判断所述新建网络连接两端IP地址落入所述私有地址范围内的情况下,监听所述新建网络连接是否收到回应,在监听到收到所述回应时,确定所述新建网络连接所属网卡,在所述缓存列表中保存预设特定优先级指定地址的路由,根据所述缓存列表中网卡的路由及网卡的优先级,合并或者拆分路由并更新到所述系统路由表。
CN201610008161.4A 2016-01-07 2016-01-07 配置多网卡的方法及装置 Active CN106953795B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610008161.4A CN106953795B (zh) 2016-01-07 2016-01-07 配置多网卡的方法及装置
PCT/CN2016/078897 WO2016188240A1 (zh) 2016-01-07 2016-04-08 配置多网卡的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610008161.4A CN106953795B (zh) 2016-01-07 2016-01-07 配置多网卡的方法及装置

Publications (2)

Publication Number Publication Date
CN106953795A true CN106953795A (zh) 2017-07-14
CN106953795B CN106953795B (zh) 2020-07-31

Family

ID=57392473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610008161.4A Active CN106953795B (zh) 2016-01-07 2016-01-07 配置多网卡的方法及装置

Country Status (2)

Country Link
CN (1) CN106953795B (zh)
WO (1) WO2016188240A1 (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592209A (zh) * 2016-07-08 2018-01-16 北京奇虎科技有限公司 一种多网卡服务器自动配置ip地址信息的方法和系统
CN108494679A (zh) * 2018-06-01 2018-09-04 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的SSH报文转发方法和装置
CN108718279A (zh) * 2018-06-01 2018-10-30 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的portal认证报文转发方法和装置
CN108880885A (zh) * 2018-06-19 2018-11-23 杭州迪普科技股份有限公司 一种报文处理方法及装置
CN109150638A (zh) * 2018-11-01 2019-01-04 郑州云海信息技术有限公司 一种路由管理方法及装置
WO2019015268A1 (zh) * 2017-07-21 2019-01-24 郑州云海信息技术有限公司 一种网络系统及其网络配置方法
CN109448351A (zh) * 2018-12-03 2019-03-08 中国水利水电科学研究院 有线网络和无线网络混合通信的方法及装置
CN109451085A (zh) * 2018-10-12 2019-03-08 厦门亿联网络技术股份有限公司 一种通过ip地址伪装实现网络隔离的方法及装置
CN110138890A (zh) * 2019-05-13 2019-08-16 广州视源电子科技股份有限公司 获取ip地址的方法、装置、计算机设备和存储介质
CN110661679A (zh) * 2019-09-06 2020-01-07 苏州浪潮智能科技有限公司 一种测试网卡的方法、装置、计算机存储介质及终端
CN110798491A (zh) * 2018-08-01 2020-02-14 北京国双科技有限公司 一种网络访问方法及装置、代理服务器
CN110881196A (zh) * 2019-10-12 2020-03-13 上海商米科技集团股份有限公司 基于android系统的移动终端的通信方法、移动终端和可读存储介质
CN111092934A (zh) * 2019-11-26 2020-05-01 福建天泉教育科技有限公司 更新客户端路由的方法、存储介质
CN111245728A (zh) * 2020-01-10 2020-06-05 华云数据有限公司 具多网卡计算装置的数据报文转发方法及系统
CN111314146A (zh) * 2020-02-25 2020-06-19 杭州涂鸦信息技术有限公司 一种iot设备服务网络切换方法和系统及其设备
CN111405639A (zh) * 2020-03-09 2020-07-10 深圳前海百递网络有限公司 无线网络连接方法、装置、可读存储介质和计算机设备
CN111600741A (zh) * 2020-04-02 2020-08-28 怀来斯达铭数据有限公司 一种设置网卡ip地址的方法及系统
CN111817962A (zh) * 2020-07-01 2020-10-23 厦门立林科技有限公司 一种安卓系统多网卡智能路由的方法
CN112152927A (zh) * 2019-06-26 2020-12-29 杭州海康威视数字技术股份有限公司 一种报文转发方法、系统及网卡和存储介质
CN112260947A (zh) * 2020-10-21 2021-01-22 北京如影智能科技有限公司 一种网络配置的方法及装置
CN112311625A (zh) * 2020-10-26 2021-02-02 珠海格力电器股份有限公司 网络的管理方法和装置、存储介质、电子装置
CN113098722A (zh) * 2021-04-09 2021-07-09 山东有人物联网股份有限公司 多网卡管理方法、装置及计算机可读存储介质
CN113543146A (zh) * 2021-07-16 2021-10-22 杭州迈冲科技有限公司 基于Android系统的网络共存的控制方法及装置
CN113918326A (zh) * 2021-09-29 2022-01-11 聚好看科技股份有限公司 一种处理请求的方法及装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109104329B (zh) * 2018-07-02 2023-11-07 深圳市速速优科技有限公司 一种测试路由器与网卡兼容性的系统
CN110134687A (zh) * 2019-05-13 2019-08-16 福建南威软件有限公司 一种通过表字段的动态增改控制清单要素的方法及系统
CN112398936B (zh) * 2020-11-06 2023-03-28 浪潮云信息技术股份公司 一种基于Kubernetes的多网卡容器实现方法及系统
CN113037563B (zh) * 2021-03-26 2023-01-24 山东英信计算机技术有限公司 一种云平台网络优化方法、装置、系统及可读存储介质
CN115225292B (zh) * 2021-04-15 2024-07-23 腾讯科技(深圳)有限公司 一种内网访问方法、装置、设备及计算机可读存储介质
CN114928567B (zh) * 2022-02-09 2023-08-29 浙江远望信息股份有限公司 一种基于网络扫描技术的多网卡设备发现的方法
CN116938829A (zh) * 2022-04-06 2023-10-24 华为云计算技术有限公司 一种数据转发方法及相关设备
CN115086207B (zh) * 2022-06-14 2024-08-20 深信服科技股份有限公司 一种网卡检测方法、装置及电子设备和存储介质
CN115499346B (zh) * 2022-09-15 2024-04-26 巨擎网络科技(济南)有限公司 一种多网卡的测速方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1519742A (zh) * 2003-01-23 2004-08-11 英业达股份有限公司 可均衡负载的网卡测试方法
CN1992732A (zh) * 2005-12-30 2007-07-04 英业达股份有限公司 网卡自动配置系统及方法
CN101917281A (zh) * 2010-06-10 2010-12-15 福建升腾资讯有限公司 一种网卡自动配置方法
US7937499B1 (en) * 2004-07-09 2011-05-03 Oracle America, Inc. Methods and apparatus for dynamically switching between polling and interrupt mode for a ring buffer of a network interface card

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1519742A (zh) * 2003-01-23 2004-08-11 英业达股份有限公司 可均衡负载的网卡测试方法
US7937499B1 (en) * 2004-07-09 2011-05-03 Oracle America, Inc. Methods and apparatus for dynamically switching between polling and interrupt mode for a ring buffer of a network interface card
CN1992732A (zh) * 2005-12-30 2007-07-04 英业达股份有限公司 网卡自动配置系统及方法
CN101917281A (zh) * 2010-06-10 2010-12-15 福建升腾资讯有限公司 一种网卡自动配置方法

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592209A (zh) * 2016-07-08 2018-01-16 北京奇虎科技有限公司 一种多网卡服务器自动配置ip地址信息的方法和系统
CN107592209B (zh) * 2016-07-08 2021-04-02 北京奇虎科技有限公司 一种多网卡服务器自动配置ip地址信息的方法和系统
WO2019015268A1 (zh) * 2017-07-21 2019-01-24 郑州云海信息技术有限公司 一种网络系统及其网络配置方法
CN108494679A (zh) * 2018-06-01 2018-09-04 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的SSH报文转发方法和装置
CN108718279A (zh) * 2018-06-01 2018-10-30 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的portal认证报文转发方法和装置
CN108718279B (zh) * 2018-06-01 2020-04-28 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的portal认证报文转发方法和装置
CN108494679B (zh) * 2018-06-01 2020-01-07 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的SSH报文转发方法和装置
CN108880885A (zh) * 2018-06-19 2018-11-23 杭州迪普科技股份有限公司 一种报文处理方法及装置
CN108880885B (zh) * 2018-06-19 2021-09-21 杭州迪普科技股份有限公司 一种报文处理方法及装置
CN110798491B (zh) * 2018-08-01 2022-10-28 北京国双科技有限公司 一种网络访问方法及装置、代理服务器
CN110798491A (zh) * 2018-08-01 2020-02-14 北京国双科技有限公司 一种网络访问方法及装置、代理服务器
CN109451085A (zh) * 2018-10-12 2019-03-08 厦门亿联网络技术股份有限公司 一种通过ip地址伪装实现网络隔离的方法及装置
CN109451085B (zh) * 2018-10-12 2021-08-10 厦门亿联网络技术股份有限公司 一种通过ip地址伪装实现网络隔离的方法及装置
CN109150638A (zh) * 2018-11-01 2019-01-04 郑州云海信息技术有限公司 一种路由管理方法及装置
CN109448351A (zh) * 2018-12-03 2019-03-08 中国水利水电科学研究院 有线网络和无线网络混合通信的方法及装置
CN110138890A (zh) * 2019-05-13 2019-08-16 广州视源电子科技股份有限公司 获取ip地址的方法、装置、计算机设备和存储介质
CN110138890B (zh) * 2019-05-13 2022-04-05 广州视源电子科技股份有限公司 获取ip地址的方法、装置、计算机设备和存储介质
CN112152927A (zh) * 2019-06-26 2020-12-29 杭州海康威视数字技术股份有限公司 一种报文转发方法、系统及网卡和存储介质
CN112152927B (zh) * 2019-06-26 2022-09-02 杭州海康威视数字技术股份有限公司 一种报文转发方法、系统及网卡和存储介质
CN110661679A (zh) * 2019-09-06 2020-01-07 苏州浪潮智能科技有限公司 一种测试网卡的方法、装置、计算机存储介质及终端
CN110661679B (zh) * 2019-09-06 2021-10-01 苏州浪潮智能科技有限公司 一种测试网卡的方法、装置、计算机存储介质及终端
CN110881196A (zh) * 2019-10-12 2020-03-13 上海商米科技集团股份有限公司 基于android系统的移动终端的通信方法、移动终端和可读存储介质
CN110881196B (zh) * 2019-10-12 2024-09-20 上海商米科技集团股份有限公司 基于android系统的移动终端的通信方法、移动终端和可读存储介质
CN111092934A (zh) * 2019-11-26 2020-05-01 福建天泉教育科技有限公司 更新客户端路由的方法、存储介质
CN111092934B (zh) * 2019-11-26 2022-06-07 福建天泉教育科技有限公司 更新客户端路由的方法、存储介质
CN111245728A (zh) * 2020-01-10 2020-06-05 华云数据有限公司 具多网卡计算装置的数据报文转发方法及系统
CN111314146A (zh) * 2020-02-25 2020-06-19 杭州涂鸦信息技术有限公司 一种iot设备服务网络切换方法和系统及其设备
CN111405639A (zh) * 2020-03-09 2020-07-10 深圳前海百递网络有限公司 无线网络连接方法、装置、可读存储介质和计算机设备
CN111405639B (zh) * 2020-03-09 2022-05-13 深圳前海百递网络有限公司 无线网络连接方法、装置、可读存储介质和计算机设备
CN111600741A (zh) * 2020-04-02 2020-08-28 怀来斯达铭数据有限公司 一种设置网卡ip地址的方法及系统
CN111817962B (zh) * 2020-07-01 2022-06-14 厦门立林科技有限公司 一种安卓系统多网卡智能路由的方法
CN111817962A (zh) * 2020-07-01 2020-10-23 厦门立林科技有限公司 一种安卓系统多网卡智能路由的方法
CN112260947B (zh) * 2020-10-21 2022-08-05 北京如影智能科技有限公司 一种网络配置的方法及装置
CN112260947A (zh) * 2020-10-21 2021-01-22 北京如影智能科技有限公司 一种网络配置的方法及装置
CN112311625A (zh) * 2020-10-26 2021-02-02 珠海格力电器股份有限公司 网络的管理方法和装置、存储介质、电子装置
CN113098722A (zh) * 2021-04-09 2021-07-09 山东有人物联网股份有限公司 多网卡管理方法、装置及计算机可读存储介质
CN113543146A (zh) * 2021-07-16 2021-10-22 杭州迈冲科技有限公司 基于Android系统的网络共存的控制方法及装置
CN113543146B (zh) * 2021-07-16 2024-02-09 杭州迈冲科技有限公司 基于Android系统的网络共存的控制方法及装置
CN113918326A (zh) * 2021-09-29 2022-01-11 聚好看科技股份有限公司 一种处理请求的方法及装置
CN113918326B (zh) * 2021-09-29 2024-07-16 聚好看科技股份有限公司 一种处理请求的方法及装置

Also Published As

Publication number Publication date
WO2016188240A1 (zh) 2016-12-01
CN106953795B (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN106953795A (zh) 配置多网卡的方法及装置
CN100561976C (zh) 用于使数据包穿越网络地址转换装置的方法和装置
JP4354294B2 (ja) ネットワーク・セグメントが互いに異なる複数のネットワークに接続されたゲートウェイ装置、およびipパケットを転送するためのプログラムおよび方法
US8261339B2 (en) Dynamic network tunnel endpoint selection
US6028846A (en) Method and system for testing real-time delivery of packets of data
CN1879388B (zh) 双模式防火墙
JP4330520B2 (ja) 通信装置
CN102638407A (zh) 报文转发方法、装置及网络设备
CN108418907B (zh) Ip地址分配方法及装置
CN107948150B (zh) 报文转发方法及装置
CN106487938B (zh) 域名的转发方法及装置
CN105207909B (zh) 一种发送信息的方法和网络装置
CN105227466A (zh) 通信处理方法和装置
CN112165460B (zh) 流量检测方法、装置、计算机设备和存储介质
EP1317112B1 (en) Handling connections moving between firewalls
CN108777664A (zh) 一种数据包处理方法及其设备、系统、存储介质
WO2005079029A1 (en) Method and apparatus for providing data over a dynamic wireless network
CN109756520B (zh) 动态访问控制方法、设备及计算机可读存储介质
CN107147581A (zh) 路由表项的维护方法和装置
CN109274720A (zh) 一种传输数据的方法和系统
CN108156034A (zh) 一种基于深度神经网络辅助的报文转发方法和报文转发系统
CN114567589B (zh) 路由上报的识别方法及装置
CN114500118B (zh) 卫星网络拓扑的隐藏方法及装置
CN114285907B (zh) 数据传输方法、装置、电子设备及存储介质
CN105991552A (zh) 对流表和nat会话表进行老化的方法和装置

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
TA01 Transfer of patent application right

Effective date of registration: 20200706

Address after: 210012 Nanjing, Yuhuatai District, South Street, Bauhinia Road, No. 68

Applicant after: Nanjing Zhongxing Software Co.,Ltd.

Address before: 518057 Nanshan District science and technology, Guangdong Province, South Road, No. 55, No.

Applicant before: ZTE Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant