设计接入网关

一个接入的网关和网站的网关面临的问题是不同的.接入网站有HA/多协议过滤/用户资源认证等需求,而在网站网关中有负载均衡需求.那么设计一个简单的接入网关系统需要考虑什么那,我的理解就是设计数据通道(数据怎么通过网关).控制通路(那几个点可以改变数据的运行)

首先是硬件平台的选择,最简单的就是使用一台老的PC机器.现在很多的开源项目全可以处理这样的平台(BSD的PFDENSE,LINUX平台ipfire).当这样的平台无法获得性能上的提高。可以作为思路验证平台.

ASIC+PC:国内的很多无法进入这个门槛.因为无法获得足够的硬件平台.但cisco/juniper/fortinet全是这种的平台.好处是把CPU使用率大的任务分解出来。如字符匹配,数据加密运算等.

NP:01-05很流行的一个平台.但是编程范围无法到应用层.而且维护也不方便。

SMP:多核平台.现在国内的流行平台.但是需要很强的KERNEL编写人员.解决进程的同步问题。

硬件平台后,要解决任务分解问题.我们需要分析病毒,漏洞。垃圾邮件。对于很多应用层网观来说。代理是个不错的解决方法。代理进程接收用户数据,使用socket/共享内存和分析进程通信。成功后连接真正地址。生成一个tunnle(双向转发)。

但还有一个统一配置的问题(如注册表).病毒进程/漏洞进程/垃圾邮件进程的配置文件怎么存储。需要一个如LOG日志的单独进程来处理。

管理进程:CLI/WEBCLI/SNMP等管理接口

KERNEL要完成访问控制/IPSEC/HA/POLICY ROUTE等核心功能。并提供IOCTL接口和用户进程通信。

还有一个问题是如何调试当前用户进程的运行数据,如当前病毒进程加载的病毒列表。

你可能感兴趣的:(设计接入网关)