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

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