我们专门运行OpenBSD路由器/防火墙来服务FogBugz On Demand。除非您扮演过渡角色,并且需要专用硬件和集成软件可以提供的极高的pps吞吐量,否则,基于固态硬件的OpenBSD将是一个更易于管理,可扩展且经济的解决方案。
将OpenBSD与IOS或JUNOS进行比较(以我的经验):
好处
- pf防火墙在灵活性,可管理的配置以及与其他服务的集成方面是无与伦比的(可与spamd,ftp-proxy等无缝集成)。配置示例并不能做到这一点。
- 您可以在网关上获得* nix的所有工具:syslog,grep,netcat,tcpdump,systat,top,cron等。
- 您可以根据需要添加工具:iperf和iftop我发现非常有用
- tcpdump。说够了。
- Unix老手的直观配置
- 与现有配置管理(cfengine,puppet,脚本等)的无缝集成。
- 下一代功能是免费的,不需要附加模块。
- 增加性能很便宜
- 没有支持合同
缺点
- IOS / JUNOS使转储/加载整个配置变得更加简单。缺少任何配置管理工具,一旦编写了配置,它们将更易于部署。
- 某些接口根本无法在OpenBSD上使用或在OpenBSD上稳定(例如,我知道没有得到很好支持的ATM DS3卡)。
- 高端专用Cisco / Juniper型设备将处理比服务器硬件更高的pps
- 没有支持合同
只要您不在谈论类似ISP的环境中的骨干路由器或与专用网络连接接口的边缘路由器,OpenBSD就可以了。
硬件
对您的路由器性能而言,最重要的是您的NIC。如果您的网卡太脏了,对于收到的每个数据包都会中断,那么快速的CPU在中等负载下将很快变得不堪重负。寻找至少支持中断缓解/协商的千兆网卡。我对Broadcom(bge,bnx)和Intel(em)驱动程序有好运。
CPU速度比专用硬件更重要,但不必担心。在显示任何压力之前,任何现代服务器级CPU都会处理大量流量。
拥有一个不错的CPU(多核还没有太大帮助,因此请看原始GHz),良好的ECC RAM,可靠的硬盘驱动器和坚固的机箱。然后将所有内容加倍并将两个节点作为主动/被动CARP集群运行。自从4.5的pfsync升级以来,您可以运行active / active,但是我尚未对此进行测试。
我的路由器与负载均衡器在1U双节点配置中并排运行。每个节点具有:
- Supermicro SYS-1025TC-TB机箱(内置的英特尔千兆网卡)
- Xeon Harpertown四核2GHz CPU(我的负载均衡器使用多核)
- 4GB金士顿ECC寄存器RAM
- 双端口英特尔千兆附加网卡
自部署以来,它们一直坚如磐石。关于此问题的所有内容对于我们的流量负载来说都是过高的,但是我已经测试了高达800Mbps的吞吐量(NIC受限制,CPU大部分处于空闲状态)。我们大量使用VLAN,因此这些路由器也必须处理大量内部流量。
由于每个1U机箱都有一个为两个节点供电的700W PSU,因此电源效率极佳。我们已经通过多个机箱分发了路由器和平衡器,因此我们可能会丢失整个机箱并进行几乎无缝的故障转移(感谢pfsync和CARP)。
操作系统
其他一些人提到使用Linux或FreeBSD代替OpenBSD。我的大多数服务器都是FreeBSD,但出于以下几个原因,我更喜欢OpenBSD路由器:
- 与Linux和FreeBSD相比,更加注重安全性和稳定性
- 所有开源OS的最佳文档
- 他们的创新集中在这种类型的实现上(请参阅pfsync,ftp-proxy,carp,VLAN管理,ipsec,sasync,ifstated,pflogd等-所有这些都包含在基本内容中)
- FreeBSD的pf端口上有多个版本
- pf比iptables,ipchains,ipfw或ipf更优雅,更易于管理
- 精简的设置/安装过程
就是说,如果您对Linux或FreeBSD非常熟悉,并且没有时间进行投资,那么选择其中之一可能是一个更好的主意。