CN111600852A - 一种基于可编程数据平面的防火墙设计方法 - Google Patents

一种基于可编程数据平面的防火墙设计方法 Download PDF

Info

Publication number
CN111600852A
CN111600852A CN202010346636.7A CN202010346636A CN111600852A CN 111600852 A CN111600852 A CN 111600852A CN 202010346636 A CN202010346636 A CN 202010346636A CN 111600852 A CN111600852 A CN 111600852A
Authority
CN
China
Prior art keywords
data packet
configuration file
firewall
programmable
data
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.)
Pending
Application number
CN202010346636.7A
Other languages
English (en)
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.)
China Ship Development and Design Centre
Original Assignee
China Ship Development and Design Centre
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 China Ship Development and Design Centre filed Critical China Ship Development and Design Centre
Priority to CN202010346636.7A priority Critical patent/CN111600852A/zh
Publication of CN111600852A publication Critical patent/CN111600852A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于可编程数据平面的防火墙设计方法,该方法包括以下步骤:1)将可编程网卡的硬件固件文件、流水线处理配置文件、用户规则配置文件发送到带有可编程网卡的服务器端;2)服务器端接收到用户规则配置文件后,删除原先的用户规则配置文件并进行重新配置,配置完成后,重新运行配置后的防火墙功能;3)当可编程网卡运行时,在可编程数据平面实现防火墙应用;4)允许转发的数据包经过与网卡相连的PCI总线传入主机系统,供内部应用程序使用。本发明通过将防火墙功能迁移到可编程数据平面,在网络内部减少了发往服务器的流量,缓解了服务器进行数据处理的压力,提高服务吞吐量。

Description

