Chinaunix首页 | 论坛 | 博客
  • 博客访问: 917240
  • 博文数量: 194
  • 博客积分: 7991
  • 博客等级: 少将
  • 技术积分: 2067
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-09 22:03
文章分类

全部博文(194)

文章存档

2010年(8)

2009年(71)

2008年(109)

2007年(6)

我的朋友

分类:

2008-01-09 15:59:44


目前在做的项目是一个入侵防护系统(IPS, Intrusion Prevention System)。

项目是这样子的:
一个10G网卡,俩口,一个口接内网,一个口接外网;在网卡中编写一套IPS系统,IPS的运行不需要主机的干预,也就是IPS Offload。

IPS系统分成两部分,一部分是IPS主体逻辑,一部分是IPS配置流程。IPS主题逻辑部分借鉴了netfilter;IPS配置流程则是由我来全新设计实现的。


IPS主体逻辑:
从外网口进来的数据包,要么被丢弃,要么被转发,采取何种动作,由IPS规则确定;规则可以由用户添加,也可以由IPS根据网络状况动态生成。规则的组织和匹配参考了netfilter的设计,由别的同事实现。


IPS配置流程:
目的是实现网卡上IPS的启动,停止,规则的添加、删除、修改,状态的统计。我提供了两种方式的配置,一种是命令行方式的配置,一种是通过WEB UI的方式。

命令行方式的配置包含三个层次:User App,Host Driver,NIC Firmware。
User App实现配置逻辑,它解释命令行,理解用户意图,并将意图向下传递
Host Driver充当桥梁的作用,将用户意图向下传递到网卡上,交给firmware处理
NIC Firmware根据用户意图,执行相应的动作
其中,
User App和Host Driver之间采用ioctl接口进行交互
Host Drvier与NIC Firmware之间采用消息通讯,采用DMA进行数据传输

WEB UI采用了PHP。采用编写PHP可扩展模块的方式提供一个接口在PHP页面中调用。该接口接收PHP页面传下来的配置参数,组成一个合法的User App命令行,然后执行。


突然发现,我参与的这一个项目,竟然把编程的各个层次由上到下都涉及到了,呵呵:
WEB UI   PHP脚本
User App   C
Host Driver  内核编程
NIC Firmware  固件开发

编程如此,足矣。

sxg

 

阅读(877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~