我不得不在我们的网络服务器和数据库之间设置防火墙。我承认我并不完全相信这是值得的努力......但我终于做到了。
不幸的是,我选择的设备(Linksys RVS4000)是一个完整的狗。哦,当然,它的两边都有 1Gb 接口,但我的吞吐量低于 100Mb。我尝试的下一个设备更像是传统的防火墙,并且似乎不想路由私有地址(WatchGuard x55e)。
那么,对于那些在 web 和 db 服务器之间放置防火墙的人来说,你使用什么?
注意:我们不要争论所述防火墙的有用性,在这种情况下,它是客户要求而不是争论......我只是想让一些东西在没有重大性能影响的情况下工作。
如果好奇,这篇博文有更多细节。
[2009 年 10 月 9 日更新] 一旦我将 WatchGuard 刷新到最新的主要版本升级 (11.0.1),它就会正确处理所有路由。在本周末进行一些测试后,我将了解更多有关性能的信息。
我们在细分市场之间使用 Cisco ASA(主动/被动对),它们运行良好。如果 100 Mb/s 对您来说足够快,即使是最低端的 5505 也能以 150Mb/s 的速度通过流量。有关模型比较,请参见此处。
我建议不要使用其他设备来调试 Linksys 的问题。当 QoS 是性能不足的罪魁祸首时,我曾经遇到过这个问题:最大可用带宽远低于可用的实际吞吐量。因此,首先,我会禁用所述防火墙上的所有带宽管理痕迹。其次,这是一个非常基本的技巧,也许您已经尝试过,但是您是否将所涉及的每个网卡(在 Web 服务器上、数据库服务器上以及 Linksys 上的两个网卡)都设置为 1000Mb/s / 全速的固定速度双工,而不是“自动协商”?根据我的经验,它经常在这种设备之间造成麻烦。
我通常会使用其中一个Supermicro 1U 服务器和Vyatta,或其他一些 Linux 发行版和FireHOL(如果我需要添加服务而不只是路由)。
带有闪存卡的小盒子,处于只读模式,运行pfSense。它可以做一些数据包过滤(虽然我不确定你想做什么类型)但是你可以调整它并且它真的很快。显然首先使用 NIC 测试吞吐量。有些人需要一些tweats才能获得全速。
一旦全速,提高状态表限制,然后增加状态超时,这将阻止您长时间运行的脚本超时。我建议让超时时间至少比网络服务器上的连接超时时间长 30 秒。它将阻止被重用的空闲连接击中防火墙和呕吐。
如果您的交换机/路由器上的基于系统的防火墙或访问列表不是一个选项,那么您总是可以选择一个桥接防火墙(如果需要,请搜索此术语),这些天您应该能够使用任何 *bsd/linux 机器构建它。
客户端是否可以在数据库服务器上运行软件防火墙?可能不那么复杂,如果它们已经以 1GB 的速度说话,吞吐量就不是问题。