一种基于可编程数据平面的防火墙设计方法
技术领域
本发明涉及网络安全技术,尤其涉及一种基于可编程数据平面的防火墙设计方法。
背景技术
防火墙是一种网络安全设备,它允许对入站和出站的流量进行监控,使用一组预先定义的安全规则来同意或拒绝事件。传统的软件防火墙应用程序有Linux IP-Chains、Snort和ClamAV等免费开源工具。这些软件防火墙的共同特点都是在网络堆栈层过滤通信数据包,包过滤模块直接集成到操作系统的内核中,拦截每一个传入和传出的数据包并进行过滤,根据用户自定义的安全策略对数据包进行评估,然后执行丢弃或允许访问受保护的计算机等操作。通常采用的Snort、IP-Chains等工具通过libpcap或netfilter模块来获取数据包的方法数据处理效率低,尤其当数据量变大时,会频繁的触发系统软中断来获取数据,引入巨大的中断开销,导致系统无法承受。此外,当用户态程序需要数据时,需要将数据包从内核缓冲区拷贝到用户缓冲区,带来系统调用和数据包复制开销,这会严重制约其报文处理性能。
为了更好的利用系统资源,节省网络开销并提高数据处理效率,英特尔开发了数据平面开发套件(Data Plane Development Kit,简称DPDK),为网络功能开发人员提供了一套用于构建高速数据平面应用程序的工具。DPDK包含一组用于快速数据包处理的库和兼容DPDK的网卡的驱动程序,它基于轮询模式的PMD(Poll Mode Drivers)驱动方式进行数据包处理,而不是默认的系统中断模式。轮询模式采用忙等待技术,不断检查网络接口中的状态变化,允许网络应用程序直接从/向主机的网卡提取和推送数据。这有效的减少了数据包处理产生的I/O中断和从内核到用户内存的数据包复制次数,从而加快了数据包的处理速度。DPDK由于上述特性,目前成为了主流软件防火墙程序的首选。但是,DPDK技术还是在用户态进行数据包处理,依然会消耗较多的CPU资源。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于可编程数据平面的防火墙设计方法。
本发明解决其技术问题所采用的技术方案是:一种基于可编程数据平面的防火墙设计方法,包括以下步骤:
1)将可编程网卡的硬件固件文件、流水线处理配置文件、用户规则配置文件发送到带有可编程网卡的服务器端;
2)服务器端接收到用户规则配置文件后,删除原先的用户规则配置文件并进行重新配置,配置完成后,重新运行配置后的防火墙功能;
3)当可编程网卡运行时,在可编程数据平面实现防火墙应用,具体如下:
3.1)数据平面根据控制器下发的用户规则配置文件,使能本地防火墙功能,并配置相应的转发规则;
3.2)当数据平面收到数据包时,根据流水线处理配置文件对数据包进行解析,提取出包头中的有用信息;
3.3)根据包头中的有用信息中的匹配项,将数据包匹配相应转发规则进行网络地址的转换并决定转发端口;
3.4)数据包进入防火墙模块,防火墙模块先根据连接状态表对该数据包进行连接状态检查,如果检查结果为已建立连接的流的数据包,则跳过接下来的过滤规则检查,将该数据记录到连接状态表中,并更新连接状态信息,否则将包头中的匹配项与过滤规则表进行匹配,如果命中,就丢弃该数据包,如果没命中,允许转发并更新连接状态表;所述连接状态表用于数据包连接状态的记录;
3.5)根据相应的转发决策对数据包进行转发;
4)允许转发的数据包经过与网卡相连的PCI总线传入主机系统,供内部应用程序使用。
本发明产生的有益效果是:
本发明在将防火墙功能迁移到可编程数据平面上时,需要在保护内部网络安全的同时也不降低网络的I/O性能,实现对数据包的线速处理的同时,将防火墙功能部署到可编程数据平面上,不影响数据平面的数据分组处理速度,从而获得大幅性能提升。
在交换机本地及时获取数据包信息,并根据信息进行快速的处理,提升全网的稳定性,保障通信的安全性;
通过将防火墙功能迁移到可编程数据平面,在网络内部减少了发往服务器的流量,缓解了服务器进行数据处理的压力,提高服务吞吐量。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的基于可编程数据平面的防火墙设计框架示意图;
图2是本发明实施例的总体工作流程图;
图3是本发明实施例的数据平面防火墙逻辑示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1和图2所示,一种基于可编程数据平面的防火墙设计方法,包括以下步骤:
(1)经由远程主机的客户端将可编程网卡的硬件固件文件、流水线处理配置文件、用户规则配置文件等发送到可编程网卡的服务器端;
(2)服务器端接收到远程配置文件后,删除原先的配置文件并进行重新配置,配置完成后,重新运行全新的防火墙功能;
(3)当可编程网卡运行时,首先,数据平面根据控制器下发的用户规则配置文件,使能本地防火墙功能,并配置相应的转发规则。然后,当数据平面收到数据包时,对数据包进行解析,提取出包头中的有用信息。之后,数据包进入转发模块并匹配相应转发规则进行网络地址的转换并决定转发端口。之后,数据包进入防火墙模块,防火墙模块首先会对该数据包进行连接状态检查,如果检查结果为已建立连接的流的数据包,则跳过接下来的过滤规则检查,将该数据记录到连接状态表中,并更新连接状态信息,否则将包头中的匹配项与过滤规则表进行匹配,如果命中,就丢弃该数据包,如果没命中,允许转发并更新状态表。最后,根据相应的转发决策进行转发,防火墙模块的工作流程如图3所示。
通过可编程网卡就能够通过识别出已建立的连接,使得对流的状态处理逻辑变得简单,对于之后到达的相同流的包转发的决策也会更快。
(4)允许转发的内部流量经过与网卡相连的PCI总线传入主机系统,供内部应用程序使用。
本发明的目的是提供一种利用现代可编程数据平面来动态卸载防火墙逻辑功能的方法,我们在可编程数据平面上实现了一个防火墙应用程序,实现减少CPU利用率,提高网络吞吐量的目的。系统的总体框架如图1所示,实现了两个功能:数据平面的防火墙功能设计和控制平面功能动态管理。
控制平面功能动态管理:主要负责管理流表规则的下发、防火墙的动态管理和数据面状态的收集,控制平面和数据平面通过thriftAPI进行交互通信,实现对防火墙功能的动态管理和配置。
数据平面防火墙功能设计:则是在数据分组的处理过程中,根据定义好的过滤规则检查每个数据分组,并根据是否与规则匹配来决定是否让该数据分组通过,数据平面则主要由三个部分组成,分别是数据包解析、数据包转发和防火墙,在防火墙模块中会嵌入一个连接状态模块(状态表),进行数据包连接状态的记录。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (1)

1.一种基于可编程数据平面的防火墙设计方法,其特征在于,包括以下步骤:
1)将可编程网卡的硬件固件文件、流水线处理配置文件、用户规则配置文件发送到带有可编程网卡的服务器端;
2)服务器端接收到用户规则配置文件后,删除原先的用户规则配置文件并进行重新配置,配置完成后,重新运行配置后的防火墙功能;
3)当可编程网卡运行时,在可编程数据平面实现防火墙应用,具体如下:
3.1)数据平面根据控制器下发的用户规则配置文件,使能本地防火墙功能,并配置相应的转发规则;
3.2)当数据平面收到数据包时,根据流水线处理配置文件对数据包进行解析,提取出包头中的有用信息;
3.3)根据包头中的有用信息中的匹配项,将数据包匹配相应转发规则进行网络地址的转换并决定转发端口;
3.4)数据包进入防火墙模块,防火墙模块先根据连接状态表对该数据包进行连接状态检查,如果检查结果为已建立连接的流的数据包,则跳过接下来的过滤规则检查,将该数据记录到连接状态表中,并更新连接状态信息,否则将包头中的匹配项与过滤规则表进行匹配,如果命中,就丢弃该数据包,如果没命中,允许转发并更新连接状态表;所述连接状态表用于数据包连接状态的记录;
3.5)根据相应的转发决策对数据包进行转发;
4)将转发的数据包经过与网卡相连的PCI总线传入主机系统,供内部应用程序使用。
CN202010346636.7A 2020-04-27 2020-04-27 一种基于可编程数据平面的防火墙设计方法 Pending CN111600852A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010346636.7A CN111600852A (zh) 2020-04-27 2020-04-27 一种基于可编程数据平面的防火墙设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010346636.7A CN111600852A (zh) 2020-04-27 2020-04-27 一种基于可编程数据平面的防火墙设计方法

