CN101753426B - 防火墙多出口智能选路方法 - Google Patents
防火墙多出口智能选路方法 Download PDFInfo
- Publication number
- CN101753426B CN101753426B CN2008102279682A CN200810227968A CN101753426B CN 101753426 B CN101753426 B CN 101753426B CN 2008102279682 A CN2008102279682 A CN 2008102279682A CN 200810227968 A CN200810227968 A CN 200810227968A CN 101753426 B CN101753426 B CN 101753426B
- Authority
- CN
- China
- Prior art keywords
- private data
- address
- packet
- interface
- port information
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种防火墙多出口智能选路方法,包括:步骤A:数据包查询防火墙路由前,查找对应连接是否有私有数据,如果有,执行步骤B,如果没有,将数据包的地址端口信息和入接口存到对应连接的私有数据里;所述地址端口信息至少包括:源IP地址、目的IP地址、源端口、目的端口、协议号;步骤B:根据私有数据中存的地址端口信息和当前数据包的地址端口信息进行判断,当两者方向不同时,将私有数据中存的入接口作为出接口来选路;当两者方向相同时,如果入接口不同,则更新入接口,同时正常选路;本发明通过以首包的入接口作为出接口查询路由,可以做到数据包的源去源回,保证了多出口环境下的正常通信,从而更好的支持负载均衡。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种防火墙多出口智能选路方法。
背景技术
选路策略是防火墙最基本、最重要、也是最核心的部分。
常见的防火墙选路过程一般采用搜索路由表的方法并决定向哪个网络接口发送数据包。一个防火墙的的路由表可能包含几十条或者更多条目,但由于路由条目之间存在某种关联关系,所以选路必须按照某种规则进行查找,以达到最精确的结果。
目前防火墙采用二叉树加最长掩码匹配的路由查找方法,但是在多线路的情况下,选路可能会找到好几条同样匹配的路由。为了合理的分配带宽,这时防火墙就采用负载均衡的方法,轮询的返回其中一条路由作为选路结果,这样源IP地址和目的IP地址相同的数据包就可能经过不同的路径进行转发。
在多出口的情况下,实现负载均衡就有可能不能正常通信,因为当数据包通过链路上的路由器时,路由器会记录下数据包的源、目的地址和端口信息,然后再通过防火墙到达目的地址,等到该数据包的回包再通过防火墙时,由于是多出口,防火墙会做负载均衡而使回包不一定会走来的那条路,等到这个回包再到达路由器时,路由器因为状态检测机制会检查回包的地址、端口信息,当发现回包信息和与其记录的信息不一致,就认为回包不合法,于是将丢弃回包,从而可能会造成通信中断。
如图1所示,图1是一个多线路的VPN环境,图中VPN设备就是防火墙,在这个拓扑中,防火墙实现VPN功能搭建隧道。120.0.0.0/24子网和180.0.0.0/24子网的通信有两条线路:
(1)A线路是经过路由器C—VPN1—路由器A—路由器B—VPN2,其中指定从VPN1的eth0到VPN2的eth0口建立一条动态隧道。
(2)B线路是是经过路由器C—VPN3—防火墙—路由器B—VPN2,是NAT方式,其中从VPN3的eth0到VPN2的eth3口建立一条动态隧道。
(3)路由器C指定到180.0.0.0/24子网的有2条默认路由,下一跳分别是VPN1和VPN3。
(4)VPN2指定到120.0.0.0/24子网的报文有2条隧道进行加密,出接口分别为eth0和eth1。
(5)路由器B指定到120.0.0.0/24子网的策略路由有2条,其中源地址为40.0.0.0/24子网的下一跳是路由器A,而源地址为50.0.0.0/24子网的下一跳是防火墙。
A线路的保护子网与B线路的保护子网是一致的,120.0.0.0/24<-->180.0.0.0/24,两条隧道是同时活跃的。
现有技术中,当120.0.0.0/24子网的主机主动跟180.0.0.0/24子网的主机通信时,比如应用FTP、TFTP、HTTP或者ICMP时,数据包到达路由器C时,查询路由表后找到两条路由,进行负载均衡,可能选择从A线路走,也有可能从B线路走,同时路由器C会记录数据包的地址端口信息,作为状态检测的记录。假如数据包是从走A线路到达180.0.0.0/24网段,而180.0.0.0/24子网回的数据包到达VPN2选路时也会找到两条隧道进行加密,分别是eth0对应的线路A和eth1对应的线路B。此时也进行负载均衡,回包的路径就在这两个路径中轮询的选择,假如数据包从B线路回到路由器C,路由器C会发现回包的信息和以前记录的不一致,于是丢弃了回包,这样通信就中断了,也就是说,120.0.0.0/24子网的主机跟180.0.0.0/24子网的主机不能通信,它们之间不能互相访问,任何应用都不能进行。
所以只有当数据包实现源去源回,也就是说,从A线路来的数据包再从A线路回,这样才能根本解决这个问题。
发明内容
鉴于上述的分析,本发明目的在于提供一种防火墙多出口智能选路方法,用以解决现有技术中防火墙选路过程中,由于负载均衡可能造成通信中断的问题。
本发明的目的主要是通过以下技术方案实现的:
本发明提供了一种保存数据包入接口,在回包查询路由表时,以保存的入接口作为出接口为查询条件的方法,来实现源去源回的功能。
本发明有益效果如下:
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为为现有技术中某一网络拓扑结构示意图;
图2为本发明所述方法的流程示意图;
图3为本发明所述方法中举例的网络拓扑结构示意图。
具体实施方式
本发明的核心思想是,首包经过防火墙时记录入接口,首包的回包、或者反方向的数据包、或者和父连接反方向的子连接的数据包选路时,以首包的入接口作为出接口查询路由。
下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
为了实现智能选路,需要在数据包查询路由表时用条件限制查找结果。数据包选路时一般是用目的IP地址匹配防火墙路由表的目的网段,我们在回包选路时用目的IP地址和接口同时匹配路由表,其中的接口为首包的入接口,目的IP地址就是回包的IP地址。
步骤201:数据包查询防火墙路由表之前,会先查找对应连接有没有私有数据。如果有,执行步骤203,如果没有,执行步骤202。
步骤202:没有私有数据,防火墙会记录数据包的源IP地址、目的IP地址、源端口、目的端口、协议号和入接口信息,并把信息保存在对应连接的私有数据中(同一连接的数据流的所有数据包的源IP地址、目的IP地址、源端口、目的端口、协议号相同,但是入接口可能因为链路备份等改变)。比如通信过程中,首包到达防火墙(属于同一连接的数据流中的第一个数据包),查路由前发现连接中没有私有数据,于是把地址端口信息和入接口存到对应连接的私有数据里。
如果建立子连接,则根据子连接和父连接的方向存放对应的源IP地址、目的IP地址、源端口、目的端口、协议号,并把父连接私有数据里的入接口(也即首包的IP地址)存到子连接的私有数据里。
步骤203:根据私有数据中存的地址端口信息中的相关源信息(源IP地址、目的端口)和当前数据包的地址端口信息中的相关目的信息(目的IP地址、目的端口)进行判断,如果私有数据中存的相关源信息是当前数据包的相关目的信息,说明当前数据包是该连接且相反方向的数据包,执行步骤204,否则执行步骤205;
步骤204:将数据包的出接口替换为私有数据中存的入接口,以出接口为查询条件查找路由。
步骤205:匹配私有数据的地址端口信息和当前数据包的地址端口信息是否一致,如果一致,执行步骤207,否则执行206。
步骤206:正常选路,即以现有的轮询方式查找路由。
步骤207:匹配私有数据的入接口和当前数据包的入接口是否一致,如果一致,则直接执行步骤206;如果不一致,更新私有数据的入接口信息,将私有数据中存的入接口替换为当前数据包中的入接口后,再执行步骤206。
比如首包、同方向的数据包、和父连接同方向的子连接的数据包选路时,私有数据中存的源IP地址、目的IP地址、源端口、目的端口、协议号和这些数据包中的信息肯定是相同的;而首包的回包、或者反方向的数据包、或者和父连接反方向的子连接的数据包选路时,私有数据存的源IP地址、目的IP地址信息肯定和当前数据包的源IP地址、目的地址是相反的,这时就用私有数据的入接口作为出接口来选路。
当连接清除时,私有数据要进行释放,否则就会内存泄漏。
同样的,如果同时有多条线路跟防火墙本身通信,比如telnet防火墙等操作,这种称作是到本机(因为目的地址是防火墙的接口IP地址,而不是大部分的转发报文)的连接,我们也会记录访问防火墙的入接口,回包的时候确保选择的路由是进来的那条路径,这样,到本机的连接也能实现智能选路。
比如图3所示,用户通过网通、电信两条链路做负载均衡,防火墙上配了3条默认路由,下一跳分别是网通服务器、电信服务器和内网服务器。如果从内网上telnet墙,由于有3条默认路由,可能回包会发给网通服务器或者电信服务器,这样telnet就失败了。但是源去源回功能就可以保证通信成功,因为我们记录了报文的入接口eth0,回包找到的下一跳只能是内网服务器。
为了便于理解本发明,下面还结合附图1举例对本发明实施例所述方法进行举例说明。
当首包查询防火墙路由表之前,将其首包的源IP地址、目的IP地址、源端口、目的端口、入接口和协议号存到对应连接的私有数据里。例如,对于图1所述情况,120.0.0.0/24子网主机120.0.0.10ping180.0.0.0/24子网主机180.0.0.10时,首包到达路由器C选路后的下一跳是VPN1,那么数据就走A线路。当数据包到达VPN2时,五元组信息为源IP地址是120.0.0.10,目的IP地址是180.0.0.10,源端口是1024,目的端口是8,协议类型为0800,入接口为eth0。于是VPN2就在对应连接中记录五元组信息和入接口信息。接着,VPN2把数据包发给目的主机180.0.0.10。
当主机180.0.0.10给主机120.0.0.10回数据包时,当回包到达VPN2,首先查询对应连接的私有数据信息,由于首包经过VPN2时已经保存了五元组和入接口信息所以对应连接中有私有数据信息。接下来就要进行数据包当前方向和首包方向是否一致的判断,这个判断是通过比较数据包报文首部的源和目的IP地址、端口和对应连接私有数据中保存的五元组信息源和目的信息是否相反,协议类型是否一致得出的。比如回包的源IP地址是180.0.0.10,目的IP地址是120.0.0.10,源端口是8,目的端口是1024,协议类型为0800,而私有数据中的五元组信息的源IP地址是当前数据包的目的IP地址,目的IP地址是当前数据包的源IP地址,协议类型也是0800,说明该数据包和首包的方向是相反的。当然,如果数据包的五元组信息和连接私有数据的五元组相同的话,就说明是同向的。接下来就该查路由了,这时确定数据包是反方向的同连接的包,就用私有数据中记录的入接口eth0作为出接口去查询路由,从而VPN2找到的是eth0那条隧道进行加密,而不是在eth0和eth1之间做负载均衡。这样,在eth0和eth1两个出口的情况下,就保证了从A线路来的数据包的回包还是走A线路。
综上所述,本发明提供了一种防火墙多出口智能选路方法,通过以首包的入接口作为出接口查询路由,可以做到数据包的源去源回,保证了多出口环境下的正常通信,从而更好的支持负载均衡。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (3)
1.一种防火墙多出口智能选路方法,其特征在于,所述方法包括:
步骤A:数据包查询防火墙路由前,查找对应连接是否有私有数据,如果有,执行步骤B,如果没有,将数据包的地址端口信息和入接口存到对应连接的私有数据里;所述地址端口信息至少包括:源IP地址、目的IP地址、源端口、目的端口、协议号;
步骤B:根据私有数据中存的地址端口信息和当前数据包的地址端口信息进行判断,当两者方向不同时,将私有数据中存的入接口作为出接口来选路;当两者方向相同时,如果入接口不同,则更新入接口,同时正常选路;所述步骤B具体包括:步骤B1:判断私有数据里的相关源信息和当前数据包的相关目的信息是否一致,如果不一致,执行步骤B2,否则执行步骤B3;步骤B2:判断私有数据里的入接口和当前数据包的入接口是否一致,如果一致,就正常选路;否则需要再判断私有数据的地址端口信息和当前数据包的地址端口信息是否一致,如果一致,则正常选路,否则先更新私有数据后再正常选路;步骤B3:将当前数据包中的出接口赋值为私有数据中存的入接口,以出接口为查询条件选路。
2.根据权利要求1所述的方法,其特征在于,当建立子连接时,所述步骤A还包括:根据子连接和父连接的方向存放对应的地址端口信息,并把父连接私有数据里的入接口存到子连接的私有数据里。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:当清除对应连接时,释放私有数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102279682A CN101753426B (zh) | 2008-12-03 | 2008-12-03 | 防火墙多出口智能选路方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102279682A CN101753426B (zh) | 2008-12-03 | 2008-12-03 | 防火墙多出口智能选路方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101753426A CN101753426A (zh) | 2010-06-23 |
CN101753426B true CN101753426B (zh) | 2012-03-28 |
Family
ID=42479856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102279682A Active CN101753426B (zh) | 2008-12-03 | 2008-12-03 | 防火墙多出口智能选路方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101753426B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647345A (zh) * | 2012-03-30 | 2012-08-22 | 汉柏科技有限公司 | 对ipsec数据报文进行负载分担的方法及系统 |
CN103269316B (zh) * | 2013-05-28 | 2016-06-29 | 北京星网锐捷网络技术有限公司 | 选路的处理方法和装置及网络设备 |
CN112187635B (zh) * | 2019-07-01 | 2023-02-03 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN110798340B (zh) * | 2019-10-10 | 2022-11-25 | 平安普惠企业管理有限公司 | 一种端口信息梳理方法、设备及服务器 |
CN111726295B (zh) * | 2020-06-28 | 2023-04-07 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、网络设备及计算机可读存储介质 |
CN113810429B (zh) * | 2021-11-16 | 2022-02-11 | 北京安博通科技股份有限公司 | 一种自动化策略开通的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087258A (zh) * | 2007-08-01 | 2007-12-12 | 杭州华三通信技术有限公司 | 一种跨虚拟私有网络访问直联设备的方法及装置 |
CN101212314A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 单一芯片实现多项网络安全功能的方法 |
-
2008
- 2008-12-03 CN CN2008102279682A patent/CN101753426B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212314A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 单一芯片实现多项网络安全功能的方法 |
CN101087258A (zh) * | 2007-08-01 | 2007-12-12 | 杭州华三通信技术有限公司 | 一种跨虚拟私有网络访问直联设备的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101753426A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3677000B1 (en) | Method and system for tracing packets in software defined networks | |
CN111886833B (zh) | 重定向控制信道消息的方法和用于实现该方法的设备 | |
EP3420708B1 (en) | Dynamic re-route in a redundant system of a packet network | |
EP3254417B1 (en) | Method and system for supporting port ranging in a software-defined networking (sdn) system | |
US7568047B1 (en) | Method and apparatus for adaptive service label management | |
US7738457B2 (en) | Method and system for virtual routing using containers | |
JP4076586B2 (ja) | マルチレイヤ・ネットワーク要素用のシステムおよび方法 | |
CN1829195B (zh) | 分组转发装置 | |
US20170070416A1 (en) | Method and apparatus for modifying forwarding states in a network device of a software defined network | |
WO2011087085A1 (ja) | 計算機、ネットワーク接続切替え方法およびプログラム | |
US20200267051A1 (en) | Remotely controlling network slices in a network | |
CN100452746C (zh) | 一种确定出接口的方法及多接入宽带路由器 | |
CN101753426B (zh) | 防火墙多出口智能选路方法 | |
CN102792651B (zh) | 在mac层应用服务路径路由选择的装置 | |
US9479596B2 (en) | Pairing internal network identifier with external network identifier | |
CN101425942A (zh) | 一种实现双向转发检测的方法、装置及系统 | |
EP3381162B1 (en) | Network routing systems and techniques | |
US10749710B2 (en) | Service offload or bypass initiated by a service function forwarder in a service function chaining network | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
JP5713865B2 (ja) | Vpn終端装置、通信システム、パケット転送方法、及びプログラム | |
Cisco | Configuring DECnet | |
Cisco | Configuring DECnet | |
Turull et al. | Using libNetVirt to control the virtual network | |
WO2020173541A1 (en) | Virtual network function placement in a cloud environment based on historical placement decisions and corresponding performance indicators | |
Slyne et al. | FLATLANd: A novel SDN-based telecoms network architecture enabling NFV and metro-access convergence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |