我的networking上有一些路由器/防火墙(pfSense,TMG 2010,ISA 2006),这些路由器/防火墙是有状态的。 现在他们都在与大多数最终用户设备和服务器相同的子网上有一个接口。 我会做一些改变,把一些服务器放在这些防火墙后面的自己的子网中,所以我想知道是否应该为路由器build立一个专用的子网,将数据包路由到对方。 没有路由协议,只有静态路由。
我试图避免asynchronous路由,这可能是有状态防火墙的问题,因为stream量stream入和stream出networking的path不同。 如果stream量通过不同的path回stream,并且该path中的防火墙在状态表中没有logging,则stream量可能会被阻塞。
我的基本问题是:这是解决这个问题的理想方法吗? 为什么或者为什么不? 在最佳实践方面,我还没有find太多的东西,但是这种方法只会在每个子网上留下一个路由器,这样我就可以避免不同机器具有不同默认网关的情况。
当前
Router 1 Router 2 Router 3 192.168.1.1/24 ------ 192.168.1.2/24 ------ 192.168.1.3/24 ------ All other devices | | | VVV 10.10.10.1/24 10.20.20.1/24 10.30.30.1/24
build议
Router 1 Router 2 Router 3 192.168.1.1/24 ------ All other devices 10.200.200.1/24 ----- 10.200.200.2/24 ----- 10.200.200.3/24 ------ Routers/Firewalls only | | | VVV 10.10.10.1/24 10.20.20.1/24 10.30.30.1/24
继我的评论,像这样的东西
+----------+ +----------+ +----------+ | Router 1 | | Router 2 | | Router 3 | +-------+--+ +----+-----+ +--+-------+ | | | | | |10.200.200.0/24 | | | +--v------------v------------v-+ | Router A +-------------+ +-+---------+---------------+--+ | | | | | | | | | | | | | +------------v-+ +-----v-------+ +-----v-------+ +------v------+ |192.168.1.0/24| |10.10.10.0/24| |10.20.20.0/24| |10.30.30.0/24| +--------------+ +-------------+ +-------------+ +-------------+
路由器1 = 10.200.200.1
路由器2 = 10.200.200.2
路由器3 = 10.200.200.3
路由器A = 10.200.200.254
这样,底部的每个networking只有1个路由器,因此有1个默认路由。 边缘路由器只需要1条内部路由即可访问内部子网。
内部路由器变得更复杂,因为它需要知道多个上游路由器,并跟踪连接以避免asynchronous路由。 我相信这些好处是值得的:所有的复杂性都包含在路由器中,其余部分保持简单。 您可以完全控制该主机上的多个连接。 例如,您可以将所有3个连接的NATstream量传送到同一个内部服务器,但服务器不需要知道任何内部服务器,内部服务器将跟踪每个连接并适当地路由stream量以避免asynchronous。
这与我工作中的设置非常相似,除了我们只有2个上游连接。 路由器A是一对运行在H / A中的Linux机器。 跟踪连接是使用基于策略的路由完成的。 我为PBRfind的最佳指南是: http : //www.cyber.com.au/~twb/doc/dual-uplink.txt
我会说你正在引入一个额外的级别(字面上)的复杂性。
我假设你的asynchronous路由问题来自于这种情况,例如, 192.168.1.55发送一个数据包到10.20.20.55但没有一个路由通过192.168.1.2所以通过它的默认值在192.168.1.1它被redirect到192.168.1.2 。 应答包直接从192.168.1.2到原来的源,所以192.168.1.1只能看到客户端到服务器的数据包,而不是服务器到客户端的数据包。
在我的环境中,通过添加允许反弹路由的规则(任何内外相同的接口==相同的层2 ==允许),我避免了asynchronous路由的防火墙问题。 您不会引入任何安全问题,因为数据包的src和dst位于同一个第2层,并且可以直接对话,您只是通过次优路由“鼓励”性能问题。