Publications (1)

Publication Number Publication Date
CN111600852A true CN111600852A (zh) 2020-08-28

Family

ID=72189457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010346636.7A Pending CN111600852A (zh) 2020-04-27 2020-04-27 一种基于可编程数据平面的防火墙设计方法

Country Status (1)

Country Link
CN (1) CN111600852A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114707A (zh) * 2021-06-15 2021-07-13 南方电网数字电网研究院有限公司 一种电力芯片以太网控制器规则过滤方法
CN113282296A (zh) * 2021-05-31 2021-08-20 河南信大网御科技有限公司 基于数据面编程的数据转发方法及装置
CN114499970A (zh) * 2021-12-27 2022-05-13 天翼云科技有限公司 一种网络安全服务配置方法、装置及电子设备
CN115348065A (zh) * 2022-07-29 2022-11-15 中国舰船研究设计中心 一种基于可编程数据平面的防火墙绕行冲突检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546635B1 (en) * 2004-08-11 2009-06-09 Juniper Networks, Inc. Stateful firewall protection for control plane traffic within a network device
CN108769084A (zh) * 2018-08-28 2018-11-06 山东超越数控电子股份有限公司 一种处理器与防火墙

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546635B1 (en) * 2004-08-11 2009-06-09 Juniper Networks, Inc. Stateful firewall protection for control plane traffic within a network device
CN108769084A (zh) * 2018-08-28 2018-11-06 山东超越数控电子股份有限公司 一种处理器与防火墙

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱树永: "软件定义网络(SDN)数据平面带状态转发技术研究", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282296A (zh) * 2021-05-31 2021-08-20 河南信大网御科技有限公司 基于数据面编程的数据转发方法及装置
CN113114707A (zh) * 2021-06-15 2021-07-13 南方电网数字电网研究院有限公司 一种电力芯片以太网控制器规则过滤方法
CN113114707B (zh) * 2021-06-15 2021-08-24 南方电网数字电网研究院有限公司 一种电力芯片以太网控制器规则过滤方法
CN114499970A (zh) * 2021-12-27 2022-05-13 天翼云科技有限公司 一种网络安全服务配置方法、装置及电子设备
CN114499970B (zh) * 2021-12-27 2023-06-23 天翼云科技有限公司 一种网络安全服务配置方法、装置及电子设备
CN115348065A (zh) * 2022-07-29 2022-11-15 中国舰船研究设计中心 一种基于可编程数据平面的防火墙绕行冲突检测方法
CN115348065B (zh) * 2022-07-29 2024-04-12 中国舰船研究设计中心 一种基于可编程数据平面的防火墙绕行冲突检测方法

Similar Documents

Publication Publication Date Title
CN111600852A (zh) 一种基于可编程数据平面的防火墙设计方法
EP2933955B1 (en) Deep packet inspection method, device, and coprocessor
CN108600053B (zh) 一种基于零拷贝技术的无线网络数据包捕获方法
US8176300B2 (en) Method and apparatus for content based searching
US9356844B2 (en) Efficient application recognition in network traffic
US10404556B2 (en) Methods and computer program products for correlation analysis of network traffic in a network device
US7653754B2 (en) Method, system and protocol that enable unrestricted user-level access to a network interface adapter
CA2445751C (en) Dynamic packet filter utilizing session tracking
US8645532B2 (en) Methods and computer program products for monitoring the contents of network traffic in a network device
JP2009523275A (ja) ランタイム適応サーチプロセッサ
US20190190982A1 (en) Network interface device
KR101076683B1 (ko) 호스트 기반의 망분리 장치 및 방법
CN112769597A (zh) 一种云边协同虚拟化场景的容器网络限流方法和系统
Shuai et al. Performance optimization of Snort based on DPDK and Hyperscan
CN111641659A (zh) 一种交换机的中央处理器防攻击的方法、装置、设备及存储介质
CN115033407B (zh) 一种适用于云计算的采集识别流量的系统和方法
CN113453278B (zh) 一种基于5g upf下的tcp包分段组包方法及终端
CN115495406A (zh) 一种基于PCIe的报文传输方法、装置、设备及存储介质
KR101446280B1 (ko) 인터미디어트 드라이버를 이용한 변종 악성코드 탐지 및 차단 시스템 및 그 방법
CN112333162A (zh) 一种业务处理方法及设备
CN113572700A (zh) 流量检测方法、系统、装置及计算机可读存储介质
KR102352187B1 (ko) 패시브 핑거프린트 방법 및 장치
CN113556323B (zh) 一种应用于企业内控的旁路无侵入流量采集系统
KR101875093B1 (ko) HTTPs 패킷분석 처리성능 향상 시스템
CN116886422A (zh) 一种基于eBPF的网络高速转发中继方法及系统

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200828