delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

22 Sep 2009

另外一种DSR结构

dawnh在之前的人肉traceback中提到了 另一种DSR结构。即:

  • 服务器端将虚拟IP绑在lo0上(子网掩码为/32);—-确保服务器收包、不广播ARP;
  • 负载平衡设备接Internet的网口接路由器进来的VLAN;(“VLAN-Internet”)—-从Internet进入的包发到负载均衡设备上;
  • 负载平衡设备的内网网口能够到达服务器;(“VLAN-Incoming”)—-负载均衡设备将请求根据负载均衡的条件路由到VLAN-Incoming上的服务器;
  • 路由器提供一个绑定某一内网网址,且能联通服务器的接口;(“VLAN-Outgoing”)—-服务器回应包发到VLAN-Outgoing上的Internet路由器;
  • 服务器默认网关设为路由器的内网地址。

(此VLAN划分是出于性能方面的考虑,不划分VLAN并不会导致整个系统不能用)。

这种做法保持了在外网网卡上直接绑一个未用公网IP之后,不需要绑定路由器MAC地址的优点,而在这种配置中,服务器直接连接网络的网卡上都不需要绑定公网IP地址。缺点是需要有一个能够在VLAN-Outgoing到Internet之间进行路由的路由设备,或能够直接控制到Internet那一跳的路由器(当然,这种情况,路由器本身甚至也可以不占用同网段IP,即,VLAN-Internet与VLAN-Outgoing合并、负载平衡设备公网网口绑VLAN-Outgoing上的内网IP,在路由器上配置指定的Internet地址段路由到VLAN-Outgoing网口)。


Archived: 2 Comments

dawnh | September 22, 2009 10:48 AM

恩,感谢解释,现在我也明白了你所说的那种实现的拓扑,其实是我先入为主的加入了VLAN的划分,所以想当然认为实现很简单。如果没有Router和LB实现规划好的VLAN和路由的话,还是你的实现更优雅些。

Xin LI replied to comment from dawnh | September 22, 2009 2:38 PM

客气了。我倾向于禁用ARP的方法是因为路由器是ISP的,并不归我控制 :( 相对来说这种做法的通用性好一些。

另外,VLAN划分还是很有必要的。