ZYNQ防火墙开发3-系统软件框架

一、防火墙软件框图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
+------------------------------------------------------+                                  
| Cortex-A9 |
| +---------------------------+ +--------+ |
| | linux networking stack <-------> route | |
| +-----^---------------------+ +---^----+ |
| | | |
| +-----v-----+ +-----------+ +---v----+ |
| | web-php <----> zend | | eth0 | |
| +-----------+ +-----^-----+ +---^----+ | +--------+ +--------+
| | |rgmii | |vlan1-e0|--> modern |
| +-----------+ +-----v-----+ +---v----+ | | | +--------+
| | rpc <----> c-api | | | | |[switch]|
| +-----^-----+ +-----------+ | K7 | | | | +--------+
| | |Firewall| | |vlan2-e1<--> pc-1 |
| +-----v-----+ +-----------+ AXI | |rgmii | +-----+ | | +--------+
| | defense <----> register <------> <---------> phy <---> | +--------+
| +-----^-----+ +-----------+ +--------+ | +-----+ |vlan2-e2<--> pc-2 |
+------------------------------------------------------+ +--------+ +--------+

​ 此项目在真实研发过程包含、架构师、系统开发、网管开发、协议开发、驱动适配、逻辑、硬件、结构、测试人员分工实现。当然研发流程也包含产品、项目经理等。其中除了架构师需要对产品整体了解和设计,其它人员都是各司其职,完成各自部分即可。这也反映出作为架构师技术范围要广,另外从架构师职称考试的内容也可以看出。其他工程只要专注自己的领域。所以大部分情况其他工程师都不太了解别的模块如何实现的。甚至公司为了保护知识产权,每个工程师权限也不同和能看到的代码也不一样。例如:协议开发人员是看不到驱动代码的,驱动会以库的形式提供协议人员使用。

二、防火墙配置软件

  1. 防火墙通过php页面进行配置。

  2. php在通过c语言的rpc接口调用defense模块。

  3. defense通过axi的方式配置fpga寄存器。

三、防火墙的防御流程

 1. 在系统上配置路由功能,使业务报文能进行软路由。
 2. 业务报文首先经过fpga的防御模块。
 1. 如果流量属于非法包文则丢弃,反之通过rgmii上送给cpu。
 1. 协议栈进行正常的路由再通过rgmii和fpga送出。

四、web环境搭建

1
2
3
4
5
6
sudo apt-get install lighttpd
sudo apt-get install php7.0-cgi
sudo apt install php-dev
sudo cp lighttpd/php.ini /etc/php/7.0/cgi/
sudo phpenmod -v 7.0 gettext
sudo lighttpd -f lighttpd/lighttpd.conf

​ 嵌入式一般可以用buildroot,当然开发一些小网关现在也开始用openwrt。

Screenshot_20240327_100709

五、进程间通信问题

1. rpc    <---->   c-api
1. 下集会对进程间通信做单独介绍。 

ZYNQ防火墙开发3-系统软件框架
http://witbit.cn/视频课程/FIREWALL_GATEWAY/ZYNQ防火墙开发3-系统软件框架.html
作者
朝彻
发布于
2025年2月13日
许可